centos中mpich的安装及使用
https://www.itdaan.com/blog/2017/04/29/4184b453ec6c.html
安装(腾讯云centos 6.5 64位)
yum list mpich*查看有什么版本的mpich包,在此处有版本2的,所以装版本2的yum install mpich2 mpich2-devel mpich2-docwhich mpicc发现找不到该命令find / -name "mpich"然后会找到mpich的目录,可能会有好几个,有bin的那个就是我们要找的目录cd ~vi .bashrc- 在后面加上
MPI_ROOT=/usr/lib64/mpich export PATH=$MPI_ROOT/bin:$PATH这里的目录视具体情况而定source .bashrc使之生效
使用(新建文件hello.c)
#include <mpi.h>
#include <stdio.h>
#include <math.h>
int main(int argc,char* argv[])
{
int myid, numprocs;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME]; MPI_Init(&argc,&argv);/* 初始化并行环境 */
MPI_Comm_rank(MPI_COMM_WORLD,&myid);/* 当前进程的ID号 */
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);/* 进程的总數 */
MPI_Get_processor_name(processor_name,&namelen);/* 当前处理器的名称 */ fprintf(stderr,"Hello World! Process %d of %d on %s\n",
myid, numprocs, processor_name); MPI_Finalize();/* 结束并行环境 */
return 0;
}
- 1
mpicc -o hello hello.c
mpirun -np 4 ./helloc
centos7(自测成功)
yum -y mpich*
[root@localhost ~]# yum -y mpich*
Loaded plugins: fastestmirror
No such command: mpich*. Please use /usr/bin/yum --help
[root@localhost ~]# yum list mpich*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* epel: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.163.com
* updates: mirrors.163.com
Installed Packages
mpich-3.0.x86_64 3.0.4-10.el7 @base
mpich-3.0-devel.x86_64 3.0.4-10.el7 @base
mpich-3.0-doc.noarch 3.0.4-10.el7 @base
Available Packages
mpich-3.0.i686 3.0.4-10.el7 base
mpich-3.0-autoload.x86_64 3.0.4-10.el7 base
mpich-3.0-devel.i686 3.0.4-10.el7 base
mpich-3.2.i686 3.2-2.el7 base
mpich-3.2.x86_64 3.2-2.el7 base
mpich-3.2-autoload.x86_64 3.2-2.el7 base
mpich-3.2-devel.i686 3.2-2.el7 base
mpich-3.2-devel.x86_64 3.2-2.el7 base
mpich-3.2-doc.noarch 3.2-2.el7 base
yum install mpich3 mpich3-devel mpich3-doc #不可以,单独运行下面的
yum install mpich-3.0.x86_64
yum install mpich-3.0-devel.x86_64
yum install mpich-3.0-doc.noarch
Linux下MPI并行编程环境搭建配置
MPI的全称是Message Passing Interface即标准消息传递界面,可以用于并行计算。MPI有多种实现版本,如MPICH, CHIMP以及OPENMPI。这里我们采用MPICH版本。
一、MPICH安装
下载:http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz
tar -xzvf soft/mpich-3.0.4.tar.gz
cd mpich-3.0.4/
./configure --prefix=/usr/local/mpich
make && make install
安装后加入环境变量/etc/profile,并执行 source /etc/profile
PATH=$PATH:/usr/local/mpich/bin
MANPATH=$MANPATH:/usr/local/mpich/man
export PATH MANPATH
二、单节点测试
复制源代码包下的examples目录到安装目录下
cp -r examples/ /usr/local/mpich
执行
mpirun -np 10 ./examples/cpi
输出结果如下:
Process 0 of 10 is on server150
Process 9 of 10 is on server150
Process 1 of 10 is on server150
Process 4 of 10 is on server150
Process 5 of 10 is on server150
Process 7 of 10 is on server150
Process 2 of 10 is on server150
Process 3 of 10 is on server150
Process 6 of 10 is on server150
Process 8 of 10 is on server150pi is approximately 3.1415926544231256, Error is 0.0000000008333325
wall clock time = 0.020644
如果我们现在想编译文件: 在/home/houqingdong下执行: mpicc -o hello hello.c 这时候会提醒:-bash:mpicc command not found 这是因为我们还没有配置路径
在命令行下输入: export PATH=/home/houqingdong/mpiexe/bin:$PATH 注意:这里仅仅是暂时的设置路径,在重启后效果会消失,如果想一劳永逸的配置,请google查询
看一下我们配置是否成功可以执行一下 echo $PATH 看一下输出结果中是否有我们的路径
三、集群配置
1、集群机器上面需要配置ssh登录权限。参考:Hadoop-0.21.0在linux分布式集群配置 中的ssh配置(密钥无密码登录)部分。
2、复制编译程序到其他机器上面
scp -r mpich server140:/usr/local/
scp -r mpich server151:/usr/local/
scp -r mpich server130:/usr/local/
scp -r mpich server143:/usr/local/
同时在每台机器上面相应加入环境变量中。
3、
在/usr/local/mpich 下新建servers文件,内容如下:
server150:2 #run 2 process
server140:2
server130:2
server143:2
server151:2
执行下面命令,并指定servers文件
mpiexec -n 10 -f servers ./examples/cpi
输出
Process 0 of 10 is on server150
Process 1 of 10 is on server150
Process 4 of 10 is on server140
Process 5 of 10 is on server140
Process 6 of 10 is on server143
Process 7 of 10 is on server143
Process 8 of 10 is on server130
Process 9 of 10 is on server130
Process 2 of 10 is on server151
Process 3 of 10 is on server151
pi is approximately 3.1415926544231256, Error is 0.0000000008333325
wall clock time = 0.018768
四、参考资料
centos中mpich的安装及使用的更多相关文章
- centos中MySQL,VmTools安装,使用及异常
Linux(CentOS)中常用软件安装,使用及异常--MySQL,VmTools 本文主要是为了记录在工作中遇到的常用软件的安装过程,方便以后遇到相同情形时可以快速的查阅.主要讲述了MySQL, V ...
- CentOS中利用Docker安装RabbitMQ
CentOS中利用Docker安装RabbitMQ 1.拉取镜像(带管理平台) #docker pull rabbitmq:3.7.7-management 2.启动容器: #docker run - ...
- CentOS中利用Docker安装Redis
CentOS中利用Docker安装Redis 1.拉取镜像 #docker pull redis:4.0.10 2.加载镜像 #docker run -p 6379:6379 --name test- ...
- 阿里云centos中mysql的安装及一些常识知识
------------------------------------------------------------------- 阿里云centos中mysql的安装 工具WinSCP v ...
- centos 中GTK的安装
centos 中GTK的安装 yum install gtk*
- Linux(CentOS)中常用软件安装,使用及异常——XManager, 中文支持,JDK
XManager图形化界面远程连接 采用Xshell的方式可以不用在CentOS系统中配置即可以相连,主要原理就是SSH连接的方式,但是XManager图形化界面远程连接是需要修改CentOS系统的. ...
- CentOs中mysql的安装与配置
在linux中安装数据库首选MySQL,Mysql数据库的第一个版本就是发行在Linux系统上,其他选择还可以有postgreSQL,oracle等 在Linux上安装mysql数据库,我们可以去其官 ...
- CentOs中mysql的安装与配置(转)
在linux中安装数据库首选MySQL,Mysql数据库的第一个版本就是发行在Linux系统上,其他选择还可以有postgreSQL,oracle等 在Linux上安装mysql数据库,我们可以去其官 ...
- Centos中yum方式安装java
查看CentOS自带JDK是否已安装.◆输入:yum list installed |grep java. 若有自带安装的JDK,如何卸载CentOS系统自带Java环境?◆卸载JDK相关文件输入:y ...
- Centos中git的安装
CentOS的yum源中没有git,只能自己编译安装,现在记录下编译安装的内容,留给自己备忘. 确保已安装了依赖的包 yum install curl yum install curl-deve ...
随机推荐
- 进程间通信-POSIX 共享内存
POSIX 共享内存 POSIX 共享内存是一种在 Linux 系统上使用的共享内存机制,它允许多个进程可以访问同一个内存区域,从而实现进程间的数据共享.共享内存是可用IPC机制中最快的,使用共享内存 ...
- 2、Java语言基础知识
数据类型及范围 四种:整型(byte,short,int,long).浮点型(float,double).字符型(char).布尔型(true,false) 类型 byte short int lon ...
- Spring注解之@Value基于Apollo或者YAML文件为静态变量赋值
摘要:Spring Boot微服务中,把在Apollo配置中心或者YAML文件里配置的属性赋值给静态变量. 综述 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环 ...
- 使用Plop.js高效生成模板文件
前情 开发是个创造型的职业,也是枯燥的职业,因为开发绝大多数都是每天在业务的代码中无法自拨,说到开发工作,就永远都逃不开新建文件的步骤,特别现在组件化开发胜行,每天都是在新建新建组件的道路上一去不返, ...
- pytorch入门 - LetNet5 神经网络
1.LetNet5简介 LeNet5是由Yann LeCun等人在1998年提出的一种卷积神经网络架构,主要用于手写数字识别.它是早期卷积神经网络的成功应用之一,为现代深度学习模型奠定了基础.LeNe ...
- C#/.NET/.NET Core优秀项目和框架2025年5月简报
前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的详细介绍.功能特点.使用方式以及部分功能 ...
- 自定义localStorage监听事件
一.问题 在项目开发过程中,发现有很多时候进行localStorage.setItem()操作设置本地存储后,页面必须刷新才能够获取到存储数据,而有些时候本地缓存更新后,页面无法通过再次刷新以获取本地 ...
- kubernetes如何将pod运行在master节点
一.简单说明 这里我们部署的Kubernetes集群,master节点默认是unscheduled的状态,也就是默认拒绝将Pod调度到master节点运行.专业术语就是:Master节点被赋予了一个或 ...
- 利用 Kubernetes 降本增效?EasyMR 基于 Kubernetes 部署的探索实践
Kubernetes 是用于编排容器化应用程序的云原生系统.最初由 Google 创建,如今由 Cloud Native Computing Foundation(CNCF)维护更新. Kuberne ...
- hot100之回溯上
全排列(046) class Solution { List<List<Integer>> res = new ArrayList<>(); public List ...