PBS 阵列作业并行化

问题描述

我正在尝试在需要运行 python 代码的高计算集群上提交作业,比如说 10000 次。我使用了 gnu parallel,但后来 IT 团队给我发了一封邮件,说我的工作是在他们的监控系统中创建了太多的 ssh 登录日志。他们让我改用工作数组。我的代码运行大约需要 12 秒。我相信我需要在我的 PBS 脚本中使用 #PBS -J 语句。然后,我不确定它是否会并行运行。我需要在 10 个节点上执行我的代码,每个节点 16 个内核,即并行运行的 160 个代码实例。我如何并行化它,即利用我拥有的所有资源在给定时间运行我的代码的多个实例? 下面是与 gnu 并行的初始 pbs 脚本:

#!/bin/bash
#PBS -P My_project
#PBS -N my_job
#PBS -l select=10:ncpus=16:mem=4GB
#PBS -l walltime=01:30:00

module load anaconda
module load parallel

cd $PBS_O_WORKDIR

JOBSPERNODE=16

parallel --joblog jobs.log --wd $PBS_O_WORKDIR -j $JOBSPERNODE --sshloginfile $PBS_NODEFILE --env PATH "python $PBS_O_WORKDIR/xyz.py" :::: inputs.txt

inputs.txt 是每行整数值 0-9999 的文件,作为参数提供给我的 python 代码。代码高度独立,一个实例的输出不影响另一个。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...