基于Linux的MPI并行环境的配置

合集下载

并行程序实验报告

并行程序实验报告

并行程序设计实验报告姓名:学号:一、实验目的通过本次试验,了解使用OpenMP编程的基本方法和MPI的编程方法,通过实践实现的基本程序,掌握基本的线程及进程级并行应用开发技术,能够分析并行性能瓶颈及相应优化方法。

二、实验环境Linux操作系统,mpi库,多核处理器三、实验设计与实现(一)MPI并行程序设计用MPI编写一个greeting程序,编号为0的进程接受其它各进程的“问候”,并在计算机屏幕上显示问候情况。

用MPI编写一个多进程求积分的程序,并通过积分的方法求π的值,结果与π的25位精确值比较。

(二)多线程程序设计用Pthreads或OpenMP编写通过积分的方法求π的程序。

把该程序与相应的MPI程序比较。

用Pthreads或OpenMP编写编写矩阵相乘的程序,观察矩阵增大以及线程个数增减时的情形。

四、实验环境安装(一)MPI环境安装1.安装kylin操作系统的虚拟机(用VirtualBox)2.安装增强功能,使之与windows主机能够文件共享。

3.拷贝mpich-3.0.4.tar.gz到/root/myworkspace/目录下,并解压(tar xzf mpich-3.0.4.tar.gz)4.下面开始安装mkdir /root/myworkspace/mpi./configure --prefix=/root/myworkspace/mpi --disable-f77 --disable-fcmakemake install5.配置环境变量打开/root/.bashrc文件,在文件的末尾加上两行:PATH=$PATH:/root/myworkspace/mpi/binexport PATH保存退出,然后执行命令source /root/.bashrc(二)openMP实验环境安装Visual Studio中修改:项目->属性->c/c++->语言,将“OpenMP支持”改成“是”:五、实验结果及分析(一)MPI并行程序设计实验一:问候发送与接收非零号进程将问候的信息发送给0号进程,0号进程依次接收其它进程发送过来的消息并将其输出。

openfoam mpi编译

openfoam mpi编译

OpenFOAM是一个由英国OpenCFD公司开发的开源计算流体力学软件。

它采用C++编程语言,可以在Linux操作系统上运行。

OpenFOAM具有模块化的结构,使得用户可以方便地定制和扩展其功能。

为了加快计算速度,OpenFOAM还支持MPI并行计算。

MPI(Message Passing Interface)是一种用于编写并行程序的标准。

使用MPI,用户可以在多个处理器上同时执行程序,从而加快计算速度。

在OpenFOAM中,MPI被用于加速求解大规模计算流体力学问题的速度。

在本文中,我们将介绍如何在OpenFOAM中使用MPI进行编译。

一、安装MPI库我们需要安装MPI库。

在Linux系统中,MPI一般通过包管理器进行安装。

以Ubuntu系统为例,可以使用以下命令安装MPI库:sudo apt-get install mpich二、配置MPI环境安装完MPI库后,需要配置MPI环境。

在OpenFOAM中,MPI的配置是通过修改OpenFOAM的环境变量来实现的。

我们需要找到OpenFOAM的安装路径,然后在用户目录下找到.bashrc文件,在其中添加如下行:export WM_MPLIB=SYSTEMOPENMPIexport WM_COMPILE_OPTION=mpi其中,WM_MPLIB指定了使用的MPI库,这里我们使用了OpenMPI;WM_COMPILE_OPTION指定了编译选项为MPI。

三、进行编译配置完成后,就可以进行编译了。

需要清理之前的编译结果,可以使用以下命令进行清理:wclean all进行新的编译:wmake这样就可以在OpenFOAM中使用MPI进行编译了。

四、检查编译结果需要检查编译结果是否正确。

可以通过运行一个包含MPI并行计算的例子来验证编译是否成功。

如果例子能够正确运行并且加速效果明显,说明MPI编译成功。

总结通过本文介绍,我们了解了如何在OpenFOAM中使用MPI进行编译。

Linux并行集群的搭建PBS

Linux并行集群的搭建PBS

