JAGSで3つのチェーンを5コアまたは6コアに細分することが可能かどうかは疑問です。ここに私のコードは次のとおりです。複数のコア(細分鎖)でJAGSを使用して複数のチェーンを実行することは可能ですか?
library(parallel)
# There is no progression bar using parallel
jags.parallel(data = d$data,
inits = d$inits,
parameters.to.save = d$params,
model.file = model.jags,
n.chains = 3,
n.thin = 10,
n.iter = 9000,
n.burnin = 3000,
working.directory = NULL,
n.cluster = 3) ## the number of cluster it’s taking
あなたが見ることができ、これはデフォルトであるため、(私の場合は3である、ここでnc
)鎖の数は、使用するコアの数に等しいです。
- これはMCMCのサンプリング方法にどのような影響を及ぼしますか?
- MCMCチェーンを並列に実行するときに、Rに使用する最適なコア数はありますか?
- 私は3本の鎖があれば3本のコアの下に行くことができないことを知りました。それは私にこれを与えるerror:
Error in res[[ch]] : subscript out of bounds
。どうして? - コアの数を増やすと時間がかかります(12コアの場合、3コアよりも7.2倍多くなります)!それは逆ではありませんか?
- 繰り返しを削除したり、バーンインや間引きを追加しなくても、スクリプトを高速化するにはどうすればよいですか?
私のコンピュータは16コアなので、コアの数にも柔軟性があります(64 GBのRAMと3 GHzのIntel Xeon E5プロセッサも搭載しています)。
チェーンの各反復は以前の反復に依存するため、1つのチェーンを複数のコアに分割することはできません。 – jbaums