次のコードを高速化したい場合、どうすればよいですか?
pcg <- foreach(boot.iter=1:boot.rep) %dopar% {
d.boot<-d[in.sample[[boot.iter]],]
*ここでは、.sample[[boot.iter]] でランダムに 1000 行の番号を生成します。
全体のタスクを分割し、分割されたトライアルを各コアに送信することを計画しました。例えば、
sub_task<-foreach(i=1:cores.use)%dopar%{
for (j in 1:trialsPerCore){
d.boot<-d[in.sample[[structure[i,j]]],]}}
*構造は、1 から boot.rep までを含む行列です。
しかし、これは機能しません。foreach 内で「for」ループを使用できないようです。また、d.boot は各コアの最後の反復のみを保持します。
オンラインで検索しようとしたところ、次のコードが機能することがわかりました。
sub_task<foreach(i=1:cores.use)%:%
foreach(j=1:trialsPerCore)%dopar%{
d.boot<-d[in.sample[[structure[i,j]]],]}
でも本来の機能と似ていると思いますし、大幅な強化はないと思います。
何か提案はありますか?