Linux系统MPI library之MPICH的安装及使用

本文详细介绍了在Linux系统中安装和使用MPI库,特别是MPICH,提供了apt直接安装和从源代码编译两种方法,以及配置环境变量和测试过程,为HPC并行计算做好准备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

本文介绍Linux系统MPI library MPICH的安装,为程序本地及HPC并行计算做准备。

一、MPI是什么?

MPI(Message Passing Interface)是一个跨语言的通讯协议,用于编写并行计算机。支持点对点和广播。MPI的目标是高性能,大规模性,和可移植性。使用MPI可以充分利用多台计算机的计算资源,提高计算效率和性能,是高性能计算领域的重要技术之一。MPI在今天仍为高性能计算的主要模型。

MPI的基本原理是通过消息传递来实现进程间的通信。每个进程都有一个唯一的标识符,称为进程号(rank),可以通过MPI_COMM_WORLD中的MPI_Comm_rank函数获取。进程可以通过MPI_Send和MPI_Recv函数来发送和接收消息,这些消息可以是任意类型的数据,包括整数、浮点数、字符、数组等等。

MPI的并行计算模型通常采用Master-Slave模式,其中一个进程作为Master进程,负责分配任务和收集结果,其他进程作为Slave进程,负责执行具体的计算任务。Master进程可以通过MPI_Bcast函数将任务分发给所有的Slave进程,Slave进程可以通过MPI_Recv函数接收任务,并通过MPI_Send函数将计算结果发送给Master进程。

MPI有多种免费的实现方式,包括MPICH和OpenMPI等。
这里介绍MPICH在Linux Ubuntu上的安装及使用。
在这里插入图片描述

二、两种安装MPICH的方法

1. 使用apt安装及卸载

使用apt安装MPICH,会自动查找并安装相应的依赖包。

# Debian/Ubuntu系统上安装:
sudo apt install mpich
# 卸载MPICH:
sudo apt-get --purge remove mpich

如果顺利安装,可通过 which mpicc查看安装位置。
如果提示没有安装源,可使用下载源代码编译安装,如下。

2. source code编译安装

2.1 下载代码并安装

下载地址:source code
从官网下载stable release的4.2.0版本源代码,下载地址:https://www.mpich.org/static/downloads/4.2.0/mpich-4.2.0.tar.gz

wget https://www.mpich.org/static/downloads/4.2.0/mpich-4.2.0.tar.gz
tar -zxvf mpich-4.2.0.tar.gz
cd mpich-4.2.0
./configure --prefix=/path/to/mpich-4.2.0
make
make install

2.2 设置环境变量并测试

# 在.bashrc中添加
export PATH=/path/to/mpich-4.2.0/bin:$PATH
source ~/.bashrc
# 查看安装
which mpicc
which mpiexec

测试:

cd /path/to/mpich-4.2.0/examples
mpiexec -n 3 ./cpi

2.3 使用

可以使用mpicc、mpicxx、mpifort编译C、C++、Fortran编写的程序,例如## 对C++程序c++test编译:

mpicxx -o c++test c++test.cpp

在本地机器上运行a.out,使用线程数/核数为:

mpiexec -n <number> ./a.out

在多个节点上运行a.out:

mpiexec -f machinefile -n <number> ./a.out

其中,machinefile格式

host1
host2:2
host3:4 # Random comments
host4:1

‘host1’, ‘host2’, ‘host3’和 ‘host4’ 是节点的 hostnames;
‘:2’, ‘:4’, ‘:1’ 设置每个节点上运行的核数,如果没有设置,默认为’:1’

总结

本文介绍Linux系统MPICH的安装,为HPC并行计算做准备。

参考资料

https://blog.csdn.net/weixin_56273009/article/details/130912324

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Blockbuster_drug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值