Linux并行集群的搭建PBSLinux并行集群的搭建实验环境OS:CentOS 5.10 x86_64(一台admin,两台计算节点)主机名和和IP对应关系如下admin: 192.168.78.11node1:192.168.78.12node2:192.168.78.13软件版本:PBStorque-3.0.6.tar.gzmaui-3.3.1.tar.gzopenmpi-1.8.1.tar.bz2并行软件:apoa1.tar.gzNAMD_2.9_Linux-x86_64-multicore.tar.gz一:环境配置1.修改hosts文件,添加内容如下192.168.78.11 admin192.168.78.12 node1192.168.78.13 node22.设置无密码访问ssh-keygen一直按enter键即可,进入.ssh目录生成认证密码,并设置权限[root@admin ~]#cd.ssh/[**************]#lsid_rsa id_rsa.pub[**************]#cpid_rsa.pubauthorized_keys[**************]#chmod600authorized_keys[**************]#lltotal 12-rw------- 1rootroot 394 Aug 23 03:52 authorized_keys-rw------- 1rootroot 1675 Aug 23 03:50 id_rsa-rw-r--r-- 1rootroot 394 Aug 23 03:50 id_rsa.pub3.然后复制.ssh目录到所有计算节点[root@admin~]# for i in 1 2 ; do scp -r /root/.ssh node$i:/ro ot/ ; done第一次要输入两台计算节点的root密码,以后都是无密码访问了4.复制hosts文件到所有计算节点[root@admin ~]#for i in 1 2 ; do scp /etc/hosts node$i:/etc/ ; done5.配置nfs服务把管理节点上的/export作为共享目录[root@admin~]#mkdir -p /export/{apps,home,scripts,sourc e} //其中apps为软件共享目录,home为共享家目录[root@admin ~]#cat /etc/exports/export 192.168.78.0/255.255.255.0(rw,sync)6.启动nfs服务并检查启动是否成功[root@admin~]#chkconfig portmap on ; /etc/init.d/portma p startStartingportmap: [ OK ][root@admin~]#chkconfig nfs on ; /etc/init.d/nfs start[root@admin~]#showmount -e localhostExport listforlocalhost:/export 192.168.78.0/255.255.255.0[root@admin ~]#7.配置autofs[root@admin ~]#cat /etc/auto.master/home/etc/auto.home --timeout=1200/share/ec/auto.share --timeout=1200[root@admin ~]#cat /etc/auto.share* admin:/export/&[root@admin ~]#cat /etc/auto.home* -nfsvers=3 admin:/export/home/&[root@admin ~]#8.启动autofs服务[root@admin~]#chkconfig autofs on ; /etc/init.d/autofs star t9.复制auto.master auto.share auto.home到所有计算节点[root@admin ~]#for i in 1 2; do scp /etc/auto.master node$i: /etc/; done[root@admin ~]#for i in 1 2; do scp /etc/auto.share node$i:/ etc/; done[root@admin ~]#for i in 1 2; do scp /etc/auto.home node$i: /etc/; done10.启动autofs服务[root@admin ~]#for i in 1 2; do ssh node$i /etc/init.d/autof s start; done[root@admin ~]#for i in 1 2; do ssh node$i chkconfig autofs on; done11.配置NIS服务[root@admin ~]#yum -y install ypserv[root@admin~]#nisdomainname [root@admin~]#echo "NISDOMAIN=">>/etc /sysconfig/network[root@admin ~]#cp /usr/share/doc/ypserv-2.19/securenets /var/yp/[root@admin ~]#vi /var/yp/securenets修改后内容如下[root@admin~]#grep -v "^#" /var/yp/securenets255.0.0.0 127.0.0.0255.255.255.0 192.168.78.0[root@admin ~]#12.启动NIS服务[root@admin~]#/etc/init.d/ypserv start ;chkconfig ypserv o nStarting YP servers ervices: [ OK ][root@admin~]#/etc/init.d/yppasswdd start ;chkconfig yppa sswdd onStarting YP passwd service: [ OK ][root@admin ~]#13.修改/etc/default/useradd文件把HOME=/home更改为HOME=/export/home14.在/etc/skel目录下创建.ssh目录并在.ssh目录下建立一个名为config的文件,设置如下[root@admin~]#mkdir /etc/skel/.ssh[root@admin~]#touch /etc/skel/.ssh/config[root@admin ~]#cat /etc/skel/.ssh/configStrictHostKeyChecking noUserKnownHostsFile /dev/null[root@admin~]#chmod 600 /etc/skel/.ssh/config15.创建用于同步用户的命令◆在/usr/local/sbin目录下创建了一个名为sync_users的脚本,内容如下:#!/bin/bashYPINIT=/usr/lib64/yp/ypinitfor USER in $(sed -n '/export/p' /etc/passwd | awk -F ":" '{pri nt$1}')doif [ -z "$USER" ]; then$YPINIT -melseusermod -d /home/$USER $USERfidone$YPINIT -m◆赋予可执行权限chmod 755/usr/local/sbin/sync_users◆以后执行sync_users命令就可以同步新创建的用户16.创建一个测试用户linuxidc,并同步该用户[root@admin~]#useradd linuxidc[root@admin~]#echo linuxidc | passwd --stdin linuxidc[root@admin~]#sync_users注:以后每添加一个新用户,都需要执行sync_users命令17. 配置NIS客户端,在所有计算节点上安装ypbind,RHEL默认已经安装[root@admin~]# for i in 1 2; do ssh node$i auth-config --en able-nis --nisdomain= \--nisserver=admin --update; done18.验证NIS服务配置是否正确[root@node1~]#ypcat passwdlinuxidc:$1$tsPKQvPP$Kwom9qG/DNR1w/Lq./cQV.:500:500:: /home/linuxidc:/bin/bash[root@admin ~]#for i in 1 2; do ssh node$i id linuxidc; done uid=500(linuxidc) gid=500(linuxidc) groups=500(linuxidc)uid=500(linuxidc) gid=500(linuxidc) groups=500(linuxidc)有上面输出可知,NIS服务配置正确二:安装和配置torque(管理节点)1.首先安装openmpi[root@adminparallel]#tar xjvf openmpi-1.8.1.tar.bz2 -C /usr/ local/src/[root@adminparallel]#cd /usr/local/src/openmpi-1.8.1/[*********************.1]#./configure--prefix=/share/ap ps/openmpi[*********************.1]#make[*********************.1]#makeinstall[*********************.1]#cp-r examples/ /share/apps/ openmpi2.添加环境变量,在/share/scripts目录先建立了一个Path.sh,以后也方便计算节点添加环境变量[root@adminscripts]#pwd/share/scripts[root@adminscripts]#cat Path.sh#!/bin/bashgrep openmpi /etc/profile || cat >>/etc/profile <<EOFexport PATH=/share/apps/openmpi/bin:\$PATHexport LD_LIBRARY_PATH=/share/apps/openmpi/lib:\$LD_LI BRARY_PATHEOF[root@adminscripts]#[root@adminscripts]#sh Path.sh[root@adminscripts]#source /etc/profile3.测试openmpi是否安装成功[root@adminscripts]#which mpirun/share/apps/openmpi/bin/mpirun[root@adminscriptss]#which mpiexec/share/apps/openmpi/bin/mpiexec4.安装torque[root@adminparallel]#tar xzvf torque-3.0.6.tar.gz -C /share/ source/[root@adminparallel]#cd /share/source/torque-3.0.6/[********************.6]#./configure--enable-syslog --e nable-nvidia-gpus --enable-cpuset --disable-gui --with-rcp=scp --with-sendmail[********************.6]#make[********************.6]#makeinstall[********************.6]#pwd/share/source/torque-3.0.6[********************.6]#catinstall.shcd /share/source/torque-3.0.6make install[********************.6]#5.初始化torque创建默认队列[********************.6]#./torque.setuproot initializingTORQUE(admin: root@admin)PBS_Server admin:Create mode and server database exists, do you wishtocontinue y/(n)?yroot 26351 1 0 06:44? 00:00:00 pbs_server -t create Max openservers:10239Max openservers:10239[********************.6]#6.查看创建的默认队列batch[********************.6]#qmgr-c"ps"## Create queues and set their attributes.### Create and define queue batch#create queue batchset queue batch queue_type = Executionset queue batch resources_default.nodes = 1set queue batch resources_default.walltime= 01:00:00set queue batch enabled = Trueset queue batch started = True## Set server attributes.#set server scheduling = Trueset server acl_hosts = adminset server admins= root@adminset server operators = root@adminset server default_queue = batchset server log_events = 511set server mail_from = admset server scheduler_iteration = 600set server node_check_rate = 150set server tcp_timeout = 6set server mom_job_sync = Trueset server keep_completed = 300[********************.6]#7.更改队列batch部分属性,以满足实际需求[********************.6]#qmgr-c"sqbatchresources_de fault.walltime=24:00:00"[********************.6]#qmgr-c"ssquery_other_jobs=t rue"8.建立mom配置文件,用于复制到所有计算节点[root@adminmom_priv]#pwd/var/spool/torque/mom_priv[root@adminmom_priv]#cat config$pbsserver admin$logevent 2259.创建节点信息文件[root@adminserver_priv]#pwd/var/spool/torque/server_priv[root@adminserver_priv]#cat nodesnode1node2[root@adminserver_priv]#10.查看目前节点信息均为down状态[root@adminserver_priv]#pbsnodes -anode1state = downnp = 1ntype = clustermom_service_port = 15002mom_admin_port = 15003gpus = 0node2state = downnp = 1ntype = clustermom_service_port = 15002mom_admin_port = 15003gpus = 0[root@adminserver_priv]#11.复制pbs_server启动脚本,并设置开机自动启动[********************.6]#pwd/share/apps/torque-3.0.6[********************.6]#cpcontrib/init.d/pbs_server/etc /init.d/[********************.6]#chmod755/etc/init.d/pbs_serve r[********************.6]#chkconfigpbs_serveron12.复制pbs_mom脚本,方便复制到计算节点[********************.6]#cpcontrib/init.d/pbs_mom/etc/ init.d/13.安装maui[root@adminparallel]#tar xzvf maui-3.3.1.tar.gz -C /usr/local /src/[root@admin ~]#cd /usr/local/src/maui-3.3.1/[******************.1]#./configure--prefix=/usr/local/ma ui --with-pbs=/usr/local[******************.1]#make[******************.1]#makeinstall14.复制maui启动脚本,设置正确路径,并设置为开机启动[******************.1]#cpetc/maui.d/etc/init.d/mauid[******************.1]#vi/etc/init.d/mauid更改MAUI_PREFIX=/opt/maui为MAUI_PREFIX=/usr/local/m aui[******************.1]#chmod755/etc/init.d/mauid[******************.1]#chkconfigmauidon15.启动maui调度服务[******************.1]#/etc/init.d/mauidstartStartingMAUIScheduler: [ OK ][******************.1]#16.添加maui命令环境变量[******************.1]#vi/etc/profileexport PATH=/share/apps/openmpi/bin:/usr/local/maui/bin: $PATH[******************.1]#source/etc/profile17.安装并行软件到共享目录[root@adminnamd]#tar xzvf NAMD_2.9_Linux-x86_64-multi core.tar.gz -C /share/apps/[root@adminnamd]#tar xzvf apoa1.tar.gz -C /share/apps/ [root@adminapps]#pwd/share/apps[root@adminapps]#mv NAMD_2.9_Linux-x86_64-multicore/ namd18.添加namd命令环境变量,同时也添加到Path.sh方便计算节点添加环境变量[******************.1]#vi/etc/profileexport PATH=/share/apps/openmpi/bin:/usr/local/maui/bin: /share/apps/namd:$PATH[******************.1]#source/etc/profile[root@adminscripts]#which namd2/share/apps/namd/namd2[root@adminscripts]#cat Path.sh#!/bin/bashgrep openmpi /etc/profile || cat >>/etc/profile <<EOFexport PATH=/share/apps/openmpi/bin:/share/apps/namd:\$PATHEOF[root@adminscripts]#至此管理端配置完成三:计算节点配置torque1.计算节点安装torque[root@admin ~]#for i in 1 2; do ssh node$i sh /share/source /torque-3.0.6/install.sh; done2.复制mom配置文件到计算节点[root@admin ~]#for i in 1 2; do scp /var/spool/torque/mom _priv/confignode$i:/var/spool/torque/mom_priv/; done3.复制mom启动脚本到计算节点,启动pbs_mom服务,并设置开机启动[root@admin ~]#for i in 1 2; do scp /etc/init.d/pbs_mom no de$i:/etc/init.d/; done[root@admin ~]#for i in 1 2; do ssh node$i /etc/init.d/pbs_ mom start; doneStartingTORQUEMom: [ OK ]StartingTORQUEMom: [ OK ][root@admin ~]#for i in 1 2; do ssh node$i chkconfig pbs_m om on; done4.设置环境变量[root@admin ~]#for i in 1 2; do ssh node$i sh /share/scripts /Path.sh; done5.测试环境变量设置是否正确[root@admin ~]#for i in 1 2; do ssh node$i which mpirun; d one/share/apps/openmpi/bin/mpirun/share/apps/openmpi/bin/mpirun[root@admin ~]#for i in 1 2; do ssh node$i which namd2; d one/share/apps/namd/namd2/share/apps/namd/namd2[root@admin ~]#6.此时再观察计算节点状态,已经变成free了,即可以提交任务到计算节点了[root@adminapps]#pbsnodes -anode1state = freenp = 1ntype = clusterstatus=rectime=1408751492,varattr=,jobs=,state=free,netlo ad=12996103,gres=,loadave=0.01,ncpus=1,physmem=1024932 kb,availmem=2082428kb,totmem=2165536kb,idletime=0,nuser s=0,nsessions=0,uname=Linuxnode12.6.18-371.el5 #1 SMP Tue Oct 1 08:35:08 EDT 2013 x86_64,opsys=linuxmom_service_port = 15002mom_admin_port = 15003gpus = 0node2state = freenp = 1ntype = clusterstatus=rectime=1408751482,varattr=,jobs=,state=free,netlo ad=12983275,gres=,loadave=0.03,ncpus=1,physmem=1024932 kb,availmem=2082444kb,totmem=2165536kb,idletime=0,nuser s=0,nsessions=0,uname=Linuxnode22.6.18-371.el5 #1 SMP Tue Oct 1 08:35:08 EDT 2013 x86_64,opsys=linuxmom_service_port = 15002mom_admin_port = 15003gpus = 0[root@adminapps]#四:验证并行集群是否搭建成功1.在管理节点上以建立的linuxidc用户登录,首先设置节点间无密码互访,操作和root用户一样,只是不需要复制.ssh目录2.复制namd用软件apoa1到当前目录下[linuxidc@admin ~]$cp -r /share/apps/apoa1/ ./3.创建PBS脚本[linuxidc@admin~]$touch test.pbs脚本内容如下[linuxidc@admin ~]$cat test.pbs#!/bin/bash#PBS -N linuxidcjob1#PBS -j oe#PBS -l nodes=2:ppn=1NP=`cat $PBS_NODEFILE | wc -l`echo "This job's id is $PBS_JOBID@$PBS_QUEUE"echo "This job's workdir is $PBS_O_WORKDIR"echo "This job is running on following nodes:"cat $PBS_NODEFILEecho "This job begins at:" `date`echoechocd $PBS_O_WORKDIRmpirun -np $NP-machinefile $PBS_NODEFILE namd2 apoa1 /apoa1.namdechoechoecho "This job stops at:" `date`[linuxidc@admin ~]$4.提交任务[linuxidc@admin ~]$qsub test.pbs5.查看作业运行状态[linuxidc@admin~]$qstatJobid Name User Time UseS Queue -------------------------------------------------------- -------- - -----1.admin linuxidcjob1 linuxidc 0 R b atch[linuxidc@admin~]$qstat -nadmin:Req'd Req'd ElapJobID Username Queue Jobname SessID NDS TSK Memory Time S Time--------------------------------------- ---------------- ------ ----- ------ ------ ----- - -----1.admin linuxidc batch linuxidcjob1 66762 2 -- 24:00 R --node2/0+node1/0[linuxidc@admin ~]$由上面可知作业已经在node1和node2上运行了至此,linux并行集群搭建完成。

