[mephi-hpc] HA: Hybrid MPI + OpenMP

Волков Юрий Николаевич YNVolkov at mephi.ru
Mon Sep 26 19:13:27 MSK 2016


Спасибо за оперативный ответ.
 Еще вопрос, а программное обеспечение на кластере Черенков отличается от установленного на кластерах Basov и Unicluster? Я имею в виду Фортран в частности. Потому, что компиляция и выполнение той же программы на кластере Cherenkov дает мне ошибку:

At line 158 of file space_omp.f90 (unit = 5, file = 'IN')
Fortran runtime error: Repeat count too large for namelist object b2

Я считываю некий массив информации (B2=  7*0.0) из файла IN 

Ну, на других кластерах такой ошибки нет, все считает как надо, я теряюсь в догадках...


С уважением,
Юрий Волков,
Старший преподаватель (* 83-63)
Кафедра (№5) теоретической и экспериментальной
физики ядерных реакторов НИЯУ МИФИ
________________________________________
От: hpc [hpc-bounces at lists.mephi.ru] от имени anikeev [anikeev at ut.mephi.ru]
Отправлено: 22 сентября 2016 г. 14:04
Кому: NRNU MEPhI HPC discussion list
Тема: Re: [mephi-hpc] Hybrid MPI + OpenMP

On Sun, 2016-09-18 at 13:34 +0300, Волков Юрий Николаевич wrote:

Здравствуйте!

> Уважаемые коллеги, обращаюсь за помощью к более опытным товарищам.
> Пытаюсь ускорить решение своей задачи, используя совмещенную схему
> распараллеливания по MPI и OpenMP. Вкратце, решается трехмерная
> стационарная задача переноса нейтронов итерационным методом верхней
> точечной релаксации (метод Гаусс-Зейделя). Я разбиваю пространство по
> высоте на слои (MPI), а внутри слоев логично и наиболее проще сделать
> распараллеливание цикла по OpenMP.
>       Используется ферма Basov. Само по себе, в отдельности MPI и
> OpenMP работают нормально. Например внутри одно нода (думаю, это
> синоним вычислительного узла) на 1 процесс MPI  число нитей (threads)
> 2 и 4 дает соответственно увеличение скорости расчета на 13 и 37%.
> Опять же на одном ноде использование двух процессов MPI и 4 нитей
> соответственно дает увеличение скорости счета в 2.5 раза. Опытным
> путем выяснил, что использование большего числа нитей эффект не дает.
> однако, когда использую два нода с тем же числом MPI процессов
> эффективность гибридной схемы резко падает и даже скорость счета
> возрастает.
>       По идее использование Open MP имеет смысл, когда нити сидят на
> одной памяти (SMP), ну и впечатление, когда идет расчет на несколько
> вычислительных узлах, то система не связывает OpenMP нити эффективно.
>
> скрипт с запросом ресурсов (2 MPI процесса на каждый вычислительный
> узел, каждый процесс рождает 4 нити OpenMP) в выглядит таким образом:
>
> #PBS -l nodes=2:ppn=16,walltime=00:00:30
>
> cd ~/space
>
> export OMP_NUM_THREADS=4
>
> mpirun   -npernode 2  -cpus-per-proc 4 -np 4  ./hybrid.out
>
>
> Надеюсь, кто нибудь подскажет идею.

Насколько я понял, у Вас смешанная (гибридная) задача MPI+OpenMP
показывает падение производительности при использовании одинакового
количества потоков на двух узлах (нодах), вместо одного. Так и должно
быть. Дочерние по отношению к потоку MPI подпотоки OpenMP имеют доступ
к общей памяти только друг меду другом внутри одного родительского
потока MPI. Доступа к общей памяти подпотоков OpenMP другого потока MPI
у них нет в принципе:

       /OpenMP11  \
   MPI1           | SMP1
  /    \OpenMP12  /
KNEM,
Network
  \    /OpenMP21  \
   MPI2           | SMP2
       \OpenMP22  /

Взаимодействие между MPI потоками происходит исключительно по протоколу
MPI.

Когда Вы запускаете все потоки MPI на одном узле, MPI-сообщения
пересылаются через общую память этого узла (технология KNEM. К OpenMP
не имеет никакого отношения), а когда на разных - через реальную сеть,
что вызывает задержки.

Обращаю Ваше внимание, что кластер Басов использует сеть стандарта
Ethernet 10 Gbps и предназначен в первую очередь для запуска задач со
слабым сетевым взаимодействием. Для задач с сильным сетевым
взаимодействием лучше использовать кластер Черенков, который построен
на основе сети Infiniband FDR 56 Gbps.

> С уважением,
> ст. преп. каф. 5 НИЯУ МИФИ
> Юрий Волков
> _______________________________________________
> hpc mailing list
> hpc at lists.mephi.ru
> https://lists.mephi.ru/listinfo/hpc
--
С уважением,
аспирант кафедры 4 МИФИ,
инженер отдела Unix-технологий,
Аник
еев Артём.
Тел.: 8 (495) 788-56-99, доб. 8998
_______________________________________________
hpc mailing list
hpc at lists.mephi.ru
https://lists.mephi.ru/listinfo/hpc


More information about the hpc mailing list