Я хочу выполнить распределенное параллельное вычисление с кластером, к которому у меня есть доступ: 5 узлов («компьютеров»);каждый узел имеет два процессора («CPU»), а каждый процессор имеет 18 ядер.
Таким образом, число потоков, которые я мог бы использовать в смущающе параллельных вычислениях, равно 180 (5 * 2 * 18).
Я обнаружил, что не могу использовать стандартные параллельные функции R для кластера.Вместо этого мне нужно использовать MPI.doMPI кажется идеальным для этой задачи, поскольку в нем реализован foreach для MPI, как описано в виньетке:
https://cran.r -project.org / web / packages / doMPI / vignettes / doMPI.pdf
У меня есть вопрос о MPI: когда кто-то пишет, например:
cl <- startMPIcluster (count = 2) </p>
что означают эти 2?Количество узлов в кластере, которые будут использоваться?Количество ядер, которые будут использоваться?
Если 2 представляет количество используемых узлов, сможет ли doMPI использовать 2 процессора и 2 * 18 ядер, которые находятся в каждом узле?Или я должен сказать doMPI что-то еще, например, чтобы я мог использовать эти 36 ядер?
Если 2 представляет количество ядер, то все кажется проще.Но этот выбор был бы странным, потому что, если кластер на самом деле больше 5 узлов (и мне было выделено 5 узлов на пропорциональную квоту), нет четкого рецепта, если doMPI должен использовать как можно меньше узлов (ивсе ядра в этом узле) или использовать как можно больше узлов (и как можно меньше ядер в этом узле).
Итак, мой вопрос:
Если я хочу сделатьцикл из 180 смущающе параллельных задач (или 360, или 1800), я должен использовать cl <- startMPIcluster (count = 5) или cl <- startMPIcluster (count = 180) или что-то еще, такое, что используются 180 доступных ядер?</p>
Спасибо за помощь.