2017-03-03 127 views
1

我在HPC上運行doMPI,我想記錄來自工人的輸出。使用doParallel,我可以使用makeCluster(outfile='myfile.log')。使用doMPI,在任何方法中似乎都不存在任何參數。我嘗試使用sinkWorkerOutput()。這是有效的,但只爲其中一名工作人員寫了日誌。我懷疑每個工人都在重寫另一個工人。 outfile doMPI有模擬嗎?使用doMPI寫入日誌文件

一個相關的問題 - 在一個工人內部,我能找到工人編號嗎?

編輯:這是一個答案的鏈接討論如何使用OUTFILE:在doMPIHow can I print when using %dopar%

感謝你的幫助,

+0

把'sink'或'cat'放進你的函數裏怎麼樣? – Jav

回答

0

爲了工人的產量發送到一個文件,設置startMPIcluster 「詳細」 選項TRUE

cl <- startMPIcluster(verbose=TRUE) 

這將創建一個文件p呃名字爲「MPI_1_steve_41747.log」的工人。 MPI等級,用戶名和進程ID用於使文件名唯一。您也可以通過「logdir」選項指定日誌目錄。

要獲得工人編號,您可以簡單地調用mpi.comm.rank函數。