Форум программистов, компьютерный форум CyberForum.ru

Расределенная обработка матриц - C++

Восстановить пароль Регистрация
 
Strelok_33
1 / 1 / 0
Регистрация: 25.02.2011
Сообщений: 29
25.02.2011, 14:50     Расределенная обработка матриц #1
Всем доброго времени суток.
Хотелось бы узнать Ваше мнение и советы по поводу следующего задания:

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

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

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

Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2011, 14:50     Расределенная обработка матриц
Посмотрите здесь:

C++ обработка матриц
Обработка матриц C++
C++ Обработка матриц
Обработка двумерных массивов. Обработка матриц C++
Обработка матриц в С++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.02.2011, 15:41     Расределенная обработка матриц #2
Разбивайте матрицы на полосы. Скажем, для умножения матриц надо, чтобы в каждом вычислительном узле хранилась горизонтальная полоса первой матрицы и вертикальная полоса второй.
Или вопрос был не об этом? о_О
Strelok_33
1 / 1 / 0
Регистрация: 25.02.2011
Сообщений: 29
25.02.2011, 17:33  [ТС]     Расределенная обработка матриц #3
Да, вопрос был об этом. Хорошо, допустим буду разбивать по строкам. А как лучше обрабатывать ситуации, если у меня число строк/столбцов не сможет равномерно распределиться по всем узлам? То, что не поместиться - пустить во второй цикл вычислений? Есть к примеру матрица 7 на 9 и 2 узла всего. По 3 строки раскидаем, 1 останется. Куда ее?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.02.2011, 17:38     Расределенная обработка матриц #4
Strelok_33, раскидывайте по 4))) Получите 4 и 3, всё нормально будет. Вообще надо разбивать матрицу на N полос по ]n/N[ строк, где n - число строк, N - число вычислителей, операция ]x[ - наименьшее целое число, большее x (например, ]5/3[ = 2, т.е. разбиваем на 3 полосы по 2 строки, на самом деле получим 2 + 2 + 1).
Yandex
Объявления
25.02.2011, 17:38     Расределенная обработка матриц
Ответ Создать тему
Опции темы

Текущее время: 12:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru