並列化されたコードの実行にリモート スーパーコンピューターを使用する方法を学び始めたところです。この以前の投稿から多くの最初の助けを得ただけでなく、特に親切で辛抱強い XSEDE 担当者も 1 人助けてくれました。
私は (当面の間) 1 つのノードしか使用していませんが、それぞれの 32 コアです。スーパーコンピューターの担当者が Rmpi を実行中なので、snow の代わりに doMC を使用しています。今のところ、32 コアで (それ以上) 十分なはずです。私のスクリプトは次のようなものです:
define a bunch of functions
load the data
call libraries
require(doMC)
require(plyr)
registerDoMC(32)
main.function <- function(data){
*the function*
}
results = llply(1:500, function(idx){out<-main.function(data)},.parallel=TRUE)
save(results,file="trestles_results")
これは自分のマシンで問題なく動作します(数回だけ実行するように設定し、いくつかのコアのみを登録します)。しかし、クラスターで実行すると、出力ファイルには 500 回の反復が実行されたことが示されますが、出力ファイルが得られず、次のエラー メッセージが表示されます。
Error in do.ply(i) : task 1 failed - "could not find function "getClass""
Calls: llply -> %dopar% -> <Anonymous>
Execution halted
Nodes: trestles-10-28
ここで何が起こっているのか誰にも分かりますか?
前もって感謝します!