我有一个R(RHO_COR.R)脚本,我想创建一个循环以便在几个节点上拆分作业。
我展示了我想创建循环的脚本部分。
res <- foreach(i = seq_len(nrow(combs)) %dopar% {
G1 <- split[[combs[i,1]]]
G2 <- split[[combs[i,2]]]
dat.i <- cbind(data[,G1], data[,G2])
rho.i <- cor_rho(dat.i)
}
res
的不同结果存储在多个文件中。
combs
是一个看起来像这样的向量(但是根据我的输入文件,它可以改变):
> combs
[,1] [,2]
[1,] 1 2
[2,] 1 3
[3,] 1 4
[4,] 1 5
[5,] 2 3
[6,] 2 4
[7,] 2 5
[8,] 3 4
[9,] 3 5
[10,] 4 5
我想在节点上发送combs
的每一行。
这是我的错误代码:
#!/bin/bash
#SBATCH -o job-%A_task.out
#SBATCH --job-name=paral_cor
#SBATCH --partition=normal
#SBATCH --time=1-00:00:00
#SBATCH --mem=126G
#SBATCH --cpus-per-task=32
#Set up whatever package we need to run with
module load gcc/8.1.0 openblas/0.3.3 R
# SET UP DIRECTORIES
OUTPUT="$HOME"/$(date +"%Y%m%d")_parallel_nodes_test
mkdir -p "$OUTPUT"
export FILENAME=~/RHO_COR.R
#Run the program
Rscript $FILENAME > "$OUTPUT"
我不想使用数组。我想知道是否创建一个seq_len(nrow(combs)
的参数可以解决吗?
for i in my_argument
do Rscript $FILENAME -i > "$OUTPUT"
done