Проблемы с чтением файла конфигурации slurm с Singularity - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь запустить приложение в Singularity на узлах (864 задач MPI) в системе HP C, а именно на машине S4 в Центре космической науки и техники Университета Висконсина (SSE C).

Я использую то, что Singularity описывает как гибридную модель 1 , что означает, что я использую собственный (системный) MPI, но у меня также установлен MPI в контейнере. Версии mpi совместимы - я использую Intel MPI версии 17.0.6 вне контейнера и Intel MPI версии 17.0.1 внутри контейнера. Код в контейнере компилируется с помощью компиляторов Intel 17.0.1 (C ++, C и Fortran).

Так что вот в чем проблема. Когда я впервые запустил код, он пожаловался на то, что не нашел файл конфигурации slurm:

fv3jedi_var.x: error: s_p_parse_file: unable to status file /etc/slurm-llnl/slurm.conf: No such file or directory, retrying in 1sec up to 60sec

Поэтому я нашел системный файл slurm.conf в / etc / slurm и смонтировал этот каталог в контейнере как / etc / Слерма-ЛЛНЛ. Теперь он находит файл конфигурации, но не понимает конфигурацию, специфичную для сайта c:

fv3jedi_var.x: error: "ALL" is not a valid option for "EnforcePartLimits"
fv3jedi_var.x: error: Parsing error at unrecognized key: Features
fv3jedi_var.x: error: Parse error in file /etc/slurm-llnl/slurm.conf line 225: " Features=ivy"
fv3jedi_var.x: error: Parsing error at unrecognized key: Features
fv3jedi_var.x: error: Parse error in file /etc/slurm-llnl/slurm.conf line 226: " Features=ivy"
fv3jedi_var.x: error: Parsing error at unrecognized key: Features
[...]

Итак, я застрял. Я предполагаю, что это может быть проблемой PMI? В настоящее время у меня установлен slurm libpmi.so в контейнере, и это то, что я указываю с помощью переменной I_MPI_PMI_LIBRARY. Но мне интересно, настроен ли собственный (системный) PMI (я знаю, что это PMI в отличие от PMI2 или PMIx) для правильной обработки системного файла slurm.conf? Я попытался использовать встроенную библиотеку PMI, смонтировав (привязав) соответствующий каталог в контейнере и изменив мою переменную I_MPI_PMI_LIBRARY. Но собственная библиотека PMI находится в том же каталоге, что и библиотека glib c, и при монтировании возникает конфликт между библиотеками glib c внутри и снаружи контейнера:

/bin/sh: relocation error: /usr/lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference

Любой идеи о том, как поступить? Мой пакетный скрипт для слерма ниже. Спасибо!

#!/usr/bin/bash
# --mem-per-cpu=8192M
#SBATCH --job-name=bm_con14
#SBATCH --partition=ivy
#SBATCH --ntasks=864
#SBATCH --cpus-per-task=1
#SBATCH --time=2:00:00
#SBATCH --mail-user=miesch@ucar.edu

source /etc/bashrc
module purge
module load license_intel
module load intel/17.0.6
ulimit -s unlimited

cd /data/users/mmiesch/runs/con-benchmark/con

JEDICON=/data/users/mmiesch
JEDIBUILD=/data/users/mmiesch/jedi/fv3-bundle/build-con
JEDIBIN=/data/users/mmiesch/jedi/fv3-bundle/build-con/bin

export SINGULARITY_BINDPATH="$JEDIBUILD,/etc/slurm:/etc/slurm-llnl"

srun --ntasks=864 --cpu_bind=cores --distribution=block:block --verbose singularity exec --home=$PWD $JEDICON/jedi-intel17-impi-hpc-dev.sif ${JEDIBIN
}/fv3jedi_var.x Config/3dvar_bump.yaml

exit 0
...