Hello! On Tuesday 05 May 2009 05:44:28 Anton Anikin wrote: > > 1. Лукавите, однако. То у вас большой объем данных, то вдруг он заведомо > > помещается в ОЗУ. > > Эти данные можно загружать кусками - это новость для вас ?
Ты пишешь про работу с shared memory и матричные операции. Про "загружать кусками" слова не было. Более того, не так просто разделить матрицу так, чтобы по результатам матричной операции с полученными частями можно было "собрать" итоговую матрицу. А если это сделать и оперировать разделенной матрицей, то общая память совершенно не нужна, т.к. каждый поток вычислений работает со своими данными. > > 2. Распределенной обработкой у вас и не пахнет. Для распределенной > > обработки матрицы разделяют (используя блочное или ленточное по строкам или > > столбцам разделение) и полученные части матрицы обрабатывают независимо. > > То, что делаете вы, на паре ядер может дать выигрыш, но не масштабируется в > > принципе. > > Еще раз повторю для "внимательных" - масштабируемость на SMP-системах. Для > больших задач есть другие методы. И openMP может быть применен (и вполне > применяется) не только для обработки матриц, почитайте хотя бы википедию, > чтобы не говорить ерунды. Тебе объяснили, что твой пример с матрицей не подходит, если других аргументов нет, имей честность признать это. А насчет ерунды - повежливее надо быть, даже если сказать нечего. Разделение матриц вовсю использовалось еще на одноядерных компах, поскольку дает возможность обсчитывать огромные матрицы при ограниченном ОЗУ и времени (при сбое потеряется только результат текущей итерации). И при наличии нескольких ядер/процессоров/компов запускается соответствующее число экземпляров программы. У нас на кафедре так делали как минимум еще в 90-х. Best regards, Alexey Pechnikov. http://pechnikov.tel/

