如何解决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 举报,一经查实,本站将立刻删除。