Windows で R を並列化するにはどうすればいいですか - 例? 質問する

Windows で R を並列化するにはどうすればいいですか - 例? 質問する

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()。クラスターをオフにすることを忘れないでください。

おすすめ記事