Linux下的MPI安装(类比linux软件的安装方式)

这篇具有很好参考价值的文章主要介绍了Linux下的MPI安装(类比linux软件的安装方式)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MPI(Message-Passing Interface),并不是一种新的语言,而是消息传递接口,它定义了一个可以被C、C++和Fortran程序调用的函数库[1]。我们可以用MPI来进行进程间的通信,以消息传递的方式来对分布式内存系统进行编程。通过安装MPICH构建MPI编程环境,从而进行并行程序的开发。MPICH是MPI(Message-Passing Interface)的一个应用实现,支持最新的MPI-2接口标准,是用于并行运算的工具。

1.安装方案一(apt自动安装)

直接运行利用apt安装,执行下面的命令,按照提示操作即可,但是我安装后使用还是有问题。

apt安装命令:

apt-get install mpich

如果需要卸载:

sudo apt-get --purge remove mpich

安装之后可以利用第三部分提供的代码进行测试。

2.安装方案二(利用源码安装)

利用源码安装。

1.确保已经安装了如下软件

gcc --version
g++ --version
cmake --version
gfortran --version

如果没有直接sudo apt-get install xxx安装即可。

如果gfortran安装有问题,可以参考下面的:

sudo apt-get install gfortran
# 如果没有源则按下面更新下,再次安装
# sudo apt-get update

如果上面的命令,无法安装gfortran,则需要,显示:

gfortran : 依赖: gfortran-7 (>= 7.3.0-12~) 但是它将不会被安装 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系,

gfortran : 依赖: gfortran-7 (>= 7.3.0-12~) 但是它将不会被安装 
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

这表示有冲突了,所以可以采取如下命令安装,aptitude会提供一套解决冲突的方案,你可以根据提示选择合适方案安装,如果aptitude没有安装的,那么可以按照下面的安装即可:

sudo apt install aptitude
sudo aptitude install gfortran

2.下载源码

命令行下载

wget https://www.mpich.org/static/downloads/3.0/mpich-3.0.tar.gz
# 如果一次下载失败,可以继续执行下面的命令,进行断点续传:
wget -c https://www.mpich.org/static/downloads/3.0/mpich-3.0.tar.gz

手动下载tar.gz

官网:https://www.mpich.org/downloads/

3.解压

sudo tar -zxvf mpich-3.0.tar.gz

4.配置安装路径

下载的压缩包包含的是源码以及编译顺序文件,在linux中需要指定编译程可执行文件的库的位置,即是安装位置(也有安装包会自动指定位置,这些信息在Makefile之类的文件应该有写),后序在环境中配置即是要使用到安装的软件的库路径。(是库路径,不一定是编译结果.o文件的路径,实际编译的文件的路径大多在解压包的build文件夹下。)

解压完后, 进入解压后的文件夹,进行配置(我的配置安装位置为 /home/mpi/mpich3(提前准备好)。如果没有root权限,可以选择用户目录/home/XXX/mpich3)(这个安装路径随自己选的),将下面命令后面的prefix改成自己想设置的路径后,运行命令即可。

#这里指定安装的路径在这个文件夹中
sudo ./configure -prefix=/home/yangsc/mpich3
Linux下的MPI安装(类比linux软件的安装方式)

如果出现以下错误

configure: error: No Fortran 77 compiler found. If you don't need to  build any Fortran progr

可能就是没有安装gfortran.安装方法看上面的方案二中的第一步。

Linux下的MPI安装(类比linux软件的安装方式)

5.编译和安装

配置完成后,执行编译和安装工作

sudo make
sudo make install
Linux下的MPI安装(类比linux软件的安装方式)

6.添加环境变量

在~/.bashrc 文件的最后添加几个环境变量,使运行时能够自动找到外部库环境;

export MPI_ROOT=/home/yangsc/mpich3
export PATH=$MPI_ROOT/bin:$PATH
export MANPATH=$MPI_ROOT/man:$MANPATH
Linux下的MPI安装(类比linux软件的安装方式)

3.测试

随便找个地方新建一个测试文件,mpi_hello.cpp,代码如下:

#include <iostream>
#include <string.h>
#include <mpi.h>
using namespace std;

const int max_string = 100;

int main ()
{
    int comm_sz=0;
    int my_rank=0;
    char greeting[max_string];
    
    MPI_Init(NULL,NULL);
    MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);
    MPI_Comm_size(MPI_COMM_WORLD,&comm_sz);

     if(my_rank!=0){
        sprintf(greeting,"Greetings from process %d of %d!",my_rank,comm_sz);
        MPI_Send(greeting,strlen(greeting),MPI_CHAR,0,0,MPI_COMM_WORLD);
    }
    else{
        cout<<"Greetings from process "<<my_rank<<" of "<<comm_sz<<"!"<<endl;
        for(int i=1;i<comm_sz;i++){
            MPI_Recv(greeting,max_string,MPI_CHAR,i,0,MPI_COMM_WORLD,MPI_STATUS_IGNORE);
            cout<<greeting<<endl;
        }
    }
    
    MPI_Finalize ();
    return 0;
}

然后重新打开terminal,进行编译

mpicxx -g -Wall -o mpi_hello.o mpi_hello.cpp

注意: 如果用root身份运行,会提示不能直接运行,他会提示你要么添加参数,要么换个非root用户身份运行,推荐换个身份运行;此外如果配置上了上面的环境变量依然报错,可以关闭终端,重新打开一个终端运行。

