Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Распределенная обработка матриц


Автор: Strider007 25.2.2011, 14:58
Всем доброго времени суток.
Хотелось бы узнать Ваше мнение и советы по поводу следующего задания:

Необходимо реализовать систему распределенной обработки матриц.
То есть предполагается наличие некоторого клиента, с помощью которого эти матрицы будут загружаться/выгружаться, а также выполняться действия с матрицами.

Для организации распределенного вычисления необходимо создание нескольких узлов, на которых будут производиться вычисления. Причем каждый узел хранит свою часть матрицы и с производит вычисления только с ней, а потом передает результаты клиенту.

А теперь главный вопрос - как по Вашему мнению надо разбивать исходные матрицы, загружаемые в клиент -> на несколько узлов для вычисления? При условии, что мы точно знаем количество узлов перед началом вычисления и это количество на протяжении всего вычисления неизменно.

Спасибо. 

Автор: bsa 25.2.2011, 16:19
какого размера матрицы и какие операции над ними выполнять собираешься?

Автор: VictorTsaregorodtsev 25.2.2011, 16:27
Зависит от тех действий, которые предполагается производить с матрицами.
Теории дофига - и как по распараллеливанию разных методов, так и по переведению операций с матрицами в "блочный" вид (в последнем случае имеется в виду и такая работа с кусками матрицы, чтобы эти куски помещались в кэш - поэтому идеи по распараллеливанию могут расти и из задачи оптимального кэширования данных и результатов).
Распараллеливающего софта тоже много - см. на библиотеки LAPACK, BLAS.
Т.е. спрашивайте ссылки на более-менее формальную литературу с теорией и сравнительным анализом разных методов при разных условиях. 
Если советовать другой форум по этому вопросы - то насчет чисто программистских не знаю, а из широкопрофильных можно посоветовать ixbt, раздел Процессоры (программисты-вычислители предпочитают тусоваться там, а не в разделе по Программированию этого форума). И будьте готовы гораздо более детально описывать ситуацию (начиная от задачи - от нужных операций с матрицами, размеров матриц, точности хранения данных, предполагаемой распределенной системы,...). 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)