问题标签 [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.
cluster-computing - 在 Slurm 集群上运行批处理作业
所以我现在花了几个小时试图弄清楚这一点,并希望得到任何帮助。
我要做的是使用 slurm --array0-654 运行批处理作业
我希望每个作业步骤运行 8 个线程。
我可以访问集群上的 11 个节点,每个节点都有 32 个线程,但我似乎无法正确配置 SBATCH。它似乎要么每个节点运行一个作业,要么在所有节点上运行 200 多个作业。
我尝试了许多不同的配置,想知道是否有人有一些建议。
slurm - 如何让 SBATCH 通过电子邮件发送标准输出?
我想让 slurm 系统myprogram
在计算完成后通过电子邮件发送输出。所以我写了SBATCH
如下
邮件系统报告
我如何构建邮件命令以让主题行$SLURM_JOB_NAME
和文件中的邮件内容STDOUT
,例如JOB${SLURM_JOBID}.out
在我的情况下?
slurm - 使用 slurm JobID 作为输入?
是否可以使用 JobID 作为您提交的脚本的输入?
我知道您可以使用 %j 使用 JobID 命名日志文件,但是是否可以执行类似的操作,例如
make-dir.sh 在哪里
就目前而言,它将打印 %j,但我希望它打印 JobID。
谢谢。
slurm - 在 SLURM 中与 mpi 任务一起运行“监控”任务
我有一个 mpi 工作,我使用 sbatch 脚本在 slurm 中运行,它看起来像:
我想监视“myprog”进程的内存/cpu 使用情况和其他一些行为。我已经编写了一个简单的脚本(称为“监视器”),它可以做到这一点,但我很难理解如何使用 sbatch 在每个分配的节点上运行它的一个副本,同时作为“myprog”。
我想我需要将上面的内容修改为:
但我很困惑a)这意味着“监视器”是否会在后台运行,b)我如何控制“监视器”的运行位置。
mpi - /usr/bin/modulecmd: No such file or directory
I'm using sbatch to submit my job.
Command line mpirun --version
gives:
Intel(R) MPI library for Linux* OS, Version 5.0 Build 20140507
Copyright (C) 2003-2014, Intel Corporation. All rights reserved.
So I think I'm working with Intel mpi.
Following the instructions: submitting an MPI job using Intel MPI, I write my script like this:
mycc is the executable I get after compiling source files with mpicc.
Then I use command sbatch -p partitionname -J myjob script.sh
, my job failed with exitcode 127:0. The slurm-jobid.out file says that(leave aside the set locale warning):
/usr/share/Modules/init/sh: line 2: /usr/bin/modulecmd: No such file or directory /tmp/slurmd/job252624/slurm_scirpt: line 10: mpirun: command not found
But I have checked and /usr/bin/modulecmd file does exist.
Any suggestion is aprreciated.
Edit
I also asked the question here.
I have removed the source statement and module load one.
I tried to load the module on the log in node before submitting my job. But there is something wrong. It says that:
moduleCmd_Lad.c(204): Error: 105: Unable to locate a modulefile for 'intel'
I use module avail
command to see what modules are available:
---------/usr/share/Modules/modulefiles-------------------
dot module-info mpich2-x86_64 use.won
module-cvs modules null
---------/etc/modulefiles---------------------------------
compat-openmpi-psm-x86_64 compat-openmpi-x86_64
Forgive me for the messy formatting.
Solved
The problem is finally solved. My final script.sh is like this:
Then use command sbatch -p partitionname -J myjob script.sh
to submit the job.
python - 如何通过配置文件在 SLURM 中使用 sbatch
我想用 sbatch 运行 python 脚本,但是,用 sbatch 运行 python 脚本的唯一方法似乎是有一个 bash 脚本,然后运行 python 脚本。就像拥有batch_main.sh
:
然后运行:
这个问题是我希望有一个单独的参数配置文件(因为它通常不是单个数字或参数)并且还能够使用数组选项。此外,我通常同时运行多个不同的 sbatch 作业(具有不同的配置),因此如果更改配置文件不会使不同的 sbatch 运行相互妨碍(因为如果作业排队然后配置文件稍后更改,它将运行最新的配置文件,而不是我运行 sbatch 时的配置副本)。为了解决这个问题,我发现当我运行一个 sbatch 脚本时,SLURM 实际上会将提交脚本复制到它的内部数据库中(我在询问后发现了它:在运行期间更改发送到 sbatch 的 bash 脚本是个坏主意?)。因此,我实际上决定将配置硬编码到 bash 提交脚本中(使提交脚本本质上是配置文件)。这样我只需编辑提交脚本,然后运行文件。但是,我想停止这种情况,因为这让我用 bash 编写,我想不惜一切代价避免。
理想情况下,我想运行一个直接运行 python 的 sbatch。
由于这可能是不可能的,我想知道还有哪些其他选项可以解决这个问题。例如,是否可以让 slurm 将不同的文件(如 python 配置文件)复制到其内部数据库,以便在将作业排队时运行我确切想要运行的作业?(请注意,运行 sbatch 作业然后更改配置文件不是这样做的方法,因为这可能会在更改配置文件时引起问题,slrum 将读取配置的最新副本而不是配置的副本作业运行时)。或者我还有什么其他选择?我真的坚持编写 bash 还是我可以做其他事情来处理 python 中的配置而不是其他一些奇怪的 hack?
总的来说,我还想知道人们在现实世界中为此做了什么,或者对此有什么好的做法/标准。
python - 为什么当我将 sbatch 与 SLURM 一起使用时,即使它说它当前的文件系统,python 也不会导入我的库?
我试图使用一个简单的脚本,在使用 SLURM 和 sbatch 时导入库命名空间,但是,我无法做到这一点,因为它找不到库(即使 pip list 显示它已安装在我的环境中)。
我正在运行的脚本非常简单:
它只是显示了库的安装位置。当我在 SLURM(集群)的头节点上运行它时,python ns_test.py
它会正确打印:
当我srun python ns_test.py
再次打印上述内容时。但是,当我使用 sbatch 时,它会打印(到 slurm 日志)以下神秘的代码行:
这真的很神秘,因为它确实说图书馆在那里!但是,当我将 import 语句与 sbatch 一起使用时,它找不到它。为什么会这样?我该如何解决这个问题?
bash - Capture a sbatch file output
I want to be able to run a command inside the bash file and save it in somefile.txt
I am running my script the following way:
- sbatch file.sh and inside this file I have a terminal command
mpi - SLURM:如何在同一计算节点或不同节点上并行运行不同的可执行文件?
目标:
- 学习如何通过 sbatch 作业提交来运行或共同调度或执行可执行文件/应用程序
- 使用 srun 或 mpirun
研究:
代码片段:
手册页:
tensorflow - 如何使用正确配置的参数服务器在 SLURM 集群上运行 Tensorflow?
我很幸运能够访问我大学的 SLURM 驱动的 GPU 集群。我一直试图让 Tensorflow 在集群节点中运行,但到目前为止我还没有找到任何文档。(我在大学里交谈过的每个人都曾使用 CPU 节点或使用单个 GPU 节点来运行它。
我在这里从上一个问题中找到了一个很好的文档。不幸的是,它相当不完整。我发现的所有其他分布式示例(例如这个示例)都依赖于显式指定参数服务器。
当我尝试使用 SO question 中的代码运行它时,我似乎可以正常工作,直到它无法连接到不存在的参数服务器或在调用 server.join 并且没有向 sbatch outfile 提供打印输出(其中我明白应该发生)。
简而言之,我的问题是如何在 SLURM 集群上启动 Tensorflow?从批量阶段开始。这是我第一次在 AWS 上处理除 SPARK 之外的分布式计算框架,我很想了解更多关于如何正确配置 Tensorflow 的信息。如何指定 tf_hostlist 例如服务器中的哪一项作为参数服务器?或者,我可以像在其他示例中看到的那样,使用 sbatch 向每个工作人员发送稍微不同的命令吗?