问题标签 [slurm]

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 投票
1 回答
685 浏览

matlab - 使用 slurm sbatch 为集群作业分配参数

我正在使用 slurm sbatch 在集群上并行启动 matlab 函数。

为了将数字参数分配给 matlab 函数,我的 sbatch 文件中的正确语法是什么?

我尝试了以下(和类似的):

${SLURM_ARRAY_TASK_ID} 正在工作,但 matlab 无法识别 VAR1 和 VAR2。

错误:未定义的函数或变量“VAR1”。

0 投票
1 回答
113 浏览

parallel-processing - slurm controller busy a lot of times when used by other users

I am fairly new to SLURM: the grid I use has many different users and when they are submitting or canceling jobs, it seems that other users are not able to query partition status, etc. This is extremely frustrating especially when creating jobs that spawn other jobs since they end up failing because the controller is busy. Does anyone know a workaround?

0 投票
2 回答
6727 浏览

segmentation-fault - 使用带有 SLURM 的 openMPI 作业的分段错误

我在尝试使用 slurm SBATCH 作业或 SRUN 作业和 MPI over infiniband 时遇到问题。

OpenMPI 已安装,如果我启动以下测试程序(称为hello),mpirun -n 30 ./hello它就可以工作。

所以 :

当我尝试通过 SLURM 启动它时,会出现如下分段错误:

有谁知道是什么问题?我已经构建了支持 Slurm 的 openMPI,并安装了相同版本的编译器和库,实际上所有库都在一个 NFS 共享中,该共享安装在每个节点上。

评论:

它应该使用 infiniband,因为它已安装。但是当我用mpirun启动 openmpi 时,我注意到

我猜这意味着“不通过 infiniband 运行”。我已经安装了 infiniband 驱动程序,并通过 Infiniband 设置了 IP。Slurm 配置为使用 infiniband IP 运行:这是正确的配置吗?

提前致谢最好的问候

编辑 :

我刚刚尝试用 MPICH2 而不是 openMPI 编译它,它可以与 SLURM 一起使用。所以问题可能与openMPI有关,而不是Slurm配置?

编辑 2:实际上,我已经看到使用带有 SBATCH 命令而不是 SRUN 的 openMPI 1.6.5(而不是 1.8)我的脚本被执行(即它返回线程号、等级和主机。但它显示了与 openfabric 供应商相关的警告和注册内存的分配:

我从中了解到,a)v.1.6.5 具有更好的错误处理能力,b)我必须配置具有更多注册内存大小的 openMPI 和/或 infiniband 驱动程序。我看到这个页面,显然我只需要修改 openMPI 的东西?我必须测试它...

0 投票
1 回答
862 浏览

slurm - Slurm - 未找到组 ID

当我尝试使用 srun 运行任何命令时,我正在获得资源(salloc),我收到了错误:

你知道到底是什么问题吗?

0 投票
1 回答
4529 浏览

python - 使用 slurm 在网格上运行 helloworld.py 程序

这是一个很长的问题,所以我先做一个总结:

我是并行编程和网格系统的新手。我想在我有帐户的网格中运行http://jeremybejarano.zzl.org/MPIwithPython/introMPI.html中的第一个示例。维护人员提供了一个 C 示例。我可以运行它。但是对于 python 版本,我的排名全为零。可能是什么问题?

问题的长版本:

我有这段代码是用 python 2.7 (+numpy+matplotlib+mayavi) 编写的,需要很长时间才能运行。由于我在某个网格中有一个帐户,我想将代码移到那里,并花更少的时间等待试验完成。

不幸的是,我对并行性、网格等不熟悉。我在网格中也没有管理员权限。

提供了一些文档。系统使用 SLURM。您准备一个 sbatch 文件,并通过sbatch filename. 有这个用 C 编写的 helloworld 程序示例:

以及管理员提供的运行它的 slurm 文件:

我可以通过 提交sbatch helloworld.slurm。最后,我看到从 0 到 3 的“hello worlds”。例如,rank 对每个进程采用不同的值。好的!

问题是,没有用 Python 编写的示例程序。系统中的python是旧的:2.6.x。所以我下载了anaconda发行版并安装在用户空间。我尝试改编上面的示例 helloworld.slurm。我想在这里运行 helloworld 示例:http: //jeremybejarano.zzl.org/MPIwithPython/introMPI.html。我可以提交作业,但我得到的 helloworlds 排名都相同,正如您从输出文件中看到的那样。例如,这似乎并没有在不同的进程上运行。

