簡體   English   中英

使用 SLURM 在集群上運行作業時如何保存 output

[英]How to save output when running job on cluster using SLURM

我想使用 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

我不確定我的 output 保存在哪里。 我查看了主目錄,但沒有 output 文件。

編輯

我還在test.R中設置了我的工作目錄,但沒有什么不同。

setwd("/home/abc")
print("Running the test script")
write.csv(head(mtcars), "mtcars_data_test.csv")

當我在沒有 SLURM Rscript test.R的情況下運行腳本時,它運行良好並根據設置的路徑保存了 output。

Slurm 會將作業工作目錄設置為發出sbatch命令時的工作目錄。

假設/home目錄安裝在所有計算節點上,您可以使用提交腳本中的cd或 R 語法中的setwd()顯式更改工作目錄。 但這不應該是必要的。

三種可能:

  • 由於配置或硬件問題,作業根本沒有開始; 您可以使用sacct命令查看state列。
  • 該文件確實已創建,但在未共享的文件系統上的計算節點上; 在這種情況下,最好的選擇是 SSH 到計算節點(您可以使用sacct找到)並在那里查找文件; 或者
  • 腳本崩潰並且根本沒有創建文件,在這種情況下,您應該查看作業的 output 文件( .out/abc.out )。 請注意,在作業開始之前必須存在.out目錄,並且它以 .out 開頭. ,它將是一個隱藏文件,在ls中僅使用-a參數顯示。

sbatch 的 --output 參數與您提交作業的文件夾相關。 R 腳本中的 setwd 不會影響它,因為 Slurm 已經解析了該參數並在 ZE1E1D3D40573127E9EE0480CAF128D 腳本運行時開始將 output 傳送到文件。

首先,如果您希望 output 到 go 到 /home/abc/.out/ 確保您在提交腳本時位於 homedir 中,或者指定 --output 參數的完整路徑。

其次,.out 文件夾必須存在; 我對此進行了測試,如果沒有,Slurm 不會創建它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM