linux中mpi命令 linux mpu

如何在vmware配置linux下的mpi

虚拟机CentOS中配置MPI多节点并行计算完整版,这是一个新手教程,从一个空白的CentOS到能正常运行的基础环境,尽量详细写了每个步骤

目前创新互联建站已为数千家的企业提供了网站建设、域名、网络空间、网站托管、服务器租用、企业网站设计、自流井网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

我的环境如下:

宿主机:Windows 10 Pro

虚拟机:VMware 12 + CentOS 6.6

一、 虚拟机网络配置实现多节点互访

硬件资源有限,所以我只开了两台虚拟机均为 Centos 6.6。

1.修改网卡配置文件

/etc/sysconfig/network-scripts/ifcfg-eth0 将其中内容修改如下:

DEVICE=eth0

HWADDR=00:0C:29:A0:3A:CA

TYPE=Ethernet

UUID=bf583745-f834-451c-890c-39821a590543

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.207.128

NETMASK=255.255.255.0

DNS1=192.168.207.2

将每一台虚拟机都如此配置,IPADDR是ip地址,不要重复

2.修改网关及主机名

/etc/sysconfig/network

ETWORKING=yes

HOSTNAME=node1

NTPSERVERARGS=iburst

GATEWAY=192.168.207.2

一些文章中提到还需要修改VMware的设置(关闭本地DHCP服务),实际上,Centos 中设置好后就不需要动VMware的设置了

二、 在虚拟机中添加同名用户

在不同节点中需要有同名的用户以方便免密码SSH连接

node1和node2中以root用户执行下列命令

# useradd mpiuser

三、 实现免密码SSH登陆

当前节点为node1,用户为mpiuser,工作目录为 ~ 家目录

1.生成 SSH 私钥对

$ ssh-keygen -t rsa 一路回车就好

2.进入 .ssh 目录

$ cd ./.ssh

3.生成authorized_keys文件

$ cp id_rsa.pub authorized_keys

4.回到mpiuser的家目录

$ cd ~

5.建立本身的信任连接

$ ssh node1

6.设置 node2

$ ssh-keygen -t rsa 生成.ssh文件夹

