簡體   English   中英

如何並行運行 psych package?

[英]How to run the psych package in parallel?

我正在使用 psych package 計算一個非常大的數據集的四項相關性,該數據集包含 1000 個變量和 288,059 個案例。

數據可以在這里下載:

https://www.dropbox.com/s/iqwgdywqfjvlkku/data.csv.zip?dl=0 (4MB)

我的代碼如下所示:

library(psych)
library(tidyverse)

temp = read.csv("~/Temp/data.csv", sep=",")

tetravalues = tetrachoric(temp, delete=FALSE)

tetraframe = tetravalues$rho

write.csv(tetraframe, file="~/Temp/output.csv")

目前這段代碼已經運行了8個小時,還沒有結束:

tetravalues = tetrachoric(temp, delete=FALSE)

根據 psych package 手冊(tetrachoric):

這是一個計算密集型 function,可以通過使用多個內核和並行 package 來顯着加快速度。可以使用選項命令指定執行多色或四色時要使用的內核數。 速度的最大提升是從 1 核增加到 2 核。這大約節省了 50%。 使用 4 個內核似乎可以節省 66%,而使用 8 個內核可以節省 75%。 並行進程數默認為 2,但可以使用 options 命令修改:options("mc.cores"=4) 會將核心數設置為 4。

我的筆記本電腦有 10 個內核。

我是 R 的新手,一直無法弄清楚如何並行運行我的代碼。

任何想法表示贊賞。

圖書館(psych) 圖書館(tidyverse)

temp = read.csv("~/Temp/data.csv", sep=",")

tetravalues = tetrachoric(temp, delete=FALSE)

tetraframe = tetravalues$rho

write.csv(tetraframe, file="~/Temp/output.csv")

您基本上自己提供了問題的答案。

您可以在下面的代碼中調整核心數。 請注意,當你想在計算運行時將筆記本電腦用於其他事情時,我不會將核心數設置為最大值。

是 R 中有關並行計算的快速介紹。

library(psych)
library(tidyverse)

# Here you can pick the number of cores. 
options("mc.cores"=4)

temp = read.csv("~/Temp/data.csv", sep=",")

tetravalues = tetrachoric(temp, delete=FALSE)

tetraframe = tetravalues$rho

write.csv(tetraframe, file="~/Temp/output.csv")

tetravalues = tetrachoric(temp, delete=FALSE)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM