LINUX.ORG.RU

Ошибка при совместном ипользовании OpenMP и MPI на Ломоносове-1

 ,


3

2

Есть довольно монструозный проект, одновременно использующий OpenMP и MPI. При запуске на Ломоносов-1 в OpenMP возникает довольно странная ситуация - при входе в параллельную область

#pragma omp parallel
{
}
запускается несколько нитей (это видно по отладочному выводу и пр. диагностике), при этом все нити имеют нулевой ID, в каждой нити число запущенных нитей указывается как единица, и omp_get_level() возвращает ноль.

Иерархический параллелизм (так кажется оно называется) OpenMP не используется, т.е. pragma parallel не вложена. Ошибка наблюдается только на Ломоносове-1 (из доступных машин, на к100 ее нет), причем минимальный тест сделать не получается (в минимальном тесте все работает). Проект здоровый, вычленить там что то весьма затруднительно, с учетом того что каждого запуска приходиться ждать...

Кто то с таким сталкивался? Что можно сделать, ну кроме как отказаться от OpenMP (что мы пока и сделали)?

Опции компиляции

-fopenmp -msse2 -msse -mpreferred-stack-boundary=4 -std=c++11 -O2 -g -Wall -I./
компилятор
$ mpicxx -v
mpiicpc for the Intel(R) MPI Library 5.0 Update 1 for Linux*
Copyright(C) 2003-2014, Intel Corporation.  All rights reserved.
icpc version 15.0.0 (gcc version 4.4.7 compatibility)

★★

Ответ на: комментарий от AntonI

Рад бы, да боюсь не могу.

Вариант 1:

module avail

Вариант 2: EasyBuild

mpicxx

mpiicpc?

З.Ы.: На Ломоносов 1 не работал

AlexVR ★★★★★ ()

по поводу "каждого запуска приходится ждать"

там же очереди есть (или как они в slurm-e называются? partition?) разные. Есть как раз тестовые, короткие. Там, вроде, ждать не приходится.

А почему компилятор поменять нельзя?

anonymous ()

Даже на тестовой очереди приходиться немного ждать пока взлетит + главное пока дойдет до того места где валиться. В общем неудобно как то.

А почему компилятор поменять нельзя?

$ module avail 

---------------------------------------------------------------------- /usr/share/Modules/modulefiles ----------------------------------------------------------------------
dot         module-cvs  module-info modules     null        use.own

----------------------------------------------------------------------------- /opt/modulefiles -----------------------------------------------------------------------------
PrgEnv-pgi/15.7(default)    impi/4.1.0                  itac/9.0.1                  openfoam/2.3.1              openmpi/1.8.4-icc           slurm/2.5.6
cuda/5.5                    impi/4.1.0-32bit            mathlab-rt/9.0              openmpi/1.10.2-icc(default) paraview/3.12.0             totalview/8.10.0
cuda/6.5.14                 impi/4.1.0-ofa              mkl/11.2.0(default)         openmpi/1.5.5-gcc           pgi/12.9(default)
ekopath/4.0.11              impi/5.0.1(default)         mkl/4.0.2.146               openmpi/1.5.5-icc           pgi/16.10
gcc/0.0.1                   impi/5.0.1-ofa              molpro/2009                 openmpi/1.6.5-gcc           pgi/2012
gcc/5.2.0                   intel/13.1.0                octave/4.0.1                openmpi/1.6.5-icc           pgi/2016
impi/4.0.3                  intel/15.0.090              openfoam/2.2.2              openmpi/1.8.4-gcc           slurm/15.08

-------------------------------------------------------------------------- /opt/ccoe/modulefiles ---------------------------------------------------------------------------
abinit/7.10.2      amber12/mpi        espresso/5.1.2     gromacs/plumed     magma/1.7.0        namd-mpi           nwchem/6.3-mpi     vasp/vasp-5.4.1
abinit/7.10.2-cuda cp2k               espresso/5.3.0     lammps-cuda        namd/2.11          nwchem/6.3-cuda    nwchem/6.6-cuda
amber12/cuda       espresso/5.1.1     gromacs/5.0.4-gpu  magma/1.6.1        namd-cuda          nwchem/6.3-impi    nwchem/6.6-openmpi

Вроде как есть gcc 5.2, но интель от него отстает. Коллеги настаивают на интеле, в пн спрошу еще раз почему именно так. Там были какие то пляски с бубном что бы заставить все это взлететь, немного мимо меня прошло.

AntonI ★★ ()
Ответ на: комментарий от AntonI

Я как-то пробовал

разные реализации MPI и компиляторы. Обнаружил, что в некоторых комбинациях оно крэшилось. Кажется, какой-то impi-ofa (не знаю, что это такое) ломался.

Но у вас выбор большой - два intel, куча pgi, gcc и разные реализации mpi (оно ж всё-таки используется).

И да, кажется у меня всё-таки был Ломоносовъ-2

anonymous ()

помнится, заставляли в универе пейсать на MPI перемножение матриц каким-то шизануто неэффективными алгоритмом, гонявшим по сети кучу данных.

anonymous ()
Ответ на: комментарий от AntonI

наверняка проблема в несовместимость компилятора/mpi/openmp и т.п. Посмотри, какие модули загружены (module list), выгрузи всё лишнее, перебери версии компилятора/mpi

Sahas ★★★★★ ()
Последнее исправление: Sahas (всего исправлений: 2)
Ответ на: комментарий от AntonI

Не знаю как на Ломоносове, но на Чебышеве при указании, при постановки задачи в очередь, примерного времени сколько тебе нужно на эту задачу, она имела больший приоритет, чем те у кто не указывал такую опцию и по умолчанию там ставилось 72 часа.

asaks ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.