PARALLEL.RU

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

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Использование MPI совместно с OpenMP
СообщениеДобавлено: 27 май 12 13:45 
Не в сети

Зарегистрирован: 27 май 12 13:41
Сообщения: 2
Добрый день, дорогие форумчане!
Интересует след. вопрос: Какой выигрыш мы получаем от использования совместно 2х технологий?
Просто чуть в голове не укладывается...
Может я конечно ошибаюсь, но ведь MPI использует несколько процессоров и OpenMP тоже использует несколько.
Следовательно если у нас 2 процессора и мы в MPI запускаем с параметров -2, то как прога, написанная с использованием OpenMP будет себя вести?

Спасибо!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 1 июн 12 18:43 
Не в сети

Зарегистрирован: 18 июн 07 13:13
Сообщения: 47
Откуда: Москва
MPI и OpenMP имеют различные парадигмы но технически их можно смешивать так как их реализация имеет принципиальные различия. Если кратко то в MPI мы имеем один процесс (в терминах ОС) на ядро CPU. Соответственно если узел имеет 4 ядра то на нём могут быть запущены 4 процесса. В OpenMP же реализована парадигма общего доступа к памяти и соответственно в этом случае мы имеем одну нить исполнения (thread) на ядро, но на узле будет запущен только один процесс. Соответственно при смешении MPI и OpenMP мы будем иметь один процесс на узел (как в OpenMP) но с возможностью обмениваться данными между процессами на различных узлах посредством MPI сообщений. Эффективность подходов же (MPI vs OpenMP+MPI) будет определяться эффективностью доступа к памяти для конкретной архитектуры.

Если рассматривать более частные примеры то преимущества смешения парадигм могут быть следующими:

- реализации OpenMP имеют как правило более эффективные примитивы синхронизации
- возможность (ограниченная рамками одного узла) использования алгоритмов, специфичных для модели с общей памятью


PS: Применимость смешанного подхода во многом зависит от характера ваших задач (алгоритмов). Например для моих задач OpenMP в 80% случаев проигрывает MPI в любом виде (и чистом и смешанном)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 5 июн 12 16:04 
Не в сети

Зарегистрирован: 30 ноя 05 16:09
Сообщения: 130
Откуда: Ростов-на-Дону
Технологии OpenMP и MPI дополняют друг друга. MPI создает процессы, которые можно различным образом
распределить по узлам. Можно на каждом узле запустить по одному процессу, можно по два или по четыре.
Это зависит от того, сколько процессов помещается в памяти вычислительного узла. Может оказаться, что в память
помещается только по одному процессу и тогда другого способа, кроме как использование OpenMP,
для того чтобы загрузить другие ядра,. просто нет. Вообще, редко встречаются задачи, которые
позволяют запустить на узле столько процессов, сколько имеется ядер. Чаще бывает по другому, в узел
едва помещается один процесс, а вот от количества нитей, требуемая для процесса память, не зависит.
Поэтому, представляется наиболее разумным на каждом узле запускать по одному процессу, а ресурсы
ядер подбирать с помощью технологии OpenMP.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 7 июн 12 13:53 
Не в сети

Зарегистрирован: 27 май 12 13:41
Сообщения: 2
Спасибо! =) Разобрался! =)


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

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


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

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


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

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