问题描述
我正在尝试在需要运行 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 (将#修改为@)