CentOS 7下安装MPICH3.2过程详解

2023-05-16


最近由于专业需要,需要在CentOS 7平台下安装并行计算包MPICH。由于我才接触Linux,鸟哥的基础入门书也才看了四分之一不到,所以安装也一步一步按照官方给的文档安装。


官方安装方法

首先附上官网给出的安装文档:
http://www.mpich.org/static/downloads/3.2.1/mpich-3.2.1-installguide.pdf
也可以参考网页版的入门安装教程(和上面的pdf文档大同小异,但是我用的这个网页版的),链接如下:
http://www.mpich.org/static/downloads/3.2.1/mpich-3.2.1-README.txt
但是第一次安装时由于水平所限,加上混杂了许多帖子里的安装方法,安装的十分混乱,装到最后自己都晕了,本来想请教别人,后来想想不服气,又自己按照官方文档重新安装了一遍,装成功了。下面就一步一步的从头安装。

在安装之前,你的CentOS7要先安装C编译器,可以使用yum指令安装(需要root权限),代码如下

yum install make                                ///安装make程序
yum install gcc                                 ///安装GCC编译器(支持C编译)
yum isntall gcc-c++                             ///安装G++编译器(支持C++编译)

然后在官网上下载程序的压缩包,我下载的安装包是mpich-3.2.1 (stable release),链接如下
http://www.mpich.org/static/downloads/3.2.1/mpich-3.2.1.tar.gz
我电脑的默认下载地址是/home/zxh/Downloads,中间的zxh是我的主机名称,一般默认是下载到/home/[USERNAME]/Downloads这个文件夹中。在下载好之后,使用下面的命令解压文档

 tar xzf mpich-3.2.1.tar.gz

解压过程中可能会遇到系统不识别 “z” 选项的问题(CentOS7貌似没有这个问题),那可以试试下面的这段代码

gunzip mpich-3.2.1.tar.gz
tar xf mpich-3.2.1.tar

解压完毕之后,进入解压好的文件夹目录下

cd mpich-3.2.1

下面所有的Linux代码操作都是在这个目录下的。
接下来我们需要新建一个安装MPICH的目录,你也可以选择就安装在当前的mpich-3.2.1目录下,不过在以后多计算机并行计算的时候可能文件系统看上去比较乱。官方文档中给出的做法新建一个/home/[USERNAME]/mpich-install目录。我在新建的时候使用了默认的权限,代码如下

cd /home/[USERNAME]
mkdir mpich-install

再回到之前的mpich-3.2.1目录下

cd /home/[USERNAME]/Downloads/mpich-3.2.1

当中的[USERNAME]是你的localhost名称,下同,就不多做解释了。
这一切完成之后,接下来就要验证MPICH并明确指定安转目录了,代码如下

./configure --prefix=/home/[USERNAME]/mpich-install 2>&1 | tee c.txt

注意!这里在验证的时候可能会出现报错,因为验证的时候有一块是验证你的Linux系统是否支持Fortran77语言。不支持怎么办呢,用下面的代码:

./configure --prefix=/home/[USERNAME]/mpich-install --disable-fortran 2>&1 | tee c.txt

这里要注意“–disable-fortran”放置的位置,放到最后是不对的,虽然我自己也不知道“2>&1 | tee”这些代码具体的运行机制,算是邯郸学步吧:-),以后慢慢了解。如果运行通过,系统界面最后一行会出现
“configuration complete!”的语句,下面就可以生成MPICH了。语句如下:

make 2>&1 | tee m.txt

经过几分钟的等待(这一步我没有遇到问题,官网文档给出了遇到问题的解决方法,此处不多叙述),生成通过,执行安装语句:

make install 2>&1 | tee mi.txt

接着需要设置环境变量,使得不管你在哪个目录下都能使用编译指令mpicc和执行指令mpiexec,我直接在terminal界面(没有进入网上说的.bashrc文档编辑)输入下面的代码:

PATH=/home/[USERNAME]/mpich-install/bin:$PATH ; export PATH

下面验证编译指令mpicc和执行指令mpiexec是否能用,输入下面的指令:

which mpicc
which mpiexec

若能出现正确路径名称,这说明安装成功。(注意!直接在Terminal中添加PATH路径会出现一个小问题,就是计算机重启后要重新添加路径,不然mpicc和mpiexec无法执行。)

在安装包中,官方还给出了一个例子供我们测试,都已经编译好了,在/mpich-3.2.1/examples目录下,编译后的文件名称为cpi,是并行计算 π 的值。将目录切换到examples目录下,并运行代码:

cd examples
mpiexec -n 5 ./cpi

得到的结果如下所示:
这里写图片描述

