问题标签 [sbatch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何隐藏 SLURM 的 sbatch 的作业提交消息
我试图在运行后隐藏“提交的批处理作业 xxxx”消息sbatch -Q -N 16 -c 8 --time 10:00:00 job.sh
。
但是,消息“提交的批处理作业 xxxx”仍然出现。有人熟悉情况吗?
根据 SLURM 文档,
linux - 如何将当前时间的目录作为 SLURM 日志路径的一部分
我有一个.slurm
可以在 Linux GPU 集群中运行的文件。该文件是这样的:
现在我想在日志路径中添加一个文件夹。也许我会看起来像:
我努力了:
但是失败了。好像#SBATCH
应该在旁边#!/bin/bash
。
跟随一个成功,但有了它我一次不能运行超过一项工作。
我怎么解决这个问题?
r - 关于在 HPC 集群上运行 Rmpi 和 foreach 的几个问题
我正在通过 sbatch 和 mpirun 在 HPC 集群上排队和运行 R 脚本;该脚本旨在foreach
并行使用。为此,我使用了来自 StackOverflow 的几个有用的问题和答案:R Running foreach dopar loop on HPC MPIcluster、Single R script on multiple nodes、Slurm: Use cores from multiple nodes for R parallelization。
脚本似乎完成了,但发生了一些奇怪的事情。最重要的是 slurm 工作之后继续运行,什么都不做(?)。我想了解我是否正确地做事。我会先给出一些更具体的信息,然后解释我看到的奇怪的事情,然后我会问我的问题。
- 信息:
R 作为模块加载,也称为 OpenMPI 模块。包
Rmpi
,doParallel
,snow
,foreach
已经编译并包含在模块中。集群有节点,每个节点有 20 个 CPU。我的 sbatch 文件记录了 2 个节点和每个节点 20 个 CPU。
R 脚本
myscript.R
在 sbatch 文件中调用,如下所示:
- 我的脚本按此顺序调用多个库:
然后在开始时按如下方式设置并行化:
然后foreach-dopar
连续调用几个——也就是说,每个都在前一个完成后开始。最后
在脚本的最后被调用。
mpi.universe.size()
正如预期的那样,正确地给出了 40。此外,getDoParWorkers()
给出doParallelSNOW
. slurm 日志令人鼓舞地说成功生成 39 个奴隶。0 失败。
启动 MPI 工作者
启动 MPI 工作者
...
此外,print(clusterCall(cl, function() Sys.info()[c("nodename","machine")]))
从脚本中调用会正确报告 slurm 队列中显示的节点名称。
– 有什么奇怪的:
R 脚本完成了它的所有操作,最后一个是将绘图保存为 pdf,我确实看到并且是正确的。但是 slurm 工作并没有结束,它无限期地留在队列中,状态为“正在运行”。
slurm 日志显示很多行带有
Type: EXEC
. 我找不到他们的号码和foreach
被叫号码之间的任何关系。最后,日志显示 19 行Type: DONE
(这对我来说很有意义)。
– 我的问题:
- 为什么脚本完成后 slurm 作业会无限期运行?
- 为什么
Type: EXEC
消息这么多?他们正常吗? - 包
snow
和doParallel
. 我是否以正确的顺序调用了正确的包裹? - 上面提到的 StackOverflow 问题的一些答案建议使用以下命令调用脚本
而不是Rscript
像我一样使用。有什么不同?请注意,即使我以这种方式调用脚本,我提到的问题仍然存在。
我非常感谢您的帮助!
slurm - slurm 作业在不同文件夹上并行执行 python 脚本
该脚本detect.py
执行一些分析:
这个想法是在一些文件夹中运行这个 python 脚本。这个变量会根据我们所在的文件夹X
而变化。Y
此执行由以下prepare.sh
脚本控制:
这样做的问题是有 8500 个文件夹,并且这是按顺序执行的。
我想通过以下方式将这些工作提交到 slurm 中:
- 1个节点(40核)的分配
- 40 个
detect.py
单独处理 40 个文件夹。 - 如果
detect.py
在给定文件夹中完成,它会留下 1 个核心可供下一个文件夹使用。
这将是以下run.sh
要提交到 slurm 队列的 sbatch 脚本sbatch run.sh
:
这怎么能在这个run.sh
脚本中发送?
sockets - sbatch:错误:批处理作业提交失败:运行 Snakemake 时,套接字在发送/接收操作时超时
我在使用 slurm 的 HPC 上运行蛇形管道。管道相当长,由大约 22 个步骤组成。在尝试提交作业时,snakemake 会定期遇到问题。这会导致错误
我通过带有以下snakemake调用的sbatch文件运行管道
这不仅会产生snakemake sbatch 作业的输出,还会产生snakemake 创建的作业的输出。上述错误出现在 sbatch 文件的 slurm.out 中。
错误指示的特定作业步骤将成功运行,并给出输出,但管道失败。作业步骤的日志显示作业 ID 运行没有问题。我用谷歌搜索了这个错误,它似乎经常发生在 slurm 中,尤其是当调度程序处于高 IO 下时,这表明这将是不可避免的且经常发生的。我希望有人遇到过这个问题,并且可以提供解决方法的建议,这样整个管道就不会失败。
slurm - sbatch 跨节点复制任务,而不是在 SLURM 中跨节点传播任务
我有一个程序,它接受一个描述一系列初始条件的输入文件并输出一系列最终条件。我还有一个批处理脚本,它通过将输入文件中的初始条件范围分解成更小的块并将它们提供给程序的独立实例来“并行化”程序。只要我只尝试在一个节点上运行批处理脚本,这似乎就可以正常工作,但是如果我请求多个节点,则程序的每个实例都会在每个节点上复制。
这是我正在使用的批处理脚本的一个非常简化的版本,它重复了这个问题:
出于说明目的,my_program
它只是一个 bash 脚本,它接受输入范围并将其stdout
作为 csv 行写入:
如果一切都在做我想要的,如果我运行命令
sbatch my_job_splitter 32 0 1000 4000
,输出文件应该是一个包含 32 个条目的 CSV 文件,每个条目的范围为 0:1000 的 1/32,但是我得到一个包含 96 个条目和每个范围的 CSV 文件块被复制了 3 次。我想我明白发生了什么——每次我运行 srun 时,它都会看到我分配了 3 个节点并假设我想要每个节点有 1 个任务,所以它只是复制任务,直到它为每个节点分配了 1 个任务——但我不知道如何解决它,或者这是否是一种愚蠢的做法。
我尝试过的其他事情:
- 使用
--exclusive
on 标志srun
:这只会导致srun
只使用一个节点而忽略其他分配的节点 - 根本不使用
srun
:这似乎与使用相同的效果srun --exclusive
shell - 在计算集群上运行许多 sbatch .sh 文件
我有很多包含 .sh 文件的文件夹(如下所示)。我需要在集群上运行它们中的每一个。我需要有关如何将以下 sbatch 命令放入循环的帮助。
文件夹结构
containers - 输入在 slurm 作业中运行的奇异容器
我正在运行以下内容job_script.sh
:
使用sbatch
命令(这是长时间运行的工作):
我想要实现的是在运行容器中执行命令,该容器在以下 slurm 作业中运行:
python - 作业选项未定义提交作业的数量
我用来触发snakemake的命令是:
出于某种原因,我一次提交的工作不会超过 20 个。查看文档,我认为我必须使用:
我不明白为什么这些选项可用。如果 --jobs 定义了提交作业的最大数量,为什么我们要定义每秒集群/drmaa 作业的最大数量?这是什么意思?
对于第二个选项,“每秒最大作业状态检查次数”是什么意思?
最后,将这两个选项设置为 400 是否可以让我同时运行 400 个作业?我可以试试,但我想先了解一下。
谢谢。
slurm - SLURM 错误 - sbatch HS8_main.sbatch sbatch:错误:无法打开文件 HS8_main.sbatch
我正在尝试发送一个 sbatch 文件以在系统的 200 个内核中运行代码。我的代码是
当我运行文件时出现此错误
我之前运行过相同的批次并且运行良好。这次没有运行的可能原因是什么?
谢谢