slurm

R中的多个数据帧并行功能

在 R 中,我在列表上调用 parLapply(),并使用列表中的元素过滤函数内的 2 个数据帧,例如 myfunction <- function(id) { r1 <- r %>% filter(ID == id) b1<- b %>% filter(ID == id) doSomething(r1,b1) } result <- parLap... »

Slurm:如何重新启动失败的工作人员

如果在 slurm 集群上运行阵列作业,如何重新启动失败的工作作业? 在 Sun Grid Engine 队列中,可以将 #$ -r y 添加到作业文件中,以指示作业在失败时应重新启动 - 该标志的 Slurm 等效项是什么?... »

更改由 sbatch job.sh 生成的 .file 的位置

当我发出命令 sbatch job.sh 并且一切运行顺利时,在我的 job.sh 的位置生成了一个文件 test.Rout,我想知道如何更改位置这个 .Rout 文件。 job.sh #!/bin/bash #SBATCH --job-name="test #SBATCH --nodes=1 # number of nodes #SBATCH --ntasks-... »

SLURM 批处理脚本不执行 Python 脚本,不返回错误消息并且不停止运行

在 SLURM 集群中,我提交了一个调用 python 脚本的 shell 脚本(两个脚本都可以在下面找到。当 shell 脚本执行时,它会一直到调用 python 脚本的位置,但什么也没发生:没有输出,没有错误消息,SLURM 作业继续运行。 我假设 python 脚本的全部内容不相关(但我还是将它包含在内以完成)。出于调试目的,我在一开始就插入了print("script started") ... »

在具有 SLURM 的 HPC 系统上使用 GNU Parallel 运行具有两个输入文件的 python 文件的多个实例

我尝试并行运行一个 python 文件 240 次(因为每个 在 HPC 系统上运行单个文件大约需要 9 分钟)。理想情况下,每个 python 文件都应该在一个内核上运行。每个节点有 24 个核心。 python 文件有两个输入文件,每组一个: CN_ONLY0.pdb 最高 CN_ONLY239.pdb I_ONLY0.pdb 到 I_ONLY239.pdb。 当我运行下面发布的代... »

如何使用并行化 Python 代码在集群上使用多个节点/核心

我有一段 Python 代码,我使用 joblib 和 multiprocessing 使部分代码并行运行。在我的桌面上运行它没有任何问题,我可以使用任务管理器查看它使用所有四个内核并并行运行代码。 我最近了解到我可以访问具有 100+ 20 个核心节点的 HPC 集群。集群使用SLURM 作为工作负载管理器。 第一个问题是:是否可以在集群上运行并行化的 Python 代码? 如果可以的话... »

Cgroup 和 Slurm

我知道如何使用 cgroups(分配内存、cpu 使用...)和 slurm(提交、暂停/停止作业)。我想知道 cgroups 如何与 slurm 一起工作。当我向 slurm 提交作业时,我可以在哪里修复内存或 CPU 使用率?我从 Slurm Schedmd(https://slurm.schedmd.com/cgroups.html) 阅读了文档,但没有给出很好的解释。也许这是我的一个误解。... »

SLURM:并行运行作业而不是数组?

我有一个大文件要使用“水母查询”进行分析,它不是多线程的。我已将大文件拆分为 29 个可管理的片段,以在 SLURM 上作为数组运行。但是,它们在工作负载队列中已经存在很长时间了,而如果我可以请求整个节点(32 cpu),它们将进入一个单独的队列,具有更快的可用性。有没有办法告诉 SLURM 在节点中的所有 cpu 上并行运行这些片段上的命令,而不是作为串行数组? ... »

在 SLURM 批处理脚本中将参数传递给 python 脚本

我编写了一个 python 脚本,它需要两个参数,当我在命令行上运行它时运行良好: pythonscript.py arg1 arg2 我需要在 SLURM 批处理脚本中运行它,但无论何时我都会收到“非法指令”错误和核心转储。这是我正在使用的脚本示例: #!/bin/bash # Set your minimum acceptable walltime, format: day-hours:... »

Dask 工作人员卡在 SLURM 队列中,直到 master 到达墙上时间才开始

最近,我一直在尝试在使用 SLURM 调度程序的 HPC 集群上使用 Dask 进行一些机器学习工作。重要的是,在这个集群上,SLURM 被配置为每个作业的硬墙时间限制为 24 小时。 最初,我使用一个工作人员运行我的代码,但我的工作内存不足。我试图增加工人的数量(因此,请求的节点的数量),但工人卡在 SLURM 队列中(原因被标记为“优先级”)。与此同时,master 会跑,最终撞墙,让工人在他... »

如何在 shell 脚本中运行 sacct 命令

我正在尝试编写一个 cron,它将在给定日期运行 slurm 的 sacct 命令并将其保存在文件中。由于我对 shell 脚本没有太多经验,我不知道该怎么做。 我做了以下事情: 我使用以下代码 (sacct_data.sh) 创建了一个 shell 脚本: #!/bin/bash startdate=`date +"%Y-%m-%dT00:00:00"` enddate=`date -d "ye... »

如何将shell命令中的变量分配给python脚本

我正在尝试使用 slurm 中的数组运行批处理。我只知道从数组(文本文件)中提取变量的 shell 命令,但未能将其分配为 Python 变量。 我必须为 Python slurm 脚本分配一个变量。我使用 shell 命令从数组中提取值。但是在将其分配给变量时遇到错误。我使用了子进程、os.system 和 os.popen。 或者有什么方法可以从文本文件中提取值用作 Python 变量? ... »

如何使用 SLURM 提交并行作业步骤?

我有以下名为 gzip2zipslurm.sh 的 SLURM 作业脚本: #!/bin/bash #SBATCH --mem 70G #SBATCH --ntasks 4 echo "Task 1" srun -n1 java -Xmx10g -jar tar2zip-1.0.0-jar-with-dependencies.jar articles.A-B.xml.tar.gz & ... »

当集群(slurm)取消作业时,Snakemake 挂起

也许对许多人来说答案是显而易见的,但我很惊讶我找不到关于这个主题的问题,这对我来说是一个主要问题。 非常感谢您的提示! 在 slurm 管理的集群上提交作业时,如果队列管理器取消作业(例如资源或时间不足),snakemake 似乎没有收到任何信号,并永远挂起。另一方面,当作业失败时,snakemake 也会失败,正如预期的那样。这种行为是正常的/想要的吗?当工作被取消时,我怎么能让蛇制作失败?我... »

从python评估“带有shell变量的Shell命令行”或将python字符串评估为shell命令行

上下文 我正在开发一个模拟集群。 为了尽可能灵活(使用不同的仿真软件),我们创建了一个 python 文件来解析定义环境变量的配置文件,以及启动仿真的命令行。该命令通过 SLURM sbatch 命令(shell $COMMAND)启动 问题 从 python 中,所有环境变量都注册到读取配置文件 我对使用其他环境变量(显示为 shell 变量)的变量 COMMAND 有疑问 例如 CO... »

slurm: DependencyNeverSatisfied 错误即使在崩溃的作业重新排队后

我的目标是使用 slurm 依赖项构建管道并处理 slurm 作业崩溃的情况。 基于answer和guide第29节,建议使用scontrol requeue $jobID,这将重新排队已经取消的作业。 如果可以从提交脚本中检测到作业崩溃,以及 崩溃是随机的,您可以简单地使用 scontrol requeue $SLURM_JOB_ID 重新排队作业,以便它再次运行。 在我重新... »

我使用 echo $SLURM_NTASKS 没有输出

我创建了这个包含以下代码的批处理文件 myfirst_slurm_job.sh: #!/bin/bash #SBATCH --output="slurm1.txt" cd $HOME/.. echo $PWD echo $SLURMD_NODENAME echo $SLURM_NTASKS 然后我运行这个命令行: sbatch myfirst_slurm_job.sh 注意:这是我的第一篇文章... »