DoMPI и кластеры
У меня есть мой первый опыт использования R и кластеров. Выполняя поиск в Google, я обнаружил пакет "doMPI". Этот пакет позволяет мне автоматизировать создание процессов. Однако я немного запутался в функциях.
1 - В чем разница между startMPIcluster и registerDOMPI?
2 - Что за аргумент передан стартовому MPIcluster?
3 - Когда я использую команду mpirun -H n1,n2,n3 -n 1 R --slave -f sincMPI.R
что это значит -n 1
?
4 - Предположим, что у меня есть 4 кластера, каждый с 60 CPUS. Как это будет мой код?
1 ответ
Вы читали виньетку doMPI? Я пытался ответить на все эти вопросы в нем. Я также предлагаю вам скачать исходный код doMPI и просмотреть примеры скриптов, которые в него включены.
Что касается ваших вопросов:
startMPIcluster
используется для создания объекта кластера, представляющего набор процессов, используемых для параллельных вычислений;registerDoMPI
используется для регистрации кластерного объекта с помощью foreach, поэтому он будет использоваться для выполнения параллельных циклов foreach. Обе функции должны быть использованы.Если вы выполняете свой R-скрипт через mpirun с
-n 1
Опция mpirun запустит только один процесс для выполнения вашего R-скрипта (который я называю основным процессом) и первый аргументstartMPIcluster
указывает количество рабочих, которые мастер должен запустить для выполнения задач, генерируемых циклами foreach. Если вы используете mpirun для запуска нескольких процессов, вам не нужно указыватьcount
значение на всех. Я рекомендую использовать mpirun для запуска всех рабочих (используя-n 3
в вашем примере), а не указав значение дляcount
значение.Mpirun
-n
Параметр указывает количество рабочих / процессов, которые он должен запустить. Если вы хотите порождать рабочих, вы должны использовать-n 1
так что mpirun только запускает мастер и используетstartMPIcluster
count
Аргумент, чтобы контролировать количество рабочих, чтобы нереститься.
Я действительно не понимаю ваш последний вопрос, но я думаю, что виньетка и примеры должны помочь вам лучше понять все эти концепции.