加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

并行计算-OpenMPI编译

(2022-03-25 14:19:03)
标签:

并行计算

openmpi

分类: 其他

https://baolu168-1256446078.cos.ap-guangzhou.myqcloud.com/baolu/Admin/adminstore/e5f56f72adc449469277bf1ffe9becc3.jpg

1.1 OpenMPI简介

OpenMPI是一个免费的、开源的MPI实现,兼容MPI-1和MPI-2标准。OpenMPI由开源社区开发维护,支持大多数类型的HPC平台,并具有很高的性能。

OpenMPI目前最新版本为openmpi-1.6+,官方网站:open-mpi.org/,可从官网免费下载Openmpi源码安装包。

1.2 安装OpenMPI

以OpenMPI 1.6.3为例:

$ tar zxvf openmpi-1.6.3.tar.gz

$ cd openmpi-1.6.3

$ ./configure --prefix=/public/software/mpi/openmpi-16-intel --enable-mpirun-prefix-by-default --without-psm CC=icc CXX=icpc FC=ifort F77=ifort

$ make -j 8 && make install

设置环境变量脚本:

vim /public/software/profile.d/openmpi-intel-env.sh

#!/bin/bash

export MPI_HOME=/public/software/mpi/openmpi-16-intel

export PATH=${MPI_HOME}/bin:${PATH}

export LD_LIBRARY_PATH=${MPI_HOME}/lib:${LD_LIBRARY_PATH}

export MANPATH=${MPI_HOME}/share/man:${MANPATH}

þ Tips:

1. OpenMPI安装会自动检测编译节点本地可用的通信网络设备,如需支持InfiniBand网络,请确保编译MPI前该节点已安装OFED驱动。

2. 执行OpenMPI安装目录$MPI_HOME/bin下的ompi_info命令,可查询当前OpenMPI配置信息。

1.3 编译MPI程序

OpenMPI提供了C/C++,Fortran等语言的MPI编译器,如下表所示:

语言类型MPI编译器CmpiccC++mpicxxFortran77mpif77Fortran90mpif90

MPI编译器是对底层编译器的一层包装,通过-show参数可以查看实际使用的编译器。比如:

$ mpicc -show

icc -I/public/software/mpi/openmpi-16-intel/include -pthread -L/public/software/mpi/openmpi-16-intel/lib -lmpi -ldl -lm -lnuma -Wl,--export-dynamic -lrt -lnsl -lutil

编译程序示例:

$ source /public/software/profile.d/openmpi-intel-env.sh

$ mpicc -o hello hello.c

$ mpif90 -o hello hello.f90

1.4 运行MPI程序

OpenMPI使用自带的OpenRTE进程管理器,启动命令为mpirun/mpiexec/orterun,基本格式如下:

$ mpirun -np N -hostfile  

Ÿ -np N:运行N个进程

Ÿ -hostfile:指定计算节点,文件格式如下:

node1 slots=8

node2 slots=8

slots=8代表可在该节点上执行8个进程,也可将node1和node2分别写8行。

0

阅读 收藏 喜欢 打印举报/Report
后一篇:下周得利斯
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有