searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

MPI快速上手和并行计算效能对比

2024-09-18 09:21:36
27
0

什么是MPI

MPI,全称Message Passing Interface,中文名为“消息传递接口”,是一种用于编写高性能并行计算程序的跨平台通信协议。它定义了多进程并行计算中不同进程之间通信的标准,包括点对点通信、广播、归约等操作,支持大规模并行计算的高性能、可移植性以及灵活性。在高性能计算领域,MPI充当了统一不同进程间数据交换标准的角色,类似于人类沟通中的“普通话”,确保了不同计算机或处理器之间的高效协作。

快速安装OpenMPI

环境需求

资源规格:32核64GB 2台 (节点名为node1和node2)

部署环境:Ubuntu20.04

计算应用:通过Openmpi编译的VASP

安装步骤

node1和node2节点同时执行:

1.安装OpenMPI依赖库

apt-get update
apt-get install build-essential gfortran libopenblas-dev libopenmpi-dev libscalapack-openmpi-dev libfftw3-dev libhdf5-openmpi-dev

2.安装SSH服务

 apt-get install ssh

3.设置SSH免密登录,生成SSH公钥和密钥并复制到另一个节点上

ssh-keygen -t rsa
ssh-copy-id -i node1或2

4.取消SSH登录公钥检查

 echo "StrictHostKeyChecking no \nUserKnownHostsFile /dev/null" >> /etc/ssh/ssh_config

5.启动SSH服务

service ssh start

6.测试免密是否成功

ssh root@node2

 

通过Mpirun运行并行计算作业

1.设置环境变量

export OMP_NUM_THREADS=1
export OMPI_ALLOW_RUN_AS_ROOT=1
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1

2.执行mpirun

mpirun -np 48 --map-by ppr:24:node --host node1,node2 /vasp/bin/vasp_gam

-np 代表任务总进程数

--map-by ppr:24:node 代表每个节点24个进程

--host 代表作业运行的节点列表

统计不同参数下的作业执行时间

从下图的对比中可以发现,作业运行时间随着核数增加减少。

而作业总核心数相同时,两节点会比单节点时间消耗略微增加,但也还在合理范围中,表明Openmpi在多机并行计算时效率还是比较可观的。

总结

在小规模集群中Openmpi的上手还是比较简单的,只需要配置SSH免密登录、节点列表、每个节点部署相同的环境,即可运行并行计算作业。在测试中也展示出了比较高的并行计算效率。

但是在大规模超算作业中,各方面的因素对作业并行计算效率都会有显著的影响,比如单机性能、存储性能、网络延迟和吞吐量等。通过使用天翼云的批量计算可以快速发布超算作业,用户无需关心底层资源和框架配置,一键发布高性能超算作业,大大减少了用户的使用成本。

0条评论
0 / 1000
天翼云批量计算
1文章数
0粉丝数
天翼云批量计算
1 文章 | 0 粉丝
天翼云批量计算
1文章数
0粉丝数
天翼云批量计算
1 文章 | 0 粉丝
原创

MPI快速上手和并行计算效能对比

2024-09-18 09:21:36
27
0

什么是MPI

MPI,全称Message Passing Interface,中文名为“消息传递接口”,是一种用于编写高性能并行计算程序的跨平台通信协议。它定义了多进程并行计算中不同进程之间通信的标准,包括点对点通信、广播、归约等操作,支持大规模并行计算的高性能、可移植性以及灵活性。在高性能计算领域,MPI充当了统一不同进程间数据交换标准的角色,类似于人类沟通中的“普通话”,确保了不同计算机或处理器之间的高效协作。

快速安装OpenMPI

环境需求

资源规格:32核64GB 2台 (节点名为node1和node2)

部署环境:Ubuntu20.04

计算应用:通过Openmpi编译的VASP

安装步骤

node1和node2节点同时执行:

1.安装OpenMPI依赖库

apt-get update
apt-get install build-essential gfortran libopenblas-dev libopenmpi-dev libscalapack-openmpi-dev libfftw3-dev libhdf5-openmpi-dev

2.安装SSH服务

 apt-get install ssh

3.设置SSH免密登录,生成SSH公钥和密钥并复制到另一个节点上

ssh-keygen -t rsa
ssh-copy-id -i node1或2

4.取消SSH登录公钥检查

 echo "StrictHostKeyChecking no \nUserKnownHostsFile /dev/null" >> /etc/ssh/ssh_config

5.启动SSH服务

service ssh start

6.测试免密是否成功

ssh root@node2

 

通过Mpirun运行并行计算作业

1.设置环境变量

export OMP_NUM_THREADS=1
export OMPI_ALLOW_RUN_AS_ROOT=1
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1

2.执行mpirun

mpirun -np 48 --map-by ppr:24:node --host node1,node2 /vasp/bin/vasp_gam

-np 代表任务总进程数

--map-by ppr:24:node 代表每个节点24个进程

--host 代表作业运行的节点列表

统计不同参数下的作业执行时间

从下图的对比中可以发现,作业运行时间随着核数增加减少。

而作业总核心数相同时,两节点会比单节点时间消耗略微增加,但也还在合理范围中,表明Openmpi在多机并行计算时效率还是比较可观的。

总结

在小规模集群中Openmpi的上手还是比较简单的,只需要配置SSH免密登录、节点列表、每个节点部署相同的环境,即可运行并行计算作业。在测试中也展示出了比较高的并行计算效率。

但是在大规模超算作业中,各方面的因素对作业并行计算效率都会有显著的影响,比如单机性能、存储性能、网络延迟和吞吐量等。通过使用天翼云的批量计算可以快速发布超算作业,用户无需关心底层资源和框架配置,一键发布高性能超算作业,大大减少了用户的使用成本。

文章来自个人专栏
批量计算-超算
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0