MPI综合实验报告

MPI综合实验报告

MPI综合实验报告一、实验目的本次实验旨在探究MPI并行计算技术在多节点集群中的应用,并通过编写相关代码实现一个简单的并行计算任务,验证MPI的计算能力和效果。

二、实验原理MPI(Message Passing Interface)是一种并行计算中进程间通信的标准接口。

MPI通过发送和接收消息来实现进程之间的通信,协调各个计算节点的工作。

一般而言,MPI程序由多个进程组成,每个进程可以独立地执行计算任务,当需要进行通信时,进程可以通过MPI提供的接口来发送和接收消息。

三、实验过程1.配置MPI环境在实验开始前,需要在多个节点上安装MPI环境,并确保各节点之间能够正常通信,可以互相发送和接收消息。

2.编写代码首先,需要编写一个主进程(通常为进程0)和多个子进程参与计算的代码。

主进程负责将计算任务分配给子进程,并收集子进程的计算结果。

子进程则负责进行具体的计算任务。

以下是一个简单的示例代码:```pythonfrom mpi4py import MPIif rank == 0:#主进程负责任务分配data = [i for i in range(size-1)] # 分配给每个子进程的数据for i in range(1, size):#主进程接收结果result = []for i in range(1, size):print("Result:", result)else:#子进程接收任务数据#子进程进行计算result = data * 2#子进程发送计算结果```以上代码使用了mpi4py库来实现MPI的功能。

