[mephi-hpc] Проблема с работой программы

anikeev anikeev at ut.mephi.ru
Wed Feb 6 19:24:58 MSK 2019


On Wed, 2019-02-06 at 18:50 +0300, Alexandra Freidzon wrote:
> Спасибо!
> 
> > 32-bit библиотека не может использовать 64-bit драйвер никак.
> > Драйвер
> > есть только 64-bit. Задача могла работать если mvapich2 был
> > сконфигурирован для локальной работы без использования сети (чтобы
> > он
> > даже не пытался загрузить этот драйвер). Или если она запускалась в
> > один поток без mpirun - такая возможность предусмотрена стандартом
> > MPI.
> > Возможно, Вы использовали OpenMPI из 32-bit chroot-окружения?
> 
> OpenMPI точно не трогали, никак к нему не обращались. Во всяком
> случае, в LD_LIBRARY_PATH путь к нему не прописан.
> Как я понимаю, запуск устроен так: очередью запускается wrapper
> mv2.wrap, к-рый прописывает кучу всего в LD_LIBRARY_PATH и запускает
> локально собранный 32-битный mpiexec.hydra, к-рый уже в свою очередь
> запускает скрипт ff-wrap, запускающий сам экзешник ff823.mvapich2.ex
> (насколько я помню, напрямую не получалось). Запутано, да. Т.е., все
> работает только на 1 ноде (вроде все равно где-то говорилось, что
> межнодовый обмен на этих кластерах неэффективный? или это уже не
> так?).

Сеть:

unicluster 1 GbE
basov 10 GbE
cherenkov 56 Gbps IB FDR

Эффективность зависит от используемого алгоритма. Нужно пробовать. Сеть
cherenkov лучше сети unicluster на 2 порядка.

> > В любом случае, это нужно исправить. Возможные пути:
> > 1) Смириться с однопоточностью и не использовать mpirun
> > 2) Настраивать mvapich2 для работы без ошибок без использования
> > сети.
> > Проще всего отключить все сетевые протоколы на этапе configure.

А как это сделать?

Можно попробовать изучить руководство пользователя по mvapich2 и найти
там опции принудительного выбора протокола передачи данных. У OpenMPI
протоколами можно управлять через опции -mca, протокол передачи данных
внутри одного узла через оперативную память называется self (mpirun
-mca btl self a.out). У mvapich2 должны быть аналоги.

Более радикальный, но более надёжный вариант - скачать исходный код
mvapich2, сконфигурировать его без поддержки ib и собрать.

> > Конечно, в этом случае логичнее использовать OpenMP, но я не
> > уверен,
> > что его поддерживает firefly.
> > 3) Использовать передачу MPI сообщений через IPoIB, вместо ibverbs.
> > Но
> > этот способ сведёт на нет преимущества IB коммутатора cherenkov для
> > Ваших задач.
> 
> А это вообще имеет смысл, если все равно считаем на 1 ноде?

На одной - нет. В OpenMPI настраивается так: mpirun -mca btl tcp,self
a.out

> > Basov:
> > Проверьте, пожалуйста, результат работы программы в директории:
> > /mnt/pool/1/freidzon/work/test_by_anikeev/anthracene_pair3A_mcq_/
> 
> Да, тест прошел успешно.

Понятно, будем работать дальше.

> > Я запустил Вашу программу с отладчиком gdb и похоже, что она
> > отработала
> > успешно. Это довольно неприятный вид ошибок, когда использования
> > отладчика исправляет проблему, что не позволяет эту проблему
> > обнаружить... Но для таких случаев тоже есть методы. Для
> > продолжения
> > работы нужно убедиться, что результат работы с gdb корректен.
> 
> Я посоветовалась с автором программы, он пообещал сделать полностью
> статическую версию, не зависящую от MPI на обоих кластерах. Он
> считает, что тогда вообще все проблемы решатся и разбираться с MPI не
> придется. Посмотрим.
> _______________________________________________
> hpc mailing list
> hpc at lists.mephi.ru
> https://lists.mephi.ru/listinfo/hpc
-- 
С уважением,
инженер отдела Unix-технологий МИФИ,
Аникеев Артём.
Тел.: 8
(495) 788-56-99, доб. 8998


More information about the hpc mailing list