MPI в контейнере без MPI на локальном хосте - PullRequest
3 голосов
/ 10 февраля 2020

Справочная информация: Я успешно создал приложения на основе MPI в контейнере Singularity и выполнил их в гибридном режиме, рекомендованном в документации Singularity. Это требует, чтобы у меня была «совместимая» версия MPI, установленная как в контейнере, так и на хосте O / S. Я понимаю, почему это необходимо, если я буду выполнять задания на нескольких узлах.

Но в нашем случае использования у нас медленные межсоединения, и поэтому практически не имеет смысла запускать задания более чем на одном узле. Гибридный режим вынуждает меня отслеживать каждую версию MPI, встроенную в каждый контейнер, который может быть когда-либо использован, чтобы убедиться, что на хосте O / S доступен правильный MPI. Причина, по которой я в первую очередь обратился к контейнерам, заключается в том, чтобы не сталкиваться с такими проблемами, связанными с зависимостью от версии.

Мой вопрос: Если я согласен с тем ограничением, что приложения MPI могут выполняться только в пределах одного физического узла, могу ли я построить приложение MPI в контейнере Singularity? что не зависит от наличия чего-либо установленного на хосте O / S?

1 Ответ

0 голосов
/ 11 февраля 2020

Я не самый сильный в MPI, но если вы не пытаетесь связываться с другими узлами (или заданиями, порожденными другими процессами на том же вычислительном узле), вы должны быть в состоянии использовать singularity exec mpi_image.sif mpirun ....

Также может быть полезно изменить определение Singularity, чтобы иметь возможность запускать образ как экземпляр . Это делает особенности более похожими на Docker, что позволяет вам singularity shell в работающей среде выполнения. Это значительно упрощает отладку при выполнении действий, которые не очень хорошо документированы.

...