【问题标题】:The results of MPI processes in the script脚本中 MPI 处理的结果
【发布时间】:2016-03-09 21:17:10
【问题描述】:

我想编写一个使用 gromacs 程序的 MPI 脚本,并且我希望更改每个任务的输入数据(每个任务的输出将是前一个任务的结果)。我把一段脚本复制结果*.dat 放到了copyfile.sh

    cat <<EOF > copyfile.sh
#!/bin/sh
cp -p result*.dat $SLURM_SUBMIT_DIR
EOF

chmod u+x copyfile.sh
srun -n $SLURM_NNODES -N $SLURM_NNODES cp copyfile.sh $SNIC_TMP

.....
srun -n $SLURM_NNODES -N $SLURM_NNODES copyfile.sh

由于我是新手,收到了很多错误消息,所以我想先确保任务正常运行。

【问题讨论】:

  • 您发布的代码似乎与名为 SLURM 的队列系统有关,而不是与 MPI 本身有关。话虽如此,我并没有完全理解这个问题。您是否可能会问是否可以将不同的 MPI 执行链接到单个 SLURM 作业中,并将一次执行的输出传递给下一次执行?
  • 首先我需要知道那个代码的含义。该脚本是消息传递 (MPI) 示例脚本的一部分。我可以找到过程的输入和输出。现在我需要编写正确的代码并获得正确的输出,而无需关心并行性。

标签: ssh mpi


【解决方案1】:

您发布的代码似乎与 SLURM 作业更相关,根本没有 MPI 代码。

话虽如此,您发布的脚本似乎

cat

#!/bin/sh

cp -p 结果*.dat $SLURM_SUBMIT_DIR

EOF

  1. 创建一个 copy_file.sh,它将结果*.dat 文件从本地磁盘复制到 $SLURM_SUBMIT_DIR 目录。

chmod u+x 复制文件.sh

  1. 授予 copyfile.sh 执行权限,以便您可以调用此 bash 脚本。

srun -n $SLURM_NNODES -N $SLURM_NNODES cp copyfile.sh $SNIC_TMP

  1. 在 SLURM_NNODES 环境变量指向的节点数量上生成一个 cp 命令,以便将 copyfile.sh 复制到 $SNIC_TMP 目录中

.....

  1. 任何其他未指定的命令。

srun -n $SLURM_NNODES -N $SLURM_NNODES copyfile.sh

  1. 在 SLURM_NNODES 环境变量指向的节点数上生成 copyfile.sh 的执行

所以在执行完所有这些步骤后,您应该得到的是将结果*.dat 文件复制到分配给 SLURM 作业的每个计算节点上的 $SLURM_SUBMIT_DIR 目录中。

【讨论】:

  • 谢谢!我正在尝试为gromacs中的并行性编写一个脚本。我试图理解那段代码。如果需要,我很快会提出一个新问题,但我需要一些时间来提出一个相关问题,因为我是此类员工的新手。
猜你喜欢
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2014-10-21
  • 1970-01-01
  • 2019-08-14
  • 1970-01-01
  • 2011-07-08
  • 1970-01-01
相关资源
最近更新 更多