问题标签 [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.
sbatch - 按顺序执行批处理作业
我有一个看起来像这样的批处理作业
sbatch --wrap "perl test.pl file1 file2"
sbatch --wrap "perl test.pl file3 file4"
sbatch --wrap "perl test.pl file5 file6"
sbatch --wrap "perl test.pl file7 file8"
列表一直持续到
sbatch --wrap "perl test.pl file49 file50"
如何按顺序运行单个作业?谢谢,
slurm - 如何使用 SLURM 提交并行作业步骤?
我有以下名为 SLURM 的作业脚本gzip2zipslurm.sh
:
我将它提交给 SLURM 由sbatch gzip2zipslurm.sh
. 当我这样做时,SLURM 日志文件的输出是
tar2zip
程序读取给定文件并将其tar.gz
重新打包为ZIP
文件。
问题:只有一个 CPU(空闲节点上可用的 16 个 CPU)在做任何工作。我top
可以看到所有 5 个srun
命令都已启动(我猜 4 个用于我的任务,1 个隐含用于 sbatch 作业)但只有一个 Java 进程。我也可以在正在处理的文件上看到它,只写了一个。
我如何管理所有 4 个任务实际上是并行执行的?
感谢您的任何提示!
bash - 使用带有 SLURM sbatch --wrap 的 HEREDOC
我在使用带有 SLURMsbatch
提交的(Bash)HEREDOC 时遇到了困难,通过--wrap
.
我希望以下工作:
在我当前的集群上,sbatch
返回以下错误,拒绝提交此作业:
可能有人知道我怎样才能让它工作吗?
bash - 循环提交批量作业
我有一个 txt 文件(比如 jobs.txt),它有几行,例如:
“sbatch -w node00x script.sh 1”
“sbatch -w node00z script.sh 10”
。
.
ETC
我想知道是否可以创建一个可执行的 bash 文件,如下所示
#!/bin/bash
同时读取 -r 行;
逐行提交作业;
完成<jobs.txt;
我可以执行,它将在各个节点中运行作业。我在这方面的知识非常有限。将不胜感激任何帮助。
python - 作为我提交给 Slurm 的一部分,如何激活特定的 Python 环境?
我想在集群上运行一个脚本(SBATCH 文件)。
如何激活我的虚拟环境(path/to/env_name/bin/activate)。
我只需要将以下代码添加到 my_script.sh 文件吗?
模块加载 python/2.7.14 源“/pathto/Python_directory/ENV2.7_new/bin/activate”
bash - 并行执行多个作业时指定 SLURM 资源
根据这里的答案,--ntasks 或 -n 任务在 SLURM 中有什么作用?可以通过ntasks
参数 sbatch 后跟. 并行运行多个作业srun
。问一个后续问题——当像这样并行运行作业时,如何指定所需的内存量?
如果说 3 个作业并行运行,每个作业需要 8G 内存,是否会指定 24G 内存sbatch
(即所有作业的内存总和),或者不提供内存参数,sbatch
而是为每个作业指定 8G 内存srun
?
bash - 如何通过“sbatch”slurm 命令从远程服务器自动执行“get”命令?
我从远程只读磁带存档中获取了一堆 TB 的数据文件到我工作的 Linux 集群上的工作目录中。不幸的是,我不允许在我正在使用的计算机上安装 expect。我想编写一个命令,通过它我可以提交一个通过 sftp 获取我的文件的 slurm 作业。我需要以下序列
sftp user@remote.server
输入密码:“my_password”
cd /source/folder/where/files/are
设置目标文件夹(如有必要)
获取 data_files_*.nc
重要的是,获取这么多数据需要几天的时间,我想使用 slurm 作业选项来节省时间并不断获取文件,并避免一直通过我的笔记本电脑保持连接到远程服务器。任何想法和建议表示赞赏:)
bash - SLURM下的循环中缺少迭代
我有一个简单的代码,它遍历一个文件并做一些简单的计算。下面的代码是一个最大的代码的摘录:不要在此代码中要求任何实用程序,它只是问题的一个最小示例。
这段代码的合理性是:在一个名为的文件中,internal.txt
我有一个数据列表,我需要将其分成两组,名为MB和BL。我grep
用来搜索每个组,我awk
用来组成文件的基本名称,并将它while
作为id
. 在那个循环中,我srun
用来启动一个命令(ls
在这个例子中),结果,我只输出$id
.
该internal.txt
文件包含:
所以预期的输出是两个文件,test_BL.dat
:
和test_MB.dat
:
但现实是我得到了这两个文件......只写了第一行,test_BL.dat
:
和test_MB.dat
:
我已经知道这srun
与问题有关,因为如果我摆脱srun
并只留下ls
,它会按预期工作:
最后一个代码运行良好,但现在我错过了srun
. 对这里发生的事情有任何想法吗?
注意:列出的文件存在。
mpi - 基本的 Slurm 问题
我一直在使用集群来做一些繁重的计算。有几件事我不明白。例如,到目前为止,我在所有工作中都使用了这个配置
但是,我不知道节点是否是计算机(-N 1)以及什么是任务(-n 15)。
我的代码是 MPI,但理想情况下我想做一个混合 MPI 和 OpenMP。我应该如何配置我的 SBATCH 来做到这一点?
谢谢你。
slurm - 如何向 sbatch 中的包装命令发送超时信号?
我有一个程序,当它收到 a 时SIGUSR1
,会写入一些输出并退出。我试图sbatch
在超时之前通知这个程序。
我使用以下方法将程序排入队列:
但my_program
从未收到信号。我尝试在程序运行时发送信号,使用: scancel -s USR1 <JOBID>
,但没有任何成功。我也试过scancel --full
了,但它会杀死包装器并且my_program
没有收到通知。
一种选择是编写一个包装 my_program 并捕获信号的 bash 文件,将其转发到my_program
(类似于此示例),但我不需要这个繁琐的 bash 文件来处理其他任何事情。此外,sbatch --signal
文档非常清楚地表明,当您想要通知封装的 bash 文件时,您需要指定signal=B:
,所以我认为 bash 包装器并不是真正需要的。
那么,有没有办法将 SIGUSR1 信号发送到使用 排队的程序sbatch --wrap
?