问题标签 [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.

0 投票
2 回答
772 浏览

julia - SLURM sbatch 是否会自动跨节点复制用户脚本?

SLURM(特别是 sbatch)是否应该自动将用户脚本(而不是作业配置脚本)复制到集群的计算节点以执行?从我的登录节点执行 sbatch 文件后,输出文件会在我的一个计算节点上创建,但包含以下内容:

我正在运行批处理脚本sbatch julia.sbatch

julia.sbatch:

或者脚本 (slurm.jl) 是否应该位于所有节点都可以访问的共享存储上?

0 投票
1 回答
555 浏览

shell - sbatch+srun:大量单线程作业

你好友好的人们,

我的问题比较具体。

一个多星期以来,我一直在尝试使用 sbatch 和 srun 提交数千个单线程作业以进行科学实验。

问题是这些作业可能需要不同的时间才能完成,有些甚至可能因为超出内存限制而中止。这两种行为都很好,我的评估处理它。

但是,我面临的问题是某些作业从未开始,即使它们已提交。

我的 sbatch 脚本如下所示:

现在,我的错误日志显示以下消息:

1)“步骤创建暂时禁用”是什么意思?是所有 cpu 都忙,作业被省略,还是稍后资源空闲时重新开始?

2) 为什么我的一些工作没有完成,我该如何解决?我是否为 srun 使用了正确的参数?

谢谢你的帮助!

0 投票
0 回答
226 浏览

shell - 在一个 slurm 脚本中运行同时任务,然后运行单个任务

我需要一个 Slurm 脚本来执行以下操作:

  1. 在暂存空间中创建一个目录用于临时存储(使用 sbatch --gres disk:1024 请求)
  2. 对数百个 bam 文件运行 samtools sort 并将排序后的副本存储在暂存空间中(一次尽可能多)
  3. 排序后,对暂存空间中的排序文件运行 samtools index(一次尽可能多)
  4. 建立索引后,使用所有排序/索引的 bam 文件运行单个(大型)任务(CPU 越多越好)
  5. 将需要的文件复制回主存储系统并删除剩余文件(包括排序的 bam 和索引文件)

使用基本作业数组似乎不起作用,因为它抛弃了只需要执行一次的步骤。最后的单个任务说文件不存在所以我猜脚本正在超越自己并在其他人完成之前删除所有内容(可能运行 rm 与使用数组一样多次),所以尝试其他的东西。

以下脚本给了我来自 samtools 的错误,说在尝试创建排序的 bam 文件时没有这样的文件或目录。

如果我将 --nodes 降为 1,samtools sort 工作正常,但是它只按顺序运行,并且在大约 50 个文件之后它会向前跳,运行第 2 部分关于那里有哪些文件,最后的单个任务找不到其余文件(使用少于 30 个文件时可以正常工作)。

关于如何正确执行此操作的任何帮助都会很棒。当空间可用于第 1 部分和第 2 部分时,我希望在所有节点上安装尽可能多的任务。第 3 部分需要在一个节点上,但从许多 CPU 中受益匪浅,因此提供更多的 CPU 比它之前的小型并行任务(如果这意味着同时执行更多任务,则可以使用更少的 CPU)。请记住,我确实需要在一个过程中完成这一切,因为出于各种原因需要暂存空间。

0 投票
1 回答
1315 浏览

bash - SLURM sbatch 脚本未在 while 循环中运行所有 srun 命令

我正在尝试使用 srun 并行提交多个作业作为 sbatch 中的预处理步骤。循环读取包含 40 个文件名的文件并在每个文件上使用“srun 命令”。但是,并非所有文件都使用 srun 发送出去,其余的 sbatch 脚本会在提交完成后继续执行。真正的 sbatch 脚本更复杂,我不能使用数组,这样就行不通了。这部分应该很简单。

我做了这个简单的测试用例作为健全性检查,它做同样的事情。对于文件列表 (40) 中的每个文件名,它都会创建一个包含“foo”的新文件。每次我使用 sbatch 提交脚本时,都会导致使用 srun 发送不同数量的文件。

这是我上次尝试运行它时的输出日志文件:

0 投票
0 回答
60 浏览

multithreading - 使用 srun 时,Slurm 仅使用某些软件上的所有 CPU?

我有一个这样定义的脚本:

然后我提交我的工作sbatch job.sh

问题是 program1 使用所有 16 个内核/cpu,但 program2 只使用 1 个(据说都是多线程的)。但是,如果我将脚本修改为:

那么 program2 也确实使用了所有 16 个内核。为什么有必要添加那个“srun”?

作为额外信息,program2 多线程的实现是使用std::async

0 投票
2 回答
917 浏览

python - 使用 slurm 在单个节点上使用 python 进行多处理

我正在尝试在集群上运行一些并行代码。集群使用 slurm,我的代码在 python 中。当我在自己的机器上运行该代码时,它使用了多个内核。但是,当我尝试在集群上运行代码时,速度非常慢,而且似乎没有使用多核。

这是来自python的相关代码:

该函数Err_Calc在前面定义。我不认为它的定义是相关的。

SBATCH用来在集群上运行代码的代码如下:

该文件Err_vs_Nz_Cl.py包含我上面显示的代码。我希望这SBATCH可以为我提供 13 个内核,但代码似乎只使用了 1 个内核,或者由于其他原因可能很慢。有谁知道出了什么问题?

0 投票
1 回答
636 浏览

linux - 如何在前一个作业完成后运行 sbatch 作业?

我获得了两个 sbatch 脚本来提交和运行。第二个的输入基于第一个的输出。我需要这样做的任务只是告诉我们每隔几个小时左右检查一次第一个,然后在完成后提交第二个,但是有没有办法自动化,所以第二个在第一个之后运行已经完成?我已经提交了第一个,它目前正在排队中。

0 投票
0 回答
762 浏览

python - SLURM 的 Mpirun 错误:“一个 ORTE 守护程序意外失败”,但仅在使用 sbatch 传递参数时

尝试使用 sbatch 提交作业时出现以下错误:

当我使用不带参数的 sbatch 时,它运行良好,但是当我尝试使用 sbatch 传递任何参数(例如--job-nameor --export)时,会出现上述错误。

我正在使用 openmpi 3 并使用 mpirun 运行 python 脚本。mpirun 和 orted 似乎都在使用相同的 openmpi 版本,正如which在使用 mpirun 之前调用我的 slurm 脚本所证明的那样:

任何帮助将不胜感激。

0 投票
0 回答
157 浏览

multiprocessing - Slurm - 在一个节点上运行多个任务

假设我想运行一个有 100 个不同输入参数的程序。这就是我会在我的笔记本电脑上做的事情,例如:

其中 test.sh 只是一个虚拟程序

如果我运行程序大约需要。160 秒。我尝试使用我的 test.slurm 在集群 40 个节点上运行 Slurm 作业,每个节点有 4 个 CPU:

我得到了 190 秒的运行时间,而不是预期的 ~40 秒,所以没有多处理,但如果我指定 2 个节点 --nodes=2 或超过 4 个任务,即必须分配第二个节点,我会缩短到 90 秒

0 投票
0 回答
66 浏览

mpi - 如何在 SLURM 的脚本文件中为不同的 mpi 执行设置可变数量的节点?

我想对同一程序进行 4 次不同的 mpi 执行,节点数不同。输出应该是 n_out.txt 取决于节点。我尝试了以下 .sh 文件,

但它给出了一个错误:

我知道我不能用 --output-filename 指定输出文件名,而是指定它应该位于的目录。

如何将 n_out.txt 作为所有执行的输入?