#r #mpi #openmpi
#r #mpi #openmpi
Вопрос:
При попытке запустить подчиненные Rmpi
устройства я получаю сообщение об ошибке
--------------------------------------------------------------------------
There are not enough slots available in the system to satisfy the 2
slots that were requested by the application:
/opt/usern/R/4.0.4/lib/R/library/Rmpi/Rslaves.sh
Either request fewer slots for your application, or make more slots
available for use.
Я знаю, что у меня есть оборудование для нескольких подчиненных устройств:
> parallel::detectCores()
[1] 4
Но как мне настроить openmpi
достаточное количество слотов для нескольких подчиненных устройств?
Минимальный reprex:
mpi.spawn.Rslaves(nslaves = workers)
Я использую CentOS 8, Rmpi
0.6-9.1 с openmpi
4.1.1.
Комментарии:
1. Как политически некорректно. Был ли R написан в 18 веке?
2. @VictorEijkhout
Rmpi
— это внесенный пакет, за него отвечает его сопровождающий, а не R. И главный вопрос, похоже, звучит так: «Но как мне настроить openmpi так, чтобы в нем было достаточно слотов для нескольких подчиненных устройств?»3. @VictorEijkhout Это терминология MPI. И что касается истории информатики, MPI действительно был написан примерно в 18 веке. Возможно, терминология будет изменена в какой-то момент.
4. @KonradRudolph MPI уже давно вычищает такую терминологию. Возможно, R, наконец, тоже войдет в 20-й век. Кроме того, MPI не основан на модели master / worker, поэтому я сомневаюсь, что этот стандарт MPI часто использовал этот термин, если вообще использовал.
5.
parallel::detectCores()
обнаруживает ли ядра или гиперпотоки? В Open MPI по умолчаниюslot == core
. Вы можете иметьslot == hyperthread
mpirun --use-hwthread-cpus ...
или иметь неограниченные слоты (вам решать, чтобы не создавать слишком много задач для оптимизации ресурсов) сmpirun --oversubscribe ...