PARALLEL.RU

Дискуссионный клуб по параллельным вычислениям
Текущее время: 19 ноя 18 3:44

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: MPI_Reduce vs MPI_Isend
СообщениеДобавлено: 25 фев 15 23:11 
Не в сети

Зарегистрирован: 25 фев 15 22:57
Сообщения: 3
Доброго дня!

Есть задача поиска глобального минимума. Эту задачу решает MPI_Reduce, но MPI_Reduce - блокирующая операция. Будет ли эффективнее выполнить N неблокирующих MPI_Isend точка-точка для одного double, а затем N MPI_Irecv и MPI_Waitall, благо потребность в минимуме возникает несколько позже, чем появляются значения по которым надо искать минимум? Или знатоки подскажут, что сотни 8-байтовых пересылок безнадежно медленнее одного MPI_Reduce? Тест на 64 процессах дал неопределенный результат...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MPI_Reduce vs MPI_Isend
СообщениеДобавлено: 26 фев 15 17:05 
Не в сети

Зарегистрирован: 2 ноя 11 19:40
Сообщения: 26
Откуда: Владивосток
Я думаю, что на сотне 8-байтовых double'ов вы особо не заметите разницы, что у вас быстрее или медленее... переслать 800 байт по сети, это даже для Ethernet плевая задача.
Поэтому выбирайте MPI_Reduce и не думайте - будет меньше работы по части программирования.
Также, думаю, что те кто пишут MPI тоже не дураки, и наверняка в исходниках того же OpenMPI можно найти реализацию MPI_Reduce, которая в том числе учитывает вопросы оптимизации пересылки и выполнения самой операции редукции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MPI_Reduce vs MPI_Isend
СообщениеДобавлено: 26 фев 15 21:46 
Не в сети

Зарегистрирован: 25 фев 15 22:57
Сообщения: 3
Спасибо за ответ! Меня беспокоит то, что, например, при распараллеливании на 1000 процессов каждый процесс создаст по 1000 пересылок. Всего - 1000000 пересылок. И это не пересылка 8 мегабайт по езернету одим пакетом, а миллион отдельно управляемых операций.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MPI_Reduce vs MPI_Isend
СообщениеДобавлено: 27 фев 15 11:38 
Не в сети

Зарегистрирован: 11 дек 02 19:37
Сообщения: 872
Откуда: НИВЦ МГУ
Вы спутали MPI_Reduce и MPI_All_Reduce. В reduce будет 1000 пересылок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MPI_Reduce vs MPI_Isend
СообщениеДобавлено: 27 фев 15 19:03 
Не в сети

Зарегистрирован: 25 фев 15 22:57
Сообщения: 3
Не спутал! Я говорил о своей попытке использовать удаленность времени вычисления локального (на процессе) параметра от времени его использования. Мое сомнение было в том, что если каждый из 1000 процессов сделает 1000 MPI_Isend в адрес всех, то это будет миллион операций. И, даже, если есть какой-то запас времени до 1000х1000 MPI_Irecv, то будет ли это быстрее MPI_Reduce? Но, впрочем, я уже отдал предпочтение MPI_Reduce. Тему можно считать закрытой. Всем спасибо! :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB