私は並列に関数を実行しています。仕事の状態に関する進捗状況の更新を得るために、私は1人だけですが、その進捗状況について定期的に報告することを希望します。これを行う方法についての私の自然な考えは、ワーカーが実行する機能をワーカーの名前を確認し、その名前が特定の値と一致する場合にのみステータス更新を与えることです。しかし、私はこれを事前に決定する信頼できる方法を見つけることができません。たとえばジュリアでは、労働者のID(1,2など)を与える単純なmyid()
関数があります。私はRで何か同等のものを探しています。今まで私が見つけた最高のものは、各労働者にSys.getpid()
と電話することです。しかし、私はスクリプトを書くための信頼できる方法を知らないので、従業員に割り当てられているpidのどれが事前にわかるでしょう。R - 並列実行時に作業者名を取得する
library(parallel)
Test_Fun = function(a){
for (idx in 1:10){
Sys.sleep(1)
if (myid() == 1){
print(idx)
}
}
}
mclapply(1:4, Test_Fun, mc.cores = 4)