0

テキストファイルから取得した、多くの列と行を持つテーブル M があります。

M <- read.table("text.csv",header=TRUE,sep="\t")

私が正常に使用した列ごとにランクを取得するには:

M <- apply(M,2,rank)

計算を高速化したいのですが、この関数を降雪で実装することに成功しませんでした。

私は試した :

library(snowfall)
sfStop()
nb.cpus <- 8
sfInit(parallel=TRUE, cpus=nb.cpus, type = "SOCK")
M <- sfClusterApplyLB(M, rank) # does not work
M <- sfClusterApply(M,2,rank) # does not work
M <- sfClusterApplyLB(1:8, rank,M) # does not work

M <- apply(M,2,rank)降雪に相当するものは何ですか?

よろしくお願いいたします。

4

3 に答える 3

1

apply降雪量に相当するのは ですsfApply。次に例を示します。

library(snowfall)
sfInit(parallel=TRUE, cpus=4, type="SOCK")
M <- data.frame(matrix(rnorm(40000000), 2000000, 20))
r <- sfApply(M, 2, rank)
sfStop()

この例は、4 つのコアを使用する Linux マシンでシーケンシャル バージョンのほぼ 2 倍の速度で実行されます。rank計算量がそれほど多くないことを考えると、それほど悪くはありません。

于 2016-02-14T01:43:56.650 に答える