parApply への移行
parallel パッケージでコードを並列実行する基本的な手順は3ステップです。
makeCluster()でクラスターを作成します。- 処理を実行します。
stopCluster()でクラスターを停止します。
最も簡単なクラスターの作り方は、makeCluster() に数値を渡すことです。これにより既定のタイプのクラスターが作成され、その数のコアでコードが実行されます。
オブジェクト dd は10列100行のデータフレームです。次のコードは apply() を使って列ごとの中央値を計算します。
apply(dd, 2, median)
これを並列で実行するには、apply() を parApply() に置き換えます。引数は基本的に同じですが、通常の apply() の引数の前にクラスター引数を取る点が異なります。
この演習はコースの一部です
効率的なRコードの書き方
演習の手順
detectCores()関数を使って、利用可能なコア数をコンソールに表示してください。makeCluster()を使ってクラスターを作成し、使用するコア数を 2 に設定します。結果をclとして保存してください。- 上の
apply()関数をparApply()に書き換えてください。最初の引数はクラスターオブジェクトclになることを忘れないでください。 stopCluster()を使ってクラスターを停止してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Determine the number of available cores
___
# Create a cluster via makeCluster
cl <- makeCluster(___)
# Parallelize this code
apply(dd, 2, median)
# Stop the cluster
stopCluster(cl)