我想使用SLURM运行一个R脚本。我已经创建了R脚本"test.R“,如下所示:
print("Running the test script")
write.csv(head(mtcars), "mtcars_data_test.csv")我创建了一个bash脚本来运行这个R脚本"submit.sh“
#!/bin/bash
#sbatch --job-name=test.job
#sbatch --output=.out/abc.out
Rscript /home/abc/job_sub_test/test.R我在集群中提交了工作
sbatch submit.sh我不知道我的输出保存在哪里。我查看了主目录,但没有输出文件。
编辑
我还在test.R中设置了工作目录,但没有什么不同。
setwd("/home/abc")
print("Running the test script")
write.csv(head(mtcars), "mtcars_data_test.csv")当我在没有SLURM Rscript test.R的情况下运行脚本时,它运行得很好,并根据设置的路径保存了输出。
发布于 2019-11-07 09:05:26
Slurm将作业工作目录设置为发出sbatch命令时的工作目录。
假设在所有计算节点上挂载了/home目录,则可以使用提交脚本中的cd或R语法中的setwd()显式地更改工作目录。但这不应该是必要的。
有三种可能性:
sacct命令查找state列。sacct查找该节点)并在那里查找文件;或者使用.out/abc.out)。请注意,在作业开始之前,.out目录必须存在,并且当它以.开头时,它将是一个隐藏文件,仅在ls中用-a参数显示。发布于 2019-11-13 20:51:14
S批处理的-输出参数相对于您提交作业的文件夹。R脚本中的setwd不会影响它,因为Slurm已经解析了该参数,并在R脚本运行时开始将输出管道输送到文件。
首先,如果要将输出转到/home/abc/..out/确保在提交脚本时位于home you,或者指定- path参数的完整路径。
第二,.out文件夹必须存在;我测试了它,如果没有,Slurm就不会创建它。
https://stackoverflow.com/questions/58739468
复制相似问题