Гибридный MPI / OpenMP в LSF
Я перемещаю программу, распараллеленную OpenMP, в Cluster. Кластер использует Lava 1.0 в качестве планировщика и имеет 8 ядер в каждом узле. Я использовал оболочку MPI в скрипте задания для параллельной работы нескольких хостов.
Вот сценарий работы:
#BSUB -q queue_name
#BSUB -x
#BSUB -R "span[ptile=1]"
#BSUB -n 1
#BSUB -J n1p1o8
##BSUB -o outfile.email
#BSUB -e err
export OMP_NUM_THREADS=8
date
/home/apps/bin/lava.openmpi.wrapper -bynode -x OMP_NUM_THREADS \
~/my_program ~/input.dat ~/output.out
date
Я провел несколько экспериментов исключительно на одном хосте. Тем не менее, я нене знаю, как объяснить некоторые результаты.
1.
-nOMP_NUM_THREADStime1
421:122
420:12
Означает ли это, что MPI неНе проводите ли здесь параллели? Я думал, что во втором случае каждый процесс MPI будет иметь 4 потока OMP, поэтому он должен использовать 800% загрузки ЦП, что должно быть быстрее, чем первый.
Еще один результат, чтобы доказать, что это
-nOMP_NUM_THREADStime2
231:424
230:47
У них также есть довольно близкое время выполнения.
2.
В этом случае, если я хочу простым способом параллельно расположить эту программу в этом кластере с разумной оптимизированной скоростью, разумно ли разместить 1 процесс MPI (скажите LFG, что я использую одно ядро) на каждом хосте, установить OMP_NUM_THREADS = 8, а затем запустить его исключительно? Поэтому MPI работает только для заданий между узлами, а OpenMP - для заданий внутреннего узла. (-n = # хоста; ptile = 1; OMP_NUM_THREADS = Макс. количество ядер на каждом хосте)
ОБНОВИТЬ: Программа скомпилирована gfortran -fopenmp без mpicc. MPI используется только для распространения исполняемого файла.
ОБНОВЛЕНИЕ 3 марта: Монитор использования памяти программы
Локальная среда: Mac 10,8 / 2,9 ГГц Память i7 / 8GB
Нет OpenMP
Реальный объем памяти: 8,4 МБРазмер виртуальной памяти: 2,37 ГБРазмер общей памяти: 212 КБОбъем личной памяти: 7,8 МбВиртуальная личная память: 63,2 МБС OpenMP (4 потока)
Реальный объем памяти: 31,5 МБРазмер виртуальной памяти: 2,52 ГБРазмер общей памяти: 212 КБРазмер личной памяти: 27,1 МбВиртуальная личная память: 210,2 МБКраткая информация об аппаратном обеспечении кластера
Каждый хост содержит два четырехъядерных чипа, по 8 ядер на узел и 8 ГБ памяти. Хосты в этом кластере связаны с помощью infiniband.