С начала ноября я застрял, чтобы запустить параллельное задание в кластере Linux. Я уже ищу ЛОТ в Интернете, ища информацию, но я просто не могу прогрессировать. Когда я начинаю искать параллелизм в R, используя кластер, я обнаружил Rmpi. Это выглядело довольно просто, но теперь мне больше нечего делать. У меня есть сценарий, чтобы отправить свою работу:Кластер Linux, Rmpi и количество процессов
#PBS -S /bin/bash
#PBS -N ANN_residencial
#PBS -q linux.q
#PBS -l nodes=8:ppn=8
cd $PBS_O_WORKDIR
source /hpc/modulos/bash/R-3.3.0.sh
export LD_LIBRARY_PATH=/hpc/nlopt-2.4.2/lib:$LD_LIBRARY_PATH
export CPPFLAGS='-I/hpc/nlopt-2.4.2/include '$CPPFLAGS
export PKG_CONFIG_PATH=/hpc/nlopt-2.4.2/lib/pkgconfig:$PKG_CONFIG_PATH
# OPENMPI 1.10 + GCC 5.3
source /hpc/modulos/bash/openmpi-1.10-gcc53.sh
mpiexec --mca orte_base_help_aggregate 0 -np 1 -hostfile ${PBS_NODEFILE} /hpc/R-3.3.0/bin/R --slave -f sunhpc_mpi.r
И это начало моей R программы:
library(caret)
library(Rmpi)
library(doMPI)
cl <- startMPIcluster()
registerDoMPI(cl)
Так вот мои вопросы:
1- Является ли это способ, которым я должен инициализировать процессы (т. е. использовать starMPIcluster без параметра и использовать в командной строке -np 1)?
2. Почему, когда я использую эти команды, MPI жалуется на это?
An MPI process has executed an operation involving a call to the
"fork()" system call to create a child process....
OBS: Он сказал, что для всех 64 процессов (потому что есть 8 узлов с 8 процессорами и я создаю 63 процессов)
3- Почему, когда я использую эти команды на машине 60 CPU он просто порождает двух рабочих?
Мне никогда не удавалось создать кластер 'R', правильно работающий с' MPI'. Я действительно не тот, кто легко сдается, но, в конце концов, я вернулся к использованию кластеров 'PSOCK' ... Надеюсь, что кто-то из SO может дать вам более обнадеживающие новости. – cryo111
Вы попробовали 'cl <- startMPIcluster (count = 63)'? – webb
На самом деле, нет. Вам не нужно передавать параметр этой функции. Спасибо, в любом случае :) – olegario