文档后面还有许多精细化的配置介绍,由于我才上手,还没看,等到后面接触到,使用过了在把自己的感想写给大家把~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS 7下安装MPICH3.2过程详解 的相关文章

  • 是否可以在操作系统级别限制 php 可以通过 exec 传递哪些命令?

    我目前正在主持一个Drupal http drupal org CentOS 计算机上的 6 个站点 德鲁帕尔 CMS http en wikipedia org wiki Content management system 配置包含几十个
  • 如何在Centos上安装特定版本的Docker?

    我尝试在Centos7上安装docker 1 8 2 该文档没有告诉任何有关版本控制的信息 有人可以帮助我吗 我试过 wget qO https get docker com sed s lxc docker lxc docker 1 8
  • 与 crond 不同的 ssh 行为

    我已经在这件事上抓狂了好几个小时了 我欢迎任何有关下一步发展的新想法 目标是通过 SSH 登录到自定义应用程序 CLI 然后使用自定义 CLI 命令之一在远端设备上下拉调试 shell 在客户端 我使用 CentOS mini 并运行 ss
  • 登录时自动运行 Bash 脚本

    我编写了一个脚本 它将登录者的日期和用户名发送到日志文件中 以记录登录者的记录 我想知道如何设置此脚本在用户登录时自动执行 而不是在用户登录时自动执行在终端中手动运行它 注意 用户名是当前登录的用户 my code bin bash pri
  • 在 Linux 上安装 nloptr

    我正在尝试安装 R 包nloptr在没有互联网连接的 CentOS Linux 机器上 如下所示 install packages home ravi nloptr 1 0 4 tar gz repos NULL type source 该
  • APC缓存碎片问题

    我在 CentOS 服务器 5 上运行 APC php 缓存 每天 13 000 次访问 运行 php 5 3 3 APC 3 1 4 和 4Gb RAM 在过去的几周里 我经历了很多 unable to allocate memory f
  • 将 apply 的管道输出传送到 centos 中的记录

    我正在尝试自动化 websocket 客户端的一些测试 该客户端根据命令连接到服务器 该服务器基本上是一个语音到文本引擎 客户端支持来自麦克风的音频流 这样人们就可以实时录制自己的声音并将其传输到引擎 我在 centos 虚拟机中运行客户端
  • 在 CentOS 中使用 /etc/resolv.conf 解析 AD 域

    我已使用 Realm 配置 SSSD 以使用 AD 凭据登录 centOS VM 请参考设置here https stackoverflow com questions 63705156 sssd integration with micr
  • 未找到 jmap 命令

    我正在尝试使用jmap对我的命令CentOS服务器 但它一直告诉我 即使我安装了 JDK 也找不到该命令 这是命令的输出java version java version 1 7 0 25 OpenJDK Runtime Environme
  • Errr 'mongo.js:L112 错误:无法连接到位于 src/mongo/shell/mongo.js:L112 的服务器 127.0.0.1:27017'

    我无法连接到MongoDB http en wikipedia org wiki MongoDB 在 Ubuntu 中它可以工作 但我正在工作CentOS http en wikipedia org wiki CentOS现在 这是错误消息
  • crontab 作业的 STDOUT 和 STDERR 输出在哪里

    有谁知道 CentOS 中正常 crontab 作业输出的 STDOUT 和 STDERR 在哪里 我检查了 var log cron文件 但它只记录了 cron 作业执行的时间和命令 没有找到 STDOUT 或 STDERR 内容 看看
  • 在 CentOS 6.4 中意外删除了符号链接 libc.so.6。如何获得 sudo 权限来重新创建它?

    我不小心删除了符号链接 lib64 libc so 6 gt lib64 libc 2 12 so sudo rm libc so 6 然后我不能使用任何东西 包括ls命令 我输入的任何命令都会出现错误 ls error while loa
  • mod_mono 在新安装的 centos 上出现 EOF 错误

    我全新安装了 Centos 6 3 已完全更新 我已经从源安装了 mono xsp 和 mod mono 每个包都完美编译 它们都以 usr local mono 前缀安装 因此所有内容都位于 usr local mono 下 我已将 In
  • 出现错误 /usr/bin/env: 节点:权限被拒绝

    我已经在我的服务器 Centos 上完成了 ODOO v9 安装 一切都已安装成功 登录页面也可以正常工作 但登录后我收到一个包含以下错误的页面 usr bin env node Permission Denied 我尝试更改权限 但我的问
  • Vagrant 的端口转发不起作用[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我在最后遇到了一个小问题入门指南vagrant http vagrantup com docs getting started ports html
  • 合并来自 ffmpeg 的两个视频

    我想使用 ffmpeg 将两个 mp4 视频组合成一个 mp4 视频 到目前为止我尝试过的是 ffmpeg i input1 mp4 i input2 mp4 output mp4 但是 每次我获取带有第一个输入的视频编解码器的视频而不是另
  • 如何在Linux中打开端口[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经安装了 Web 应用程序 该应用程序在 RHEL centOS 上的端口 8080 上运行 我只能通过命令行访问该机器 我尝试从我的
  • 导入错误:没有名为 django 的模块

    我使用的是centos Linux 我有 python 2 6 和 django 现在我升级到 python 2 7 Python 2 6 位于 usr lib python2 6 Python 2 7 位于 usr local lib p
  • 如何在CentOS 5.3上安装php-mongodb?

    我已经在我的 VPS 上安装了 mongoDB 效果很好 现在我想安装 php 驱动程序以使 php 与 mongoDB 一起工作 我跟着蒙戈安装 http www php net manual en mongo installation
  • 套接字错误 10054

    我有一个C S程序 客户端使用socket向服务器发送文件 发送后大约超过700k数据 客户端 在win7上 将收到套接字10054错误 这意味着连接被对等方重置 服务器运行在CentOS 5 4上 客户端是在virtual box中运行的

随机推荐