在主进程中,首先准备要分配的数据,然后将每个子进程的数据发送给相应的子进程,并接收子进程的计算结果。

在子进程中,首先接收来自主进程的数据,然后进行计算,并将计算结果发送给主进程。

3.运行实验在配置好MPI环境和编写好代码后,将代码保存并上传到各个节点上。

然后,在主节点上执行以下命令来运行程序:``````其中,`-np 5`表示使用5个进程来进行计算。

基于MPI+FreeFem++的有限元并行计算

基于MPI+FreeFem++的有限元并行计算

基于MPI+FreeFem++的有限元并行计算摘要:有限元方法是一种灵活而高效的数值求解偏微分方程的计算方法,是工程分析和计算中不可缺少的重要工具之一。

在计算机技术的快速发展使得并行机的价格日益下降的今天,并行有限元计算方法受到了学术界和工程界的普遍关注。

讨论了基于MPI+FreeFem++的有限元并行计算环境的构建,阐述了在该环境下有限元并行程序的编写、编译及运行等过程,并通过具体编程实例,说明了MPI+FreeFem++环境下的有限元并行编程的简单和高效。

关键词:有限元方法;并行计算;MPI;FreeFem++0 引言有限元方法是20世纪50年代伴随电子计算机的诞生,在计算数学和计算工程领域里诞生的一种高效而灵活的计算方法,它将古典变分法与分片多项式插值相结合,易于处理复杂的边值问题,具有有限差分法无可比拟的优越性,广泛应用于求解热传导、电磁场、流体力学等相关问题,已成为当今工程分析和计算中不可缺少的最重要的工具之一。

有限元方法的“化整为零、积零为整”的基本思想与并行处理技术的基本原则“分而治之”基本一致,因而具有高度的内在并行性。

在计算机技术快速发展使得并行机的价格日益下降的今天,有限元并行计算引起了学术界和工程界的普遍关注,吸引了众多科研与工程技术人员。

但要实现有限元并行编程,并不是一件容易的事,特别是对于复杂区域问题,若从网格生成、任务的划分、单元刚度矩阵的计算、总刚度矩阵的组装,到有限元方程组的求解以及后处理,都需要程序员自己编写代码的话,将是一件十分繁琐的事情。

本文探讨了构建基于MPI+FreeFem++的有限元并行计算环境,在该环境下,程序员可避免冗长代码的编写,进而轻松、快速、高效地实现复杂问题的有限元并行计算。

1 FreeFem++简介FreeFem++ 是一款免费的偏微分方程有限元计算软件,它集成网格生成器、线性方程组的求解器、后处理及计算结果可视化于一体,能快速而高效地实现复杂区域问题的有限元数值计算。

MPICH2配置和使用

MPICH2配置和使用

MPICH2配置和使用2.配置MPICH2环境变量在安装完成后,需要配置MPICH2的环境变量,以便系统能够找到MPICH2的安装路径。

在Windows系统中,可以在系统属性的高级选项中设置环境变量;在Linux和Mac OS系统中,可以在.bashrc或.profile文件中添加相应的环境变量。

3.编写并行程序使用MPICH2进行并行计算需要编写并行程序。

MPICH2支持多种编程语言,包括C、C++和Fortran。

根据自己的编程语言选择合适的编程接口,例如MPI(消息传递接口)或OpenMP(多线程编程接口)。

根据并行算法和计算模型,设计并实现相应的并行算法。

4.编译并行程序在编写完并行程序后,需要使用编译器将程序源代码编译成可执行文件。

对于C和C++程序,可以使用gcc或g++编译器;对于Fortran程序,可以使用gfortran编译器。

编译时需要链接MPICH2的库文件,以确保程序能够调用MPICH2提供的并行计算功能。

5.运行并行程序在编译完成后,可以使用命令行或脚本来运行并行程序。

运行时需要指定并行程序的执行方式、计算节点的数量和计算节点的地址。

MPICH2提供了一系列命令和选项,用于控制并行程序的执行和调试。

可以通过命令行参数或配置文件来指定这些选项。

6.监测和调试并行程序在并行程序运行过程中,可以使用MPICH2提供的工具来监测和调试程序的运行状态。

MPICH2提供了一系列命令行工具和图形界面工具,用于查看程序的运行日志、性能指标和调试信息。

可以根据需要选择合适的工具,以便及时发现和解决程序中的问题。

mpi配置与

mpi配置与

登录注册mpi配置以及lammps并行安装Mpi配置与安装MPICH2是MPI(Message-Passing Interface)的一个应用实现,支持最新的MPI-2接口标准,是用于并行运算的工具,在程序设计语言上支持C/C++和Fortran。

最近因为有项目需要的计算量比较大,所以就学习使用了M PICH2,在此根据网络上查询的相关信息和我自己的实际使用经历,分别总结一下M PICH2在window s和linux下基本的安装使用方法。

软件下载MPICH2的主页是/mpi/mpich2/index.htm,在这个页面上就能找到各平台最新版本MPICH2的下载地址,其中还包括源代码,我在开始作这个项目的时候最新版本是windows版mpic h2-1.0.5p2,源代码mpic h2-1.0.5p4。

我们的项目是一个C entOS版linux下的程序,所以最终是要在linux下运行的,但是又舍不得windows,于是就打算可能的话就在windows下写程序,用M inGW加windows版的MPICH2编译调试,通过后再到wmware虚拟机组成的简单集群作测试。

所以,为避免不必要的麻烦,就要统一一下windows和linux下的MPICH2版本,而且不打算用最新的,因此决定用mpic h2-1.0.5版。

但是,如果在主页上找的话是没有以前旧版本下载的链接的(至少我没找到),只有最新版本的http和ftp下载。

这难不住我等有心之人,既然提供了ftp 下载,那咱就直接到他ftp服务器上找,最新源代码链接的地址是ftp:///pub/mpi/mpich2-1.0.5p4.tar.gz,把后面文件名去掉就应该是文件的ftp存放路径,把这个路径直接写到浏览器地址栏里回车(偶用的是FireFox2),就能看到他们服务器上这个目录的文件列表,里面就有1.0.5版的windows安装文件和源代码包,分别为ftp:///pub/mpi/mpich2-1.0.5-win32-ia32.msi 和ftp:///pub/mpi/mpich2-1.0.5.tar.gz。

并行编程环境设置和注意事项

并行编程环境设置和注意事项

并行编程环境设置和注意事项一.远程登陆服务器请同学们使用服务器分配的原始密码通过SSH工具登陆到实验集群的登陆节点:202.38.192.99,然后使用命令passwd对初始密码进行修改。

PS:Linux下密码不可见。

