gepuro.net
gepulog

データ分析エンジニアによる備忘録的ブログ

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 {}