首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用SLURM在集群上运行作业时保存输出

如何使用SLURM在集群上运行作业时保存输出
EN

Stack Overflow用户
提问于 2019-11-06 22:34:38
回答 2查看 3.7K关注 1票数 2

我想使用SLURM运行一个R脚本。我已经创建了R脚本"test.R“,如下所示:

代码语言:javascript
复制
print("Running the test script")
write.csv(head(mtcars), "mtcars_data_test.csv")

我创建了一个bash脚本来运行这个R脚本"submit.sh“

代码语言:javascript
复制
#!/bin/bash

#sbatch --job-name=test.job
#sbatch --output=.out/abc.out
Rscript  /home/abc/job_sub_test/test.R

我在集群中提交了工作

代码语言:javascript
复制
sbatch submit.sh

我不知道我的输出保存在哪里。我查看了主目录,但没有输出文件。

编辑

我还在test.R中设置了工作目录,但没有什么不同。

代码语言:javascript
复制
setwd("/home/abc")
print("Running the test script")
write.csv(head(mtcars), "mtcars_data_test.csv")

当我在没有SLURM Rscript test.R的情况下运行脚本时,它运行得很好,并根据设置的路径保存了输出。

EN

回答 2

Stack Overflow用户

发布于 2019-11-07 09:05:26

Slurm将作业工作目录设置为发出sbatch命令时的工作目录。

假设在所有计算节点上挂载了/home目录,则可以使用提交脚本中的cd或R语法中的setwd()显式地更改工作目录。但这不应该是必要的。

有三种可能性:

  • 要么由于配置或硬件问题而根本没有开始作业;要么可以使用sacct命令查找state列。
  • 或者确实创建了文件,但位于文件系统上的未共享的计算节点上;在这种情况下,最好的选项是SSH到计算节点(您可以用sacct查找该节点)并在那里查找文件;或者使用
  • 脚本崩溃,文件根本没有创建,在这种情况下,您应该查看作业的输出文件(.out/abc.out)。请注意,在作业开始之前,.out目录必须存在,并且当它以.开头时,它将是一个隐藏文件,仅在ls中用-a参数显示。
票数 2
EN

Stack Overflow用户

发布于 2019-11-13 20:51:14

S批处理的-输出参数相对于您提交作业的文件夹。R脚本中的setwd不会影响它,因为Slurm已经解析了该参数,并在R脚本运行时开始将输出管道输送到文件。

首先,如果要将输出转到/home/abc/..out/确保在提交脚本时位于home you,或者指定- path参数的完整路径。

第二,.out文件夹必须存在;我测试了它,如果没有,Slurm就不会创建它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58739468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档