接着在自己的账号下使用命令mkdir命令建立2个目录:OpenMP,MPI用来存放不同实验数据和文档。

二.跳转计算节点本次实验除了LC的登陆头节点(202.38.192.99)还有4个计算节点,分别是C0-0,c0-1,c0-2,c0-3。

使用命令ssh可以从当前节点转到计算节点,例如ssh c0-1则可从当前节点转到计算节点c0-1,其他如此类推。

MPI实验在登陆节点上运行程序一定要加-nolocal或者-machinefile 参数,禁止使用登陆节点计算。

三.设置编译环境使用命令vi ~/.bash_profile设置环境变量,添加路径如下文,然后使用. ~/.bash_profile(注意~前有个点+空格)使设置生效,整个操作过程如下:[lp.zh@bl6000 ~]$ vi ~/.bash_profile# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then. ~/.bashrcfi# User specific environment and startup programsPA TH=/opt/mpich-1.2.7pl/bin:/opt/intel/Compiler/11.0/069/bin/ia32:$PA TH:$HOME/bin:/usr/sbin LD_LIBRARY_PA TH=$LD_LIBRARY_PA TH:/usr/lib:opt/mpich-1.2.7pl/lib/:/opt/intel/Compiler /11.0/069/lib/ia32export PA THexport LD_LIBRARY_PA THunset USERNAME[lp.zh@bl6000 ~]$. ~/.bash_profile然后使用which mpirun命令检测路径,如果屏幕显示/opt/mpich/gnu/bin/mpirun表明设置成功。

mpi

mpi
linux环境下MPI并行编程
Message Passing Interface—消息传递接口
与OpenMP并行程序不同,MPI是一 种基于信息传递的并行编程技术。消息传 递接口是一种编程接口标准,而不是一种 具体的编程语言。简而言之,MPI标准定义 了一组具有可移植性的编程接口。
1.MPi组成
• 数据类型
定义了精确的数据类型参数而不使用字节计数,以数据类型为单位指定 消息的长度; 对于C和Fortran,MPI均预定义了一组数据类型和一些附加的数据类型; 可以发送 或接收连续的数据,还可以处理不连续的数据;中的一个通信域定义了一组进程和一个通信的上下文,虚拟处理 器拓扑、属性等内容。它以对象形式存在,作为通信操作的附加参数。 MPI预定义的通信域:mpi comm world(包含所有进程)、 mpi comm self(只包含各个进程自己的进程组)
• MPI调用接口—6个基本调用
1.mpi init()初始化MPI执行环境,建立多个MPI进程之间的联系,为 后续通信做准备 2.mpi finalize 结束MPI执行环境 3.mpi comm rank用来标识各个MPI进程的,给出调用该函数的进程的 进程号,返回整型的错误值 两个参数:MPI_Comm类型的通信域,标识参与计算的MPI进程组; &rank返回调用进程中的标识号 4.mpi comm size用来标识相应进程组中有多少个进程
• 组通信—一个特定组内所有进程都参加全局的数据处理和通信操作
功能:通信—组内数据的传输 同步—所有进程在特定的点上取得一致 计算—对给定的数据完成一定的操作 类型:1)数据移动 广播(mpi bcast) 收集(mpi gather) 散射(mpi scater) 组收集(mpi all gather)全交换(all to all) 2)聚集 规约(mpi reduce)将组内所有的进程输入 缓冲区中的数据按 定操作OP进行运算,并将起始结果返回到root进程的接收缓冲区 扫描(mpi scan)要求每一个进程对排在它前面的进程进行规约 操作,结果存入自身的输出缓冲区 3)同步 路障(mpi barrier)实现通信域内所有进程互相同步,它们将处 于等待状态,直到所有进程执行它们各自的MPI-BARRIER调用

Linux环境下的MPICH

Linux环境下的MPICH

1.1.1Linux操作系统下的环境搭建1.1.1.1 l am-mpiMPI是一种消息传递编程模型,并成为这种模型编程的代表和事实上的标准。

MPI是一个库而不是一门语言,因此对MPI的使用必须和特定的语言结合起来进行,如科学与工程计算领域的FORTRAN语言、目前广泛使用的开发语言C等。

LAM(Local Area Multicomputer)是免费的MPI实现,由Ohio State University开发。

配置并行环境之前几点说明:1.安装Linux系统(RedHat 9.2)2.安装网卡驱动(因为实验室的机群系统dellPE2850服务器无法自动识别网卡,需要手动驱动网卡。

普通机器RH可自动识别其网卡的机器.网卡驱动在自带的Server Assistant 光盘中:)步骤:#cd /mnt/cdrom/pexxxx/network/r82795该文件夹下,有网卡驱动的压缩包,将其拷贝到 /root下,解压#tar -xzvf *进入解压后的文件夹:#cd /root/Intel_LAN_72_RHLinux_src_A00/e1000/e1000-5.2.17.10/src , #make install安装后,重起机器。

3.在重新启动过程中,系统会自动识别新硬件,此时需要对网卡的相关信息进行配置修改网络配置文件如下:1)修改文件 /etc/sysconfig/network-scripts/ifcfg-eth0 ,修改IP、网关等信息:DEVICE=eth0 设备名称BOOTPROTO=staticONBOOT=yesIPADDR=192.168.0.109 IP地址NETMASK=255.255.255.0 子网掩码NETWORK=192.168.0.0 可选写BROADCAST=192.168.0.255 可选写GATEWAY=192.168.0.1 网关2)配置DNS,需要修改 /etc/resolv.conf 文件nameserver 210.47.208.8 DNS服务器地址3)修改 /etc/sysconfig/network文件,指定主机名NETWORKING = yesHOSTNAME = node064)修改 /etc/hosts 文件,对主机名加以解释,加入:192.168.0.106 node06完成上面几步后,网络基本配置完成,此时需要重启机器,或重新开启网络服务:可以使用命令:#reboot 重启机器#service network restart 重新开启网络服务注:每台机器都配备两块网卡:eth0、eth1,如果网卡驱动、网络配置后网络仍然不通,需要关闭eth1,而只启用eth0。

安装和设置mpi并行环境

安装和设置mpi并行环境

安装和设置mpi并行环境3月31日,系统(主节点)因为安装mpich崩溃,开始重新安装系统和部署globus,此次安装决定先安装mpich,成功之后再按照globus。

经过反复试验,(花了不少心思去找版本问题,其实理论上mpich不应该有这么多版本问题的,猜想也有可能是之前与globus冲突所以系统崩溃了),觉得以下的版本是比较适合的,并且已经安装成功。

所以赶紧把这部分内容写下来备份,免得下次到处找。