其中:

mpicc         是编译C程序的
mpicxx        是编译C++程序的
-g            允许使用调试器
-Wall         显示警告(W大写)
-o outfile.o  编译出可执行的文件,文件名为outfile.o
-02           告诉编译器对代码进行优化

编译完成后,开始运行,可由-n后面的数字来调节创建进程数。

mpirun -n 4 ./mpi_hello.o

最后得到的结果为,有可能顺序不一样

Greetings from process 0 of 4!
Greetings from process 1 of 4!
Greetings from process 2 of 4!
Greetings from process 3 of 4!

至此,MPI的安装和测试全部完成。

参考文献

[1] [美]Peter S.Pacheco.并行程序设计导论[M].邓倩妮等译注.北京:机械工业出版社,2012.8
[2] 百度百科, https://baike.baidu.com/item/MPICH/7488372?fr=aladdin
[3]Ubuntu18.10安装MPICH, https://www.jianshu.com/p/74d30935f277
[4]我的并行计算之路(一)Ubuntu 16.04下的MPI安装, https://blog.csdn.net/qq_30239975/article/details/77703321

主要参考链接:https://blog.csdn.net/qq_39451578/article/details/107938560文章来源地址https://www.toymoban.com/news/detail-446903.html

到了这里,关于Linux下的MPI安装(类比linux软件的安装方式)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 安装软件的几种方式

    哈喽大家好,我是咸鱼 相信小伙伴们都知道在 Linux 中,安装软件一般有三种方式 yum 安装 rpm 安装 源码编译安装 咸鱼平时三种安装方式都会用,但是具体原理和区别却没有去深入了解过 结果上周部门刚来的新人问我这几种安装方式的时候,一下子把我问懵了 那么今天咸鱼将

    2024年02月14日
    浏览(41)
  • Linux安装软件的三种方式

    Linux安装软件的三种方式分别为: rpm yum在线安装 解压缩 概述:RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe,是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。 RPM包的名称格式 Apache-1.3.23-11.i386.rpm “apache” 软件

    2024年02月06日
    浏览(37)
  • 9-Linux 操作系统软件的安装方式

    说明: 在Linux CentOS系统中,软件的管理方式有三种:rpm、yum、编译方式。 一、rpm 优点:对于软件包的操作比较简单,通过简单指令即可操作 缺点:   ①安装时需要 自行 下载软件包   ②安装、卸载软件时需要考虑到 依赖关系   ③软件的自定义性比较差,不适合有特

    2024年02月08日
    浏览(39)
  • Linux软件包的三种安装方式

    角色 系统命令 应用程序 文件位置 一般在/bin和/sbin目录中,或为Shell内部指令 通常在/usr/bin、/usr/sbin和/usr/local/bin、/usr/local/sbin目录中 主要用途 完成对系统的基本管理工作,例如IP配置工具 完成相对独立的其他辅助任务,例如网页浏览器 适用环境 一般只在字符操作界面中运

    2024年02月04日
    浏览(49)
  • 【Linux入门篇】四种软件查看、安装、卸载方式

    目录 🍁rpm方式 🍁yum方式 🍁源码编译方式 🍁二进制安装  🦐博客主页:大虾好吃吗的博客  🦐专栏地址:Linux从入门到精通 优点:无需网络安装软件 缺点:无法解决软件依赖 命令如下: 优点:自动解决软件依赖 缺点:无法定制化安装 1. 安装 2. 更新和升级  3. 查找和

    2023年04月09日
    浏览(38)
  • Linux下服务器基本环境搭建步骤详解(三种软件安装方式)

    小伙伴们注意看:下面使用三种方式分别安装JDK、Tomcat、Docker进行演示 操作系统基于CentOs7. Linux服务器的学习小结,希望能给到小伙伴们一点帮助。同时也方便我自己回顾。觉得可以记得好评点赞,阿里嘎多! 1、rpm下载地址 方式一 :rpm 下载地址 方式二 :https://www.aliyundr

    2024年02月11日
    浏览(45)
  • Linux下的nginx重启方式

    systemctl restart nginx service nginx restart /usr/sbin/nginx -s reload

    2024年02月12日
    浏览(31)
  • 【Linux下qt软件安装打包附带问题: dpkg: error processing package xxxx +解决方式+自我尝试+记录】

    第一篇:使用linuxdeployqt软件生成 第二篇:桌面文件.desktop,文件编写与软件图标 第三篇:打包生成安装的包(.deb) 记得之前 学会了使用linuxdeployqt软件生成,打包,已经安装等各种细节,使用一个“test demo” 工程样例,来实现以及说明相关操作流程。但是后在使用的时候,

    2024年04月15日
    浏览(83)
  • Linux下的Jenkins安装教程

    CentOS 7.8 Java 11(注意当前jenkins支持的Java版本最低为Java11) FinalShell 3.9(操作环境) PS:不建议使用Docker安装Jenkins,因为使用Jenkins的时候一般会调用外部程序,比如Maven、Docker、JDK、Nodejs等,所以我们最好直接安装在本机上,以避免不必要的麻烦。 1. 添加Jenkins源 执行下面两

    2024年02月15日
    浏览(40)
  • Ubuntu (Linux) 下创建软链接(即符号链接,相当于windows下的快捷方式)方法

    使用创建软链接的命令 Reference(注) :

    2024年01月24日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包