用 futures 支援社會科學經費
你在一家慈善基金會工作。基金會會將研究經費頒發給在其所在國家社會科學研究評等中名列前 1% 的大學。因此,每年都需要計算研究評等的門檻值。
你的工作環境中有一個清單 rating_list,每個元素都包含某一國家的大學研究評等資料。你也可以使用 generate_cutoff_future()。這個函式會建立一個用來計算門檻值的 future。不過,你的主管對於 futures 相較於其他平行化方法的優勢還不太確定。你必須示範:不更動實際程式碼,也能用 futures 在循序與平行之間切換執行。已經為你載入 future 套件。
本練習屬於課程
R 平行程式設計
練習說明
- 在循序計畫下,使用
lapply()對rating_list套用generate_cutoff_future(),產生「循序」futures。 - 取出這些循序 futures 的值。
- 在平行計畫下產生「平行」futures。
- 取出這些平行 futures 的值。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
plan(sequential)
# Create futures under sequential plan
seq_futures <- ___(___, ___)
# Extract values of sequential futures
seq_values <- ___(___)
plan(multisession, workers = 4)
# Create futures under multisession plan
par_futures <- ___(___, ___)
# Extract values of parallel futures
par_values <- ___(___)
plan(sequential)
cbind(seq_values, par_values)