如何确认MAKER是否成功以MPI(MPIch)并行模式运行?
验证MAKER是否以MPI模式运行的方法
你当前提交作业使用的Slurm脚本如下:
#!/bin/bash #SBATCH -J MPI-test #SBATCH -p xhacnormala #SBATCH -N 4 #SBATCH -n 64 #SBATCH --mem 0 #SBATCH -o MPI.out #SBATCH -e MPI.err source /public1/home/casdao/kdylvfenghua/kdy_sy2021/maker_env module load mpi/mpich/3.3.2/gcc-485 mpiexec -n 64 maker
可通过以下几种方式验证MPI模式是否正常生效:
- 二进制版本校验:在加载完maker_env和MPI模块的环境下,执行
maker -version,查看输出信息中的MPI支持字段,若显示MPI support: yes,说明你安装的MAKER本身已编译开启MPI能力;若显示no,说明安装的仍是单进程版本,即便用mpiexec调用也无法启用MPI并行。 - 进程数量校验:作业启动后,通过
squeue查看作业分配到的计算节点列表,分别登录对应节点执行ps -ef | grep maker | grep -v grep | wc -l统计进程数,所有节点的maker进程数总和与你设置的-n 64参数基本一致时,说明MPI进程已正常拉起;非MPI模式下全局只会存在1个maker主进程。 - 运行日志校验:查看作业标准输出文件
MPI.out,MPI模式启动初期MAKER会打印明确的MPI初始化日志,包含识别到的总进程rank数、MPI通信域初始化完成这类提示;非MPI模式的日志中不会出现任何MPI相关字段。 - 运行效率校验:300Mb级别的基因组用64核MPI并行运行,整体注释周期会从单进程的数十天缩短到数天级别,你可以查看MAKER输出目录下的进度日志,对比单进程运行时单位时间内完成注释的序列数量,若速度有量级提升可辅助确认MPI生效。
注意:不要在srun/sbatch分配的作业环境外手动执行mpiexec拉起maker,否则会出现跨节点通信失败、进程无法正常调度的问题。
内容的提问来源于stack exchange,提问作者Lanrena
相关产品推荐
相关产品推荐

