Докер, openmpi и неожиданный конец строки /proc/mounts

У меня есть среда сборки для запуска кода в контейнере Docker. Одним из компонентов является OpenMPI, который, я думаю, является источником проблемы или ее проявлением.

Когда я запускаю код с использованием MPI, я получаю сообщение,

Unexpected end of /proc/mounts line `overlay / overlay rw,relatime,lowerdir=/var/lib/docker/overlay2/l/NHW6L2TB73FPMK4A52XDP6SO2V:/var/lib/docker/overlay2/l/MKAGUDHZZTJF4KNSUM73QGVRUD:/var/lib/docker/overlay2/l/4PFRG6M47TX5TYVHKQQO2KCG7Q:/var/lib/docker/overlay2/l/4UR3OEP3IW5ZTADZ6OKT77ZBEU:/var/lib/docker/overlay2/l/LGBMK7HFUCHRTM2MMITMD6ILMG:/var/lib/docker/overlay2/l/ODJ2DJIGYGWRXEJZ6ECSLG7VDJ:/var/lib/docker/overlay2/l/JYQIR5JVEUVQPHEF452BRDVC23:/var/lib/docker/overlay2/l/AUDTRIBKXDZX62ANXO75LD3DW5:/var/lib/docker/overlay2/l/RFFN2MQPDHS2Z'
Unexpected end of /proc/mounts line `KNEJCAQH6YG5S:/var/lib/docker/overlay2/l/7LZSAIYKPQ56QB6GEIB2KZTDQA:/var/lib/docker/overlay2/l/CP2WSFS5347GXQZMXFTPWU4F3J:/var/lib/docker/overlay2/l/SJHIWRVQO5IENQFYDG6R5VF7EB:/var/lib/docker/overlay2/l/ICNNZZ4KB64VEFSKEQZUF7XI63:/var/lib/docker/overlay2/l/SOHRMEBEIIP4MRKRRUWMFTXMU2:/var/lib/docker/overlay2/l/DL4GM7DYQUV4RQE4Z6H5XWU2AB:/var/lib/docker/overlay2/l/JNEAR5ISUKIBKQKKZ6GEH6T6NP:/var/lib/docker/overlay2/l/LIAK7F7Q4SSOJBKBFY4R66J2C3:/var/lib/docker/overlay2/l/MYL6XNGBKKZO5CR3PG3HIB475X:/var/lib/do'

Это сообщение печатается для строки кода

MPI_Init(&argc,&argv);

Чтобы сделать проблему более сложной для понимания, предупреждающее сообщение выводится только в том случае, если хост-компьютер - Mac OS X, для хоста Linux все в порядке.

За исключением предупреждающего сообщения все работает нормально. Я не знаю, как OpenMPI и Docker достаточно хорошо, как это можно исправить.

2 ответа

Решение

Вероятно, это связано с тем, что в вашем файле / proc / mounts строка длиной более 512 символов приводит к тому, что модуль hwloc в OpenMPI не может правильно его проанализировать. Docker имеет тенденцию помещать очень длинные строки в / proc / mounts. Вы можете увидеть ошибку в openmpi-1.10.7/opal/mca/hwloc/hwloc191/hwloc/src/topology-linux.c:1677

Вероятно, это можно исправить, увеличив его размер до большего числа, хотя это следует рассматривать как временное решение.

Эта проблема должна быть исправлена ​​в hwloc начиная с 1.11.3 (выпущено 2 года назад). Вы можете обновить OpenMPI 3.0 до hwloc 1.11.7 >= 1.11.3. Или перекомпилируйте OpenMPI для использования внешнего hwloc вместо старого встроенного.

Другие вопросы по тегам