December 11, 2014

xargsまたはparalellを用いてRを並列処理させる

list.txtから入力を受け取り、hoge.Rで並列処理をさせる。

hoge.R

argv <- commandArgs(TRUE)

argv <- strsplit(argv, ",")[[1]]

par1 <- as.numeric(argv[1])

par2 <- as.numeric(argv[2])

print(par1)

print(par2)

list.txt

1,1

1,2

2,1

2,2

xargsを用いる場合

cat list.txt | xargs -P8 -n1 Rscript hoge.R

paralellを用いる場合

cat list.txt | parallel -j 8 Rscript hoge.R {}

© gepuro 2013