安装之前请确认以下几件事:linux版本:redhat9.0,内核信息与之前相同所用mpich版本:mpich2-1.0.8安装之前,设置hostname和ip地址,与之前一样系统已经安装了gcc安装过程中使用root用户安装mpich步骤:1,创建SSH信任连接(在root目录下)(1)更改hosts文件,加入需要进行计算的机器#vi/etc/hosts打开hosts文件,更改如下:127.0.0.1 localhost.localdomain localhost 192.168.1.100 192.168.1.101 .(2)在生成SSH秘钥对//一路回车即可产生.ssh文件[root@chunli root]#ssh-keygen-t rsa Generating public/private rsa key pair.Enter file in which to save the key(/root/.ssh/id_rsa):Enter passphrase(empty for no passphrase):Enter same passphrase again:Your identification has been saved in/root/.ssh/id_rsa.Your public key has been saved in/root/.ssh/id_rsa.pub.The key fingerprint is:6c:61:a8:3f:a2:e0:9c:e7:8a:1b:49:76:a1:ce:e0:e9***************//查看是否有.ssh文件夹[root@chunli root]#ls-a..fonts.cache-1.gtkrc.recently-used..gconf.gtkrc-1.2-gnome2.rhn-applet.conf anaconda-ks.cfg.gconfd.ICEauthority.ssh.bash_history.gnomeinstall.log.tcshrc.bash_logout.gnome2install.log.syslog.viminfo.bash_profile.gnome2_private.metacity.Xauth ority.bashrc.gnome-desktop.nautilus.Xresources.cshrc.gstreamer.pyinput.xsession-errors(3)进入.ssh目录[root@chunli root]#cd.ssh(4)生成authorized_keys文件[***************]#cpid_rsa.pubauthorized_keys(6)建立本身的信任连接//按提示输入yes(三个字母要打全)[***************]#cd.[root@chunliroot]#The authenticity of host'(127.0.0.1)'can't be established.RSA key fingerprint is ec:c9:1c:5a:d6:98:5d:48:fd:7b:58:b3:b3:05:05:78.Are you sure you want to continue connecting(yes/no)?yes Warning:Permanently added''(RSA)to the list of known st login:Wed Mar 31 18:55:59 2010(7)设置第二个节点(grid1的root目录下)#ssh-keygen-t rsa生成.ssh文件夹//注意不要多键入空格从拷贝。

lammps单机并行计算配置方法

lammps单机并行计算配置方法

Lamps 单机多核并行计算方法1、修改环境变量编辑.bashrc 文件:cdvi .bashrc按Insert 键,移动光标至fi 下,在文件结尾处(fi 后)增加以下两行:export PATH=/opt/mpich/bin:$PATHexport LD_LIBRARY_PATH=/opt/mpich/lib:/opt/fftw/lib:$LD_LIBRARY_PATH按Esc,Shift+zz重启机器2、安装fftw获得fftw:wget /fftw-2.1.5.tar.gztar xvzf fftw-2.1.5.tar.gzcd fftw directory./configure --prefix=/opt/fftw --enable-floatmakesudo make install3、安装mpich2获得mpich;wget/research/projects/mpich2/downloads/tarballs/1.4.1p1/mpi ch2-1.4.1p1.tar.gzcd ..(退上去)tar xvzf mpich2-1.4.1p1.tar.gzcd mpich2-1.4.1p1./configure --prefix=/opt/mpichmakesudo make install4、Lammps编译Cd ~tar -xvzf lammps-6Dec12.tar.gz (注:必须有f 才能解压)cd lammps-6Dec12/src/MAKEvi Makefile.linuxcc= 改为mpic++link= 改为mpic++MPI_INC = -I/opt/mpich/include (添加,不删除原有内容)MPI_PATH = -L/opt/mpich/libMPI_LIB = /opt/mpich/lib/libmpich.a (不改动)FFT_INC = -I/opt/fftw/include (添加,不删除原有内容)FFT_PATH = -L/opt/fftw/libFFT_LIB = /opt/fftw/lib/libfftw.a (不改动)cd lammps6Dec2/srcmake yes-mcmake linux在src 文件夹内生成可执行文件:lmp_linux如果要修改Makefile.g++,方法如下vi Makefile.g++cc= 改为g++link= 改为g++MPI_INC = -I/opt/mpich/include (添加,不删除原有内容)MPI_PATH = -L/opt/mpich/libMPI_LIB = /opt/mpich/lib/libmpich.a (不改动)FFT_INC = -I/opt/fftw/include (添加,不删除原有内容)FFT_PATH = -L/opt/fftw/libFFT_LIB = /opt/fftw/lib/libfftw.a (不改动)EscShift+ZZcd lammps6Dec2/srcmake g++运行测试(在src 路径下):cp lmp_linux ../benchcd ../benchmpirun -np 4 ./lmp_linux < in.lj。

在Linux平台下基于MPI的并行PC集群搭建的实现

在Linux平台下基于MPI的并行PC集群搭建的实现
的 应 用 和 前 景 进 行 了展 望 。
关键词: 高性 能 计 算 : 行 P 集 群 ; I 并 C MP 中 图分 类号 : P 1 T 31 文献标识码 : A 文章 编号 : 0 9 3 4 (0 10 — 0 7 0 1 0 — 0 42 1 ) 1 0 3 — 2
The Re iaton o al z i fPar le a llPC us e Cl t rBas s o M PIi nux O S e n n Li
LI ing — a g U X a —g n
( mp t gCe tr T a j ie i f c n e T c n lg , i j 0 2 , hn ) Co ui ne, i 1nUnv r t o i c & eh o y T a i 3 0 2 C ia n I i sy S e o nn
I N 0 9 0 SS 1 0 -3 44
E— ah i o C C . t n m i nf@ C Cne. e ht /www. z .e .n tp: / dn sn tc Te h+8 6—5 一56 096 56 9 5l 9 3 90 64
C mp tr n we g n e h o g o ue o l ea dT c n l y电脑 知 识 技术 K d o
s ac e r h.Th pe i pl nto uc st haa trsisoft e cuse yse a PIa srbe e lz to o r l l e pa rsm y i r d e he c r ce tc h l t rs t m nd M i nd dec i sa r aiain fPa al PC u trBae e Cl se s s on M PIi nu S i ti n Li x O n deal n e m pl he m eosae nu e c w e t e e i t o lM M 5 i e e e .A xa e oft s cl m r  ̄ i ah rpr d ci on m de spr sntd,a he ts eu ti nd t e trs l s atc d a n l z d.Fi l ta he nd a ay e nal he cu tr’ p iai nd pr s csa epr osd. y,t l se sa pl t c onsa o pe t r op e K e o ds y w r :hih pef m a e c g ror nc om p ig;PC l t r utn cuse ;M PI

基于Linux与MPI的集群并行系统的实现

基于Linux与MPI的集群并行系统的实现

