開始使用免費開始

改用 parApply

若要使用 parallel 套件在平行環境中執行程式碼,基本流程有三個步驟。

  1. 使用 makeCluster() 建立叢集。
  2. 執行工作。
  3. 使用 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)
編輯並執行程式碼