Запись в файл журнала с помощью doMPI

Я запускаю doMPI на HPC и хочу регистрировать вывод рабочих. Используя doParallel, я смог использовать makeCluster(outfile='myfile.log'). В doMPI, похоже, нет аргумента outfile ни в одном из методов. Я пробовал использовать sinkWorkerOutput(). Это работает, но записывает журнал только для одного из рабочих. Подозреваю, что каждый воркер перезаписывает другой. А есть аналог outfile для doMPI?

Связанный вопрос - внутри рабочего, могу ли я найти его номер?

РЕДАКТИРОВАТЬ: вот ссылка на ответ, в котором обсуждается, как использовать аутфайл: Как я могу печать при использовании% dopar%

Спасибо за помощь,

Бен


person Ben Carlson    schedule 03.03.2017    source источник
comment
А как насчет помещения sink или cat в вашу функцию?   -  person Jav    schedule 04.03.2017


Ответы (1)


Чтобы отправлять выходные данные рабочего процесса в файл в пакете doMPI, установите для параметра startMPIcluster "подробный" значение TRUE:

cl <- startMPIcluster(verbose=TRUE)

Это создает один файл для каждого рабочего с именами в форме «MPIdoMPIsteve_41747.log». Ранг MPI, имя пользователя и идентификатор процесса используются, чтобы сделать имена файлов уникальными. Вы также можете указать каталог журнала с помощью опции "logdir".

Чтобы получить номер рабочего, вы можете просто вызвать функцию mpi.comm.rank.

person Steve Weston    schedule 04.03.2017