带来 可观 的性 能 , 组成 结构 如 图 1 示 . 其 所
层具体实现. 编程环境 可以为应用程序的开发提
供可 移植 的 、 效 的和 易用 的工 具 . 有 编程 环境 包 括消
息传递库 、 调试器和剖视器(r l ) po e . i f r 12 MP . I编程 模型 MI P 是一种并行程序 的消息传递编程模型 , 也 是一个库而不是一种语言. 简单地说 , 这个消息传递 接 口( P) 目的是为编写消息传递程序而开发 的 M I的
序实例设 计了一个 l u 集群 , ix n 并对 l u 集 群系统进行 了性能评测 . ix n 关键词 : 集群 ; 并行计算 ; P ; M I集群 中间件
中 图 分 类 号 : P 9 .2 T 3 30 文献 标 识 码 : A 文 章 编 号 :10 ・12 20 ) 1 0 90 077 6 (0 7 O - 2 - 0 4
图 1 集群典型体 系结构示意 图
广范使用的标准. 像这个接 口一样 , 应为消息传递建
立 一 个 实 际 的 、 移植 的 、 效 的和 灵 活 的标 准 . 可 有 本
从 图 1上 可 以看 出 , 型 的集 群 支持 各 类 的结 典
收 稿 日期 : 0 60 .4 2 0 -41
集群技 术 使 用 特定 的连 接 方 式 , 相 对 于超 级 将
点, 可用 的 有 工作 站 、C、MP服 务 器 、 至 超 级 计 P S 甚 算机 , 点 的操作 系统 是 多用 户 、 结 多任 务和 多线 程 的 系统 . 点彼 此 可 以是 同构甚 至是 异构 的 . 点 问 由 结 结
基 于 Ln x与 MP 的集 群 并行 系统 的 实现 iu I

UBUNTU环境下MPI并行环境搭建

UBUNTU环境下MPI并行环境搭建
mpirun -np 4 cpi 或者 mpirun -machinefile hosts -np 4 cpi (需在hosts文件中给出可用的机器名)
方法二:mpirun -p4pg pgfile cpi (允许有不同的名字和目录,其中pgfile的格式如下)
2.4 在客户端通过ssh登录服务器。假设服务器的IP地址是192.168.0.103,登录的用户名是hyx
ssh -l hyx 192.168.0.103
3.配置文件:
3.1 配置hosts文件
进入目录:etc/hosts
IP地址 机器名
3.2 配置hosts.allow
1.安装相应的编译器:
安装包文件:build-essential
2.安装SSH:
2.1 首先在服务器上安装ssh的服务器端
sudo apt-get install openssh-server
2.2 启动ssh-server
/etc/init.d/ssh restart
2.3 确认ssh-server已经正常工作
netstat -tlp
tcp6 0 0 *:ssh *:* LISTEN -
看到上面这一行输出说明ssh-server已经在运行了
IP地址 机器名
4.安装MPICH:
4.1 下载MPICH安装文件
4.2 将MPICH安装文件解压到相应的目录
tar xzvf filename
4.3 进入解压的安装文件目录
cd fileurl
4.4 配置MPICH
./configure -prefix=/usr/local/mpi(其中prefix后面的为mpich的安装目录)

linux并行环境及mpich2安装全过程

linux并行环境及mpich2安装全过程

linux并行环境及mpich2安装全过程准备工作:1、设置IP(在这里我们设置c1、c2、c3、c4的ip地址分别为192.168.0.1、192.168.0.2、192.168.03、192.168.0.4)#vi /etc/sysconfig/network-script/ifcfg-eth[0、1、2、3]其中数字与所修改的机器网卡实际编号一致#service network restart每个节点都要进行上面的操作2、更改主机名为c1、c2、c3、c4#vi /etc/sysconfig/networkHOSTNAME=c1c2、c3、c4操作和c1相同例如:[root@c2 ~]# cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=c2一、创建SSH信任连接(在root目录下)1、更改/etc/hosts文件#vi /etc/hosts 打开hosts文件,更改如下:127.0.0.1 localhost.localdomain localhost192.168.0.1 c1192.168.0.2 c2192.168.0.3 c3192.168.0.4 c4例如:[root@c2 ~]# cat /etc/hosts# Do not remove the following line, or various programs# that require network functionality will fail.127.0.0.1 localhost.localdomain localhost192.168.0.1 c1192.168.0.2 c2192.168.0.3 c3192.168.0.4 c42、在c1生成SSH秘钥对.#ssh-keygen -t rsa 回车即可,产生.ssh文件,口令选为空,生成密钥对,公钥写入/root/.ssh/id_rsa.pub,密钥写入/root/.ssh/id_rsa#ls -a 查看是否有.ssh文件夹3、生成authorized_keys文件建立对c2的信任连接#scp /root/.ssh/id_rsa.pub 192.168.0.2:/root/.ssh/#ssh 192.168.0.2 cat /.ssh/id_rsa.pub>>/root/.ssh/authorized_keys查看c2 是否有authorized_keys文件,有则将id_rsa.pub内容复制进c2该文件#scp /root/.ssh/id_rsa.pub 192.168.0.2 /.ssh/authorized_keys无则将id_rsa.pub复制为远程该文件4、退出到root目录#cd ..5、建立本身的信任连接#ssh c2 按提示输入yes(三个字母要打全)设置c1对c3和c4的方法与c1相同6、对c2、c3和c4进行类似上面的操作7、确认3台机器的信任连接已建立对每个节点执行:#ssh c1#ssh c2#ssh c3#ssh c4在提示处输入yes回车,最后确定无需输入密码并且没有任何提示信息即可登陆("Last login:时间日期"提示信息除外)二、安装MPICH2(在节点root目录下)1、解压缩#tar -zxvf mpich2-1.0.1.tar.gz或者 #gunzip -c mpich2-1.0.1.tar.gz|tar xf mpich2-1.0.1.tar2、创建安装目录#mkdir /usr/MPICH-install3、进入mpich2解压目录#cd mpich2-1.0.14、设置安装目录#./configure --prefix=/usr/MPICH-install5、编译#make6、安装#make install7、退出到root目录#cd ..8、通过编辑.bashrc文件修改环境变量#vi .bashrc修改后的.bashrc文件如下:# .bashrc# User specific aliases and functionsPATH=$PATH:/usr/MPICH-install/bin 新增加的#Source .bashrc9、测试环境变量设置#which mpd#which mpicc#which mpiexec#which mpirun10、修改/etc/mpd.conf文件,内容为secretword=myword#vi /etc/mpd.conf设置文件读取权限和修改时间#touch /etc/mpd.conf#chmod 600 /etc/mpd.conf11、创建主机名称集合文件/root/mpd.hosts#vi mpd.hosts文件内容如下:C1C2C3c4三、测试1、本地测试#mpd & 启动#mpdtrace 观看启动机器#mpdallexit 退出2、通过mpd.hosts运行集群系统#mpdboot -n number -f mpd.hosts number为要起动的机器个数#mpdtrace#mpdallexit3、测试运行MPICH的例子程序#mpdboot -n 4 -f mpd.hosts 启动4台机器#mpiexec -n number /usr/MPICH-install/examples/cpi number为使用的进程数#mpdallexit4、如果测试不能通过,请进行第四步四、问题解决1、通过mpdcheck获得一写帮助信息#mpdcheck -pc2、查错#mpdcheck -l3、通过mpd.hosts文件查错#mpdcheck -f mpd.hosts 如果无错误#mpdcheck -f mpd.hosts -ssh4、如果上述无错误,可略过此步对任意两台机器进行查错m1: #mpdcheck -s 输出主机名host和端口portm2: #mpdcheck -c host port注意:以上四步都是在没有运行mpd的情况下进行的5、mpd查错m1: #mpd -e & 返回使用的端口m2: #mpd -h m1 -p echoed_port_m1 &完成安装。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种计算环境。 (2)解压缩“pich一1.2.6压缩文件。gzip—d
MPI简介
MPI(Message
P鹪sing
“pich一1.2.6.tⅡ.f5z/(/表示enter键操作)。
(3)解包tar—xvfmpich—1.2.6/。 Inted如e)的定义是多种 (4)进人解压缩解包后的目录。cd 2.6/。 (5)安装mpich一1.2.6。在此我mpich—1.2.6
mpich—I.
多样的,但不外乎下面三个方面的内容,他们限定 了MPI的内涵和外延: (1)MPI是一个库,不是一种语言。按照并行 语言的分类,可以把在F0nraIl或c上实现的MPI 看作是在串行程序的基础上扩展后得到的并行语 言。MPI可以看作是Fortran或C语言的函数库的 调用,它遵守所有对库函数/过程的调用规则,与一 般的函数/过程调用没什么区别。 (2)MPI足一种规范或标准的代表,而不特指 某一个对它的具体实现。 (3)MPI足一种消息传递模型,并成为这种编 程模型的代表和事实上的标准。MH主要和最终 的目的都足服务于进程间通信。 MPIcH是一种重要的MPI实现,本文主要配置
行的并行程序的同一目录下)。
vi
co曲g/
进程名
0 1 l
小结
本文比较详细地叙述了在bnux环境下如何
其中文件的格式为: 主机名 比如:
hpcl hpcl hpcl /usr/home/p’og /usr/home/p’09
路径名
配置MPI,以实现多机的并行运行,或者单机情况
下以多进程来模拟多机并行计算。需要明确的是, 本文只是搭建了一个并行环境编写与运行的软件
一1.2.6/bin。
(8)检查安装是否成功。可以运行mpimn/ (安装成功会显示商ss
pmgmm
name的提示),或
者cd exa“ples/b∞ic/运行具体的实例检验。 至此,“pich—lr 2.6软件已经安装完成,但是 对于一个具体的程序,我们还是不能实现多机或者 多进程运行该并行程序,还需要进一步配置。 在c+MPI的环境下,MPI有两种运行方式: nIn一“p机器数目/,或者mpimn—p4pg/
1 cpi
(3)订hos协.allow/
格式为:机器名机器的用户名(为安全起见,建 议使用普通用户名) ∞ 比如:hpcl (4)vi hosts.equiv/。其中格式与ho啦.a110w 完全一样,可直接copy host8.allow中的内容。 5
cpiversion检验。
假设配置文件名为coIlfig(con堍放置在要运
的删cH的版本是mpich一1.2,6,它可以在http://
www—l|Ilix.IIlcs.anl.90v/mPi/mpich上免费获得。 3
“nux环境下的MPI的配置
・收到本文时间:2007年1月10日 作者简介:李璐,女。陈宝国,男。
lI】pi
万方数据
48
李璐等:基于“nux的MH并行环境的配置
中圈分类号T曰12

引言
并行处理技术是衡量一个国家综合国力的重
首先,从hctp://www—unix,Ⅱlcs.ard.印v/rTlp∥ mpich上下载mPich一1.2.6。在unux下一般其文件 的全名为mpich一1.2.6.tar.乎的打包压缩文件。 下面开始MH的具体配置步骤: (1)在Lin“的“系统设置”中“软件包”选项 中,选择”工程和计算“,去掉其中的lam选项。因
第35卷(2007)第ll期
计算机与数字工程
47
基于Linux的MPI并行环境的配置。
李璐”陈宝国2’
(安徽建筑工业学院数理系”合肥230601)(淮南师范学院数学系2’ 淮南232001)
摘要并行处理是一项重要的技术,简要介绍MPI的定义,详尽描述了在“nux环境下如何安装和配置M Pl,搭建并 行程序实现的软件平台,以达到多机并行计算,或者单机多进程模拟多机并行计算。 关键词MPI unux集群并行
下。./co面gLlre—p倘x=/usr/locaL,mpich一1.2.6,
其中带下划线的安装目录可以由用户自己指定。
(6)编译安装程序。make/。 (7)进入安装目录,配置编译的路径。vi bas}m文件或者编辑带pronle后缀名的文件,在这 些文件里添加PATH=¥PATH:/usr/locaL/mpich
他的进程名都为“1”。
万方数据
[2]都志辉.高性能计算并行编程技术一MPI并行程序设 计[M].北京:清华大学出版社,2000 [3]陈国良,并行计算一结构算法编程【M].北京:高等教 育出版社,2000 [4]http://www—uIIix.mc日.aIll.g叫/mpi/mpich
以实现在多台机器上实现多进程并行计算。
(3)进程名除了在本机指定一个“o”以外,其
要标志之一,而桌面超级并行计算机一Linux Pc集 群系统由于具有可扩展性好、成本低廉、高性能和 能够获得免费的Linux,PVM及MPI并行编程环 境等优点,从而特别适合我国国情。本文给出了如 何在Linux环境下配置MPI函数库,以实现并行程 序的编译与运行。 2
为lam是Linux下自带的、能与呻ich引起混淆的
另一台机器的目录,使操作更加方便。
其主要的实现步骤为: (1)启动集群中所有机器的tsh服务。 (2)cd/etc/
vi
machines.uNux/。在这个文件中加
入集群中所有机器的名称。比如,现在将集群中的 机器为hpcl,hpc2,hpc3,则在此文件中加入hpcl,
hpc2,hpc3,每个都占一行。 (4)将具体的并行程序如a1所在的目录(在
第35眷
配置文件名。前者是真正实现多机并行计算,后者 是在单机环境下实现多进程来模拟多机并行。本 文将详细介绍这两种命令格式的具体配置。 3.1配置一np的设置 (1)进入mpich一1.2.6的安装目录。 (2)cd util/IIlachines/。
(3)vi
4集群中实现rsh服务
为了方便并行程序在集群中的各个机器上的 运行、移植以及共享,可以将集群中的机器实现远 程登陆服务,这样可以方便用户在一台机器上访问
(2)不止可以在一个机器上模拟多进程,还可 以在多台机器上实现多进程。如在上述的例子中 还可以加入如“hpc2 l/usr/home/prog”的语句。
F0硼m[EB/OL].MPI:A吣.
sage—p鼬∞llg inkrf如e日诅ndafd.hd.J.0f S”Pe。∞m.
puter
Applicatiom.
此假设为/home)设置为rw可读可写权限。具体
hosts/
机器域名 别名
hpcl.sdu吐.edu.cn hpcl
格式为:IP地址 比如:192.168.130.16l
操作为:cd/etc/,“e。pon9/,添加“/home(程序
所在的目录)hpcl(rw)”,其中hpcl为并行程序所 在的主机名。 (5)运行“pimn—np 3.2配置一P4Pg的设置。
平台,对于具体的并行程序的编写以及调试在这里
不作任何阐述,相关的内容在另外的文章中将作进 一步的阐述。
参考文献 [1]M凹sage
P勰8jng】nter如啦e
/usr/hom∥p。og
其中需要注意以下几点: (1)例中pmg不是源文件名。若实现的是c
+MPI,源文件名为pmg.c,则prog是经过命令 mpicc—o prog prog.c/后的可执行文件名。
相关文档
最新文档