Запись в файл журнала с использованием doMPI
Я использую doMPI на HPC, и я хотел бы регистрировать выходные данные рабочих. Используя doParallel, я смог использовать makeCluster(outfile='myfile.log')
, С doMPI, похоже, нет outfile
аргумент в любом из методов. Я пытался с помощью sinkWorkerOutput()
, Это работает, но только написал журнал для одного из рабочих. Я подозреваю, что каждый работник перезаписывает другого. Есть ли аналог для outfile
для doMPI?
Смежный вопрос - внутри рабочего я могу найти номер рабочего?
РЕДАКТИРОВАТЬ: вот ссылка на ответ, обсуждающий, как использовать outfile: Как я могу печатать при использовании% dopar%
Спасибо за помощь,
Бен
1 ответ
Чтобы отправить рабочий вывод в файл в doMPI
пакет, установите startMPIcluster
"подробный" вариант TRUE
:
cl <- startMPIcluster(verbose=TRUE)
Это создает один файл на каждого работника с именами в форме "MPI_1_steve_41747.log". Ранг MPI, имя пользователя и идентификатор процесса используются, чтобы сделать имена файлов уникальными. Вы также можете указать каталог журналов с помощью опции "logdir".
Чтобы получить рабочий номер, вы можете просто позвонить mpi.comm.rank
функция.