私の目的は、毎回異なるパラメーター セットを使用して、R スクリプトを繰り返し実行することです。
そのために、私は bash スクリプトを使用して、入力ファイルをループ処理することでコマンドライン パラメーターを R スクリプトに渡しています。このファイルでは、各行に 7 つのパラメーターの異なる組み合わせが含まれています。
入力ファイルは次のようになります。
10 food 0.00005 0.002 1 OBSERVED 0
10 food 0.00005 0.002 1 OBSERVED 240
10 food 0.00005 0.002 1 OBSERVED 480
10 food 0.00005 0.002 1 OBSERVED 720
10 food 0.00005 0.002 1 OBSERVED 960
10 food 0.00005 0.002 1 OBSERVED 1200
コマンド ライン パラメーターが渡される R スクリプトは、次のように始まります。
commandArgs(trailingOnly=FALSE)
A <- as.numeric (commandArgs()[as.numeric(length(commandArgs()) -6 )])
B <- commandArgs()[as.numeric(length(commandArgs()) -5 )]
C <- as.numeric (commandArgs()[as.numeric(length(commandArgs()) -4 )])
D <- as.numeric (commandArgs()[as.numeric(length(commandArgs()) -3 )])
E <- as.numeric (commandArgs()[as.numeric(length(commandArgs()) -2 )])
F <- commandArgs()[as.numeric(length(commandArgs()) -1 )]
G <- as.numeric (commandArgs()[as.numeric(length(commandArgs()) )])
これらを読み取り、R スクリプトをディスパッチする bash ループは次のとおりです。
#!/bin/bash
N=0
cat Input.txt | while read LINE ; do
N=$((N+1))
echo "R --no-save < /home/trichard/Script.R" "$LINE" | bsub -N -q priority -R "select[model==Xeon5450]"
done
ただし、問題は、Input.txt に何百万行もあるということです。そのため、このアプローチは遅すぎます (他の LSF ユーザーが自分のジョブを送信するのを妨げます)。
問題は、LSF 配列を使用して上記を行う方法です。