Windows の R でコードの並列化を機能させるにはどうすればよいですか? 簡単な例を含めてください。これは、動作させるのがかなり面倒だったので、自己回答の質問を投稿しました。パッケージ parallel は単独では機能しませんが、パッケージ snow は非常にうまく機能します。
ベストアンサー1
これを投稿するのは、理解するのにものすごく時間がかかったからです。これは、R での並列化の簡単な例です。これを使用すると、正しく動作しているかどうかをテストして、正しい方向に進むことができます。
library(snow)
z=vector('list',4)
z=1:4
system.time(lapply(z,function(x) Sys.sleep(1)))
cl<-makeCluster(###YOUR NUMBER OF CORES GOES HERE ###,type="SOCK")
system.time(clusterApply(cl, z,function(x) Sys.sleep(1)))
stopCluster(cl)
また、ライブラリ doSNOW を使用して foreach を snow クラスターに登録する必要があります。これにより、多くのパッケージが自動的に並列化されます。登録するコマンドはregisterDoSNOW(cl)
(cl
からの戻り値makeCluster()
) で、登録を元に戻すコマンドは ですregisterDoSEQ()
。クラスターをオフにすることを忘れないでください。