$ scp node1:~/.ssh/* ./ 拷贝node1上的.ssh文件夹到node2

# scp node1:/etc/hosts /etc/hosts 拷贝node1上的hosts文件到node2,可能需要root权限

$ ssh node2

$ ssh node1

7.如果还有其他节点,设置方法同node2

设置成功后,在任意节点执行SSH连接其他节点都不需要密码,注意必需每个节点都有mpiuser这个用户,之所以使用一个普通用户,是为了避免root执行mpi程序时遇到风险。在一些mpi实现中,也不允许以root用户执行。

四、 配置MPI运行环境

1. 下载 mpich

官方网站 下载其中的mpich-3.2.tar.gz

2. 解压并进入目录

# tar xvf mpich-3.2.tar.gz

# cd mpich-3.2

# ./configure –prefix=/usr/local/mpich

# make

# make install

3. 设置环境变量,修改 /etc/profile ,加入下面几行代码

PATH=$PATH:/usr/local/mpich/bin

MANPATH=$MANPATH:/usr/local/mpich/man

export PATH MANPATH

4. 使刚刚的修改生效

# source /etc/profile

5. mpi多节点配置

新建一个配置文件

# touch /usr/local/mpich/servers

修改其中内容为:

node1:2 #在node1上运行两个进程

node2:2

如果有多个节点继续往下写

五、 单节点测试

将源码包中的 examples 拷贝到 mpich 的安装目录

# cp -r ./examples /usr/local/mpich/

用示例程序进行测试

$ mpirun -np 4 /usr/local/mpich/examples/cpi

Process 1 of 4 is on node1

Process 0 of 4 is on node1

Process 3 of 4 is on node1

Process 2 of 4 is on node1

pi is approximately 3.1415926544231239, Error is 0.0000000008333307

wall clock time = 0.081049

得到如图的回显结果证明mpich的运行环境正常

六、 多节点测试

$ mpiexec -np 4 -f /usr/local/mpich/servers /usr/local/mpich/examples/cpi

Process 1 of 4 is on node1

Process 0 of 4 is on node1

Process 3 of 4 is on node2

Process 2 of 4 is on node2

pi is approximately 3.1415926544231239, Error is 0.0000000008333307

wall clock time = 0.139722

如上,在两个节点上分别运行了两个进程,配置过程到此结束

linux mpi.h一般在哪

linux mpi.h一般在哪?MPI(Message Passing Interface),是一种必须和其它程序语言一起使用的一个接口。mpi.h就是这个接口库的头文件,需要下载并安装这个第三方库,目前主要使用的就是Mpich。1.首先进行解压文件openmpi-1.6.2.tar.gz。 2.然后执行cd openmpi-1.6.2 3.接着执行./configure,一段时间之后发现缺少g++编译器,所以执行sudo apt-get install g++ 4.执行完之后再执行一次./configure就可以配置成功, 5.执行sudo make all in。Linux下MPI环境的安装配置及MPI程序的编译运行,step by step。

下载MPI安装包

去这里下载一个适合的安装包。

安装包的解压

安装包所在的目录下,运行tar xzvf mpich-x.x.x.tgz。

切换到解压出来的包目录下

cd mpich-x.x.x

configure配置编译环境,我这里为它选择了一个安装路径。

Linux/超算中PBS常用命令

新手,纯纯搬运工【出处引用自: 】

1. Linux常用命令

最常用:

ls(英文全拼:list files):列出目录及文件名

ls -l:列出目录及文件名,可查看更多

ls -al:可以看到隐藏文件

cd(英文全拼:change directory):切换目录

cd .. :返回上一级

cd 文件夹名:进入目录

pwd(英文全拼:print work directory):显示目前的目录

mkdir 文件夹名(英文全拼:make directory):创建一个新的目录

rmdir 文件夹名(英文全拼:remove directory):删除一个空的目录

cp xxx xxx(英文全拼:copy file): 复制文件或目录

mv xxx xxx(英文全拼:move file): 移动文件或目录,或修改文件或目录的名称

rm(英文全拼:remove): 删除文件

rm -r 文件夹名:递归删除某目录

clear:清空terminal的所有内容(或者使用Ctrl+L)

tab按键:补充完整文件名或文件夹名

次常用:

vim/vi 某文件 (编辑文件)

nano 某文件 (编辑文件)

touch 文件 (新建空文件)

sudo -s (切换到root模式)

exit (退出root模式等)

sudo chmod -R 755 文件名/文件夹名 (获取文件/文件夹的755权限)

chown [用户] [文件或目录] (改变文件或目录的所有者)

chgrp [用户组] [文件或目录] (改变文件或目录的所属组)

make (编译成.exe)

解压/解包:

tar文件 (注:tar是打包,不是压缩!)

解包:tar xvf FileName.tar

打包:tar cvf FileName.tar DirName

.gz文件

解压1:gunzip FileName.gz

解压2:gzip -d FileName.gz

压缩:gzip FileName

.tar.gz 和 .tgz文件

解压:tar zxvf FileName.tar.gz

压缩:tar zcvf FileName.tar.gz DirName

安装和卸载deb软件包:

安装:sudo dpkg -i deb文件

查看:sudo dpkg -l

卸载:sudo dpkg -r 软件名

参考资料:

[1]  Linux 教程

[2]  Linux常用命令

[3]  linux中tar命令的用法

[4]  全网最全Linux命令总结

2. vim/vi里的操作

:q 退出

:wq 保存并退出

:w 保存

:q! 强行退出(不保存退出)

:w! 强行保存

i 进入编辑,转为输入模式(光标前面)

a 进入编辑,转为输入模式(光标后面)

o 进入编辑,转为输入模式(光标下方新建一行)

Esc 退出i(插入)命令

3. 超算中PBS常用命令

pbsnodes (查看所有节点)

pbsnodes -l free (查看空闲节点)

pbsnodes 某节点 (查看某节点状态)

ssh 某节点 (转到某节点)

exit (离开节点)

qsub 文件名.pbs/sh (提交任务)

qstat (列出状态)

qstat -q (列出队列)

qstat -n (列出队列中使用的节点)

qstat -f jobid (查看jobid任务的详细信息)

qdel jobid (取消任务)

4. 其他

(1)Linux开机自启

sh文件中包含:

#!/bin/bash#chkconfig: 2345 80 90#description:auto_run

sh文件移动到/etc/init.d后,分别输入命令:

chkconfig --add xxx.sh

chkconfig --list   

chkconfig xxx.sh on 

service xxx.sh start

参考资料: linux 开机启动 .sh 文件 - 自己的太阳 - 博客园

(2)Linux环境变量

方法1:临时使用环境变量:export PATH="/home/www/anaconda3/bin:$PATH"

方法2:修改.bashrc文件

参考资料: Linux PATH 作用以及查看和修改方法_haozhepeng的专栏

(3)两个sh文件

a.sh文件(用于提交任务,执行a.py文件)

#!/bin/sh#PBS -N task#PBS -l nodes=1:ppn=1#PBS -q scorecd $PBS_O_WORKDIRexport OMP_NUM_THREADS=1python a.py

a.sh文件(用于提交任务,执行a.exe文件)

#!/bin/sh#PBS -N task#PBS -l nodes=1:ppn=1#PBS -q scorecd $PBS_O_WORKDIRexport OMP_NUM_THREADS=1./a.exe

(4)一个makefile文件

makefile文件(用于编译Fortran文件)

INC := -I/public/software/compiler/intel/composer_xe_2015.2.164/mkl/include/intel64/lp64

LIB := -L/public/software/compiler/intel/composer_xe_2015.2.164/mkl/lib/intel64

mpi:= -I/public/software/mpi/mpich/3.1.4/intel/include /public/software/mpi/mpich/3.1.4/intel/lib -lmpich -limf -lsvml -lintlc

src:=Console1exec:=a

all: $(src).f90

ifort  $(src).f90  $(INC) $(LIB) -openmp -lmkl_intel_lp64 -Wl,--start-group -lmkl_intel_thread -lmkl_lapack95_lp64 -lmkl_core -lmkl_blas95_lp64  -Wl,--end-group -liomp5 -lpthread -O2 -o $(exec).exe


名称栏目:linux中mpi命令 linux mpu
文章网址:http://cdiso.cn/article/hjciji.html

其他资讯