注意:我在 c 版本中得到相同的错误,但它仍然运行并产生不同的等级。

你好世界python版本:

python hello world (main.py) 的 slurm 文件

产生的错误文件:

产生的输出文件:

那么,问题的原因可能是什么?我该如何解决?

我显然向管理员发送了一条消息,但他还没有回复。

0 投票
1 回答
785 浏览

configuration - slurm:使用控制节点也进行计算

我已经在我们的实验室建立了一个小型集群(9 个节点)用于计算。目前我正在使用一个节点作为 slurm 控制器,即它不用于计算。

我也想使用它,但我不想分配所有 CPU,我想保留 2 个 CPU 空闲用于调度和其他与主节点相关的任务。

是否可以在slurm.conf中编写类似的内容:

还是我打破了什么?我不想在不先询问的情况下对其进行测试,因为集群已经在生产中,我担心会破坏某些东西......在上面的分区中,master是我的控制器的主机名,node0[1-8]是我的正常计算节点。如您所见,不使用 master 会损失集群 10% 的 CPU...

提前致谢

0 投票
1 回答
7040 浏览

bash - seq 使用逗号作为小数分隔符

我注意到seq我的一台计算机(Ubuntu LTS 14.04)上有一个奇怪的行为:它没有使用点作为小数分隔符,而是使用逗号:

我的另一台 PC 上相同版本的 seq(8.21)给出了正常点(也是相同的 Ubuntu 版本)。最奇怪的是,当我从第一台机器 ssh 进入远程机器时,我在远程机器上观察到同样的不良行为。即使是从冲突机器提交到远程机器上的作业调度程序 (slurm) 的 bash 脚本也存在此问题。我很困扰。为什么(以及如何!)会发生这种情况?

0 投票
6 回答
68250 浏览

slurm - 找出 slurm 作业的 CPU 时间和内存使用情况

我想这是一个非常微不足道的问题,但尽管如此,我正在寻找(我猜是 sacct)命令,它将显示 slurm 作业 ID 使用的 CPU 时间和内存。

0 投票
1 回答
7332 浏览

cluster-computing - 使用多个节点运行 slurm 脚本,使用 1 个任务启动作业步骤

我正在尝试使用批处理脚本启动大量作业步骤。不同的步骤可以是完全不同的程序,并且每个都需要一个 CPU。首先,我尝试使用 to 的--multi-prog参数来执行此操作srun。不幸的是,当以这种方式使用分配给我的工作的所有 CPU 时,性能会大幅下降。运行时间几乎增加到它的序列化值。通过订阅,我可以稍微改善这一点。我在网上找不到任何关于这个问题的信息,所以我认为这是我正在使用的集群的配置问题。

所以我尝试了不同的路线。我实现了以下脚本(通过启动sbatch my_script.slurm):

我知道,--exclusive在我的情况下,这个论点并不是真正需要的。调用的 shell 脚本包含不同的二进制文件及其参数。我脚本的其余部分依赖于所有进程都已完成的事实,因此wait. 我更改了调用线路以使其成为最小的工作示例。

起初,这似乎是解决方案。不幸的是,当增加我的作业分配中使用的节点数量时(例如,通过增加到--ntasks大于集群中每个节点的 CPU 数量的数量),脚本不再按预期工作,返回

并继续仅使用一个节点(即在我的情况下为 48 个 CPU,它们像以前一样快地完成作业步骤,其他节点上的所有进程随后都被杀死)。

这似乎是预期的行为,但我无法真正理解。为什么给定分配中的每个作业步骤都需要包含至少等于分配中包含的节点数的任务。我通常根本不关心分配中使用的节点数量。

如何实现我的批处理脚本,以便它可以可靠地在多个节点上使用?

0 投票
2 回答
578 浏览

slurm - 使用 SLURM 进行时间测量

我创建了许多程序,我想从中测量完成所需的时间。因此我想在一个节点上运行一项任务。我们有 10 个节点,每个节点有 2 个套接字。无论我将什么选项传递给 sbatch 和 srun,SLURM 似乎都会为每个套接字安排 1 个任务,而不是每个节点安排 1 个任务。我应该使用哪些选项?

我开始我的批处理脚本sbatch run-experiments

run-experiments包含:

编辑:似乎问题只发生在一个分区上,而不发生在另一个分区上。是否有可能导致这种情况的配置设置?