mpich2配置.docx

上传人:b****6 文档编号:7282116 上传时间:2023-01-22 格式:DOCX 页数:25 大小:26.18KB
下载 相关 举报
mpich2配置.docx_第1页
第1页 / 共25页
mpich2配置.docx_第2页
第2页 / 共25页
mpich2配置.docx_第3页
第3页 / 共25页
mpich2配置.docx_第4页
第4页 / 共25页
mpich2配置.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

mpich2配置.docx

《mpich2配置.docx》由会员分享,可在线阅读,更多相关《mpich2配置.docx(25页珍藏版)》请在冰豆网上搜索。

mpich2配置.docx

mpich2配置

CompaqVisualFortran6.5环境下配置MPICH2

1先下载稳定版本的mpich2-1.0.7rc2-win32-ia32.msi安装程序。

下载地址:

http:

//www.mcs.anl.gov/research/projects/mpich2/

2安装mpi至默认目录C:

\ProgramFiles\MPICH2(此过程要去微软官方下载vcredist_x86.exe软件)

3运行开始>程序>MPICH2>wmpiconfigure.exewmpiregister,进行注册,这里填写Windows系统的用户名和密码,最好这个用户是有管理员权限的用户,写好帐号和密码后,点register。

4运行开始>程序>MPICH2>wmpiconfigure.exe,这个窗口是设置连入并行系统的控制端,点applyall。

5打开CompaqVisualFortran6.5

选择tools>options>directories……,分别在showdirectoriesfor下拉菜单中选择LibraryFiles和IncludeFiles,然后分别添加路径

C:

\ProgramFiles\MPICH2\lib

C:

\ProgramFiles\MPICH2\include

这个地方或者干脆把MPICH安装目录下的lib文件夹中的所有文件全部复制到\MicrosoftVisualStudio\DF98\LIB中,同时把MPICH安装目录下的Include文件夹中的所有文件全部复制到\MicrosoftVisualStudio\DF98\INCLUDE

6进入CompaqVisualFortran6.5测试第一个程序

先建立一个Project(项目),选择FortranconsoleApplication,Project(项目名称)假定为Testmpi(注意保存的位置),然后点击OK,出现的对话框中选择Anemptyproject,点击Finish,点击OK.

7.设置环境变量:

点击菜单Project->Settings...,(或者按alt+F7)进行下面操作:

I)在settingfor中,选择Win32debug;

II)选择Fortran标签,进行下面操作:

i)在Category一栏中选择“ExternalProcedures”;

ii)在“ArgumentPassing”一栏中选择“C,ByReference”;

iii)在“StringLengthArgument”一栏中选择“AfterAllArgs”;

III)选择Link标签,进行下面操作:

i)在Category一栏中选择“General”;

ii)在Object/librarymodules中,添加fmpich2.libfmpich2s.libfmpich2g.lib,各库文件间用空格分开;

最后应显示为kernel32.libfmpich2.libfmpich2s.libfmpich2g.lib

这个地方参照mpich自带的文档

ForVisualFortran6usefmpich2s.lib:

·fmpich2.libcontainsallcapscdecl:

MPI_INIT

·fmpich2s.libcontainsallcapsstdcall:

MPI_INIT@4

·fmpich2g.liborfmpich2g.acontainlowercasecdecl:

mpi_init__

IV)在settingfor中,选择Win32release;

V)重复II)、III)的操作(参考了MPICH2安装目录下的README.winbin.rtf设置)

VI)点击OK。

点击菜单File->SaveFortranEnvironment;

点击SaveEnvironment按钮,即保存一个新的环境(给一个名称mpich2)

8由于fortran有77和90两种格式,下面分别配置

77下,要在C:

\ProgramFiles\MPICH2\include下mpif.h下修改三个地方,1-8行的!

改成c(77和90的注释符号不一样),400行(KIND=8)去掉,415-417行前的!

改成c,写程序时加上include'mpif.h'

90下程序前加上usempi就可以了

8至此,配置工作都做完了,可以写程序编译了,生成可执行文件.exe。

运行开始>程序>MPICH2>wmpiexec.exe来运行程序。

第10章 MPICH的安装与MPI程序的运行

本章对MPI的一个最成熟和最广泛使用的版本MPICH进行介绍

包括MPICH在两种典

型的操作系统Linux和NT上的安装MPI程序的编译和运行读者可以按照本章介绍的方法

安装MPICH并且在该实现下编写和运行各种MPI程序

MPICH是MPI的一种具体实现该实现可以免费从网上下载MPICH的开发与MPI规范

的制订是同步进行的因此MPICH最能反映MPI的变化和发展

MPICH的开发主要是由ArgonneNationalLaboratory和MississippiStateUniversity共同完

成的在这一过程中IBM也做出了自己的贡献但是MPI规范的标准化工作是由MPI论坛

完成的

10.1Linux环境下的MPICH

10.1.1安装

¬MPICH软件包的下载

根据自己及其配置的不同

可以下载不同的软件包

名字分别是mpich.tar.gz和

mpich.tar.Zmpich.tar.gz需要用gunzip来解压

可以通过浏览器下载网址是http:

//www.mcs.anl.gov/mpi/mpich/

也可以通过匿名ftp下载ftp:

//ftp.mcs.anl.gov/pub/mpi和ftp:

//ftp.mcs.anl.gov/pub/mpisplit其

中ftp:

//ftp.mcs.anl.gov/pub/mpisplit是将文件拆开使用者可以分别下载小的片段然后通过cat

命令将它们拼接在一起

-将软件包解压

通过如下命令

tarzxvfmpich.tar.gz

gunzip–cmpich.tar.gz|tarxovf–

zcatmpich.tar.Z|tarxovf–

uncompressmpich.tar.Z

tarxvfmpich.tar

®进入解开的mpich子目录

cdmpich

有些包带有版本信息如1.1.11.1.2等

¯创建Makefile和编译

./configure

也可以加prefix指出安装的位置./configure–prefix=/usr/local/mpich-1.2.1

make

其中的configure命令完成MPI的自动配置而make对MPI进行编译

80

°测试安装是否正确

cdexamples/basic

makecpi

../../bin/mpirun–np4cpi

或者直接在$(HOME)/mpich下运行

maketesting

±将mpich安装到指定的目录

makeinstall

其中安装位置由配置时prefix指定

10.1.2主要目录介绍

$HOME/mpich-1.2.1/MPI-2-C++

mpich对C++的支持部分

$HOME/mpich-1.2.1/bin

mpich的执行脚本

$HOME/mpich-1.2.1/doc

mpich的相关文档

$HOME/mpich-1.2.1/examples

mpich自带的例子程序

$HOME/mpich-1.2.1/f90modules

mpich对Fortran90的支持

$HOME/mpich-1.2.1/include

mpich的头文件

$HOME/mpich-1.2.1/lib

mpich的可联接库

$HOME/mpich-1.2.1/man

mpich的参考手册

$HOME/mpich-1.2.1/mpe

mpich的扩展部分

$HOME/mpich-1.2.1/mpid

mpich对不同设备的支持

$HOME/mpich-1.2.1/romio

mpich对并行I/O的支持部分

$HOME/mpich-1.2.1/share

通过upshot或jumpshot查看的例子

$HOME/mpich-1.2.1/src

mpich的可移植源程序

$HOME/mpich-1.2.1/util

mpich应用程序

$HOME/mpich-1.2.1/www

通过浏览器访问的mpich参考手册

下面介绍对于一个已经设计好的MPI程序如何对它进行编译运行查看结果等

81

10.1.3编译命令

mpiCC/mpicc/mpif77/mpif90

mpiCC编译并联接用C++编写的MPI程序

而mpicc是编译并联接用C编写的MPI程序

mpif77和mpif90分别编译并联接用FORTRAN77和Fortran90编写的MPI程序

这些命令在联

接时可以自动提供MPI需要的库并提供特定的开关选项

程序常用的编译选项是

注意mpiCC不能不能用于编译C

-mpilog

产生MPE的log文件

-mpitrace产生跟踪文件这样在该MPI程序执行时会打印出其运行踪迹信息

但是它和-mpilog在编译时不能同时存在只能二者选一

-mpianim产生实时动画

-show

-help

-echo

显示编译时产生的命令但并不执行它

给出帮助信息

显示出当前正在编译联接的命令信息

此外它们还可以使用一般的C++/C/FORTRAN77/Fortran90通用的选项

含义和原来的编译器

相同

10.1.4执行步骤

MPI程序一般被称为SPMDSingleProgramMultipleData程序即相同的程序对不同

的数据进行处理

当然用MPI也可以编写出MASTER/SLAVER类的具有明显主从关系的程

MPI源程序

支持MPI的C或FORTRAN编译器

可执行MPI程序

将可执行程序拷贝到各个结点机

结点机1

结点机2

各结点机上的MPI程序并行执行协同完成

给定的任务

结束

图37MPI程序的执行过程

82

结点机N

MPI程序的执行步骤图37一般为

¬编译得到MPI可执行程序

若在同构的系统上执行则只需编译一次若系统是异构的则在每一个异构的系统上

都需要对MPI源程序进行编译

-将可执行程序拷贝到各个结点机上

对于编译得到的可执行程序将它拷贝到将要运行的各个结点机上

®通过mpirun命令并行执行该MPI程序

10.1.5放权

为了能够在多个不同的机器上运行MPI程序首先需要其它机器对启动MPI程序的机器

放权即允许启动MPI程序的机器能够访问其它的机器主要有两种方式一种是在其它所

有机器的/etc/hosts.equiv文件中加入启动MPI程序的机器名比如将要在tp5这台机器上启动16

个MPI进程

用到的机器分别是tp1,tp2,...,tp16则需要在tp1,...,tp16机器上的/etc/hosts.equiv

文件中都加入一行

tp5

这样就表示其它的机器都允许tp5进行访问为了在一台机器上同时运行多个进程

在启动

进程所在的机器的/etc/hosts.equiv文件中也要加入自身的机器名如果/etc/hosts.equiv文件

不存在则需要自己创建它

另一种方式是通过.rhosts文件来放权即在MPI程序所要用到的各个机器上在运行该

程序的帐户的home路径下创建一个.rhosts文件在该文件中写上允许那些机器的那些帐户对

自己的帐户进行访问比如在tp1机器的pact帐户下它允许tp5的pact帐户对它进行访问则

需要在tp1机器上的pact帐户的home下创建一个.rhosts文件该文件加入一行

tp5pact

为了简单起见最好在各个机器上都建立相同的帐户名使得MPI程序在相同的帐户下

运行

10.1.6运行命令和配置文件

最简单的MPI运行命令是

mpirun–npNprogram

其中N是同时运行的进程的个数program是可执行MPI程序名以这种方式进行执行

需要首先对可用的机器进行配置配置文件是$(HOME)/mpich/util/machines/machines.LINUX

在这个文件中每一行写上可用的机器名比如

83

这样就有6台机器可供MPI使用使用这种方式启动时

可执行程序必须放在不同机器的相

同帐户的相同路径下比如在上$(HOME)/mpich/examples/basic/下运行

mpirun–np6cpi

则需要在{tp1,tp2,tp3,tp4,tp8}上的$(HOME)/mpich/examples/basic/下都有该cpi程序

如果不使用缺省的配置文件

则需要在命令行给出配置文件

该配置文件的格式和

mashines.LINUX相同比如

mpirun–machinefilehosts–np6cpi

只需在hosts中给出可使用的机器名字即可

还有一种更为灵活的配置方式它允许可执行程序有不同的名字有不同的路径它的

启动方式是

mpirun–p4pgpgfilecpi

它的配置文件pgfile的格式如图38所示

<机器名>

<机器名>

<机器名>

<进程数>

<进程数>

<进程数>

<程序名>

<程序名>

<程序名>

图38配置文件的通用格式

需要多少机器就写几行注意在这种启动格式中不需要指出启动多少个进程进程数由

配置文件指定一种可能的格式如图39所示

tp5

tp1

tp2

tp3

tp4

tp8

0

1

1

1

1

1

/home/pact/mpich/examples/basic/cpi

/home/pact/mpich/examples/basic/cpi

/home/pact/mpich/examples/basic/cpi

/home/pact/mpich/examples/basic/cpi

/home/pact/mpich/examples/basic/cpi

/home/pact/mpich/examples/basic/cpi

图39配置文件示例

注意第一行的0并不表示在tp5上没有进程这里0特指在tp5上启动MPI程序的执行

mpirun是MPI程序的启动脚本它可以简化作业的启动程序并且尽可能把不同的设备

特征屏蔽掉提供给用户一个通用的MPI并行机的概念

MPI程序的一般启动方式是

84

mpirun-np

一般MPI会自动决定使用什么样的设备和什么样的结构若MPI无法决定则可以通过

选择开关指定可用的设备选项有

chameleon(包括chameleon/pvm,chameleon/p4,...)

meiko

(使用meiko设备)

paragon(paragon上的ch_nx设备)

p4

(工作站机群上的ch_p4设备)

ibmspx(IBMSP2上的ch_eui)

anlspx(ANLsSPx上的ch_eui)

ksr(KSR1和2上的ch_p4)

sgi_mp(SGI多处理器上的ch_shmem)

cray_t3d(CrayT3D上的t3d)

smp(SMPs上的ch_shmem)

execer

(一个定制脚本目前还不稳定)

对于MPI无法识别的选项它将抛弃完整的MPI运行方式为

mpirun[mpirun_options...][options...]

-arch指明结构信息在${MPIR_HOME}/util/machines下有对应的

machines.文件

-h帮助信息

-machineusestartupprocedurefor

-machinefile列出可选的机器

-np指出运行需要的处理器个数

-nolocal不在本地机运行

-stdinfilename用给定的文件名作为标准输入

-t用于测试只显示执行的命令而不实际运行它

-v尽可能显示详细的信息

-dbx在dbx下启动第一个进程

-gdb在gdb下启动第一个进程

-xxgdb在xxgdb下启动第一个进程

-tv在totalview上启动

针对NEC-CENJU-3的特殊选项有

-batch作为批处理作业执行

-stdoutfilename用指定的文件名作为输出

-stderrfilename用指定的文件名作为标准输出

针对Nexus设备的特殊选项有

-nexuspgfilename用给定的文件作为配置文件

并且使-np-nolocal无效

自动选

择-leave_pg

-nexusdbfilename使用Nexus给定的资源数据库

针对工作站机群的特殊选项有

-e用execer来启动程序

-pg用配置文件来启动一个p4程序而不是execer

-leave_pg运行结束后不删除P4配置文件

-p4pgfilename用指定的进程组配置文件而不是临时创建一个使得-np和-nolocal

85

无效自动选择-leave_pg

-tcppgfilename使用指定的tcp进程组配置文件而不是临时创建一个使得-np和-

nolocal无效自动选择-leave_pg

-p4ssportnum使用p4安全服务程序来启动该程序

该服务器使用的端口号为

num如果num=0则使用环境变量MPI_P4SSPORT的值该服务器可以加速进程的启动

如果设置了MPI_USEP4SSPORT和MPI_P4SSPORT的值其效果就如同-p4ssport0

针对批处理环境的特殊选项

-mvhome将可执行程序移到home路径下

-mvbackfiles将指定的文件移到当前路径下

-maxtimemin以分钟为单位的最大运行时间

-nopoll不使用查询模式进行通信

-memvalue每个结点需要的内存

-cputime硬件CPU约束时间

针对IBMSP2的特殊选项

-cacname指定ANL调度期

针对IntelParagon的特殊选项

-paragontypename选择递交作业的方式

-paragonnamename指定运行作业的远程shells的名字

-paragonpnname在Paragon上运行部分的名字

异构系统上的运行

通过指定多个-arch-np参数对可以在不同的结构上协同运行一个MPI程序比如利用

本地机sun4和另一个机器rs6000同时执行一个程序在sun4上启动2个进程在rs6000上启动

3个进程则启动命令为

mpirun-archsun4-np2-archrs6000-np3program

如果不同机器上的程序名字不同

比如sun4上的程序名字是program.sun4rs6000上的

机器名字是program.rs6000则可以用%a代替机器名

mpirun-archsun4-np2-archrs6000-np3program.%a

如果执行程序的存放路径也不相同比如分别存放在

/tmp/me/sun4和/tmp/me/rs6000下则启动命令为

mpirun-archsun4-np2-archrs6000-np3/tmp/me/%a/program

10.1.7其它可执行命令

mpiman

启动MPI的手册帮助程序它提供两种显示方式一种是UNIX的man方式一种是通过

Web的HTML格式缺省情况下

mpiman使用xman,即X窗口系统的手册帮助浏览器来阅

读各个帮助页面其它的开关选项是

-xmosaic指定使用xmosaicWeb浏览器

-mosaic指定使用mosaicWeb浏览器

-netscape指定使用netscapeWeb浏览器

-xman

-man

指定使用X窗口系统的xman手册浏览器

指定使用manprogram(比如mpiman-manMPI_Send)

mpireconfig

86

根据模板文件产生make文件

它可以根据特定MPICH的配置将模板中的变量替换为

合适的参数形成所需要的make文件

命令格式是

mpireconfigfilename

filename是将要产生的文件名但是相应的filename.in文件必须是已经存在了的

10.2WindowsNT环境下的MPICH

这里介绍的NT上的MPICH版本是MPICH.NT.1.2.0.4该版本支持tcp/ip,共享内存和VIA

连接同一个机器上的进程间通信是通过共享内存队列实现的而不同机器上的进程间通信

是通过sockets或VI实现的

本包可以用MSVisualC++6.0和DigitalFortran6.0编译使用其它的FORTRAN编译器

需要修改编译选项动态连接库包括MPIPMPI调用的C和FORTRAN实现

10.2.1安装

从ftp:

//ftp.mcs.anl.gov/pub/mpi/nt/mpich.nt.1.2.0.4.all.zip下载该压缩包解压后执行setup命

便会将MPICH自动安装到NT上

缺省安装路径是c:

\ProgramFiles\ArgonneNational

Lab\MPICH.NT.1.2.0.4

安装的内容包括

l

l

l

l

运行时动态连接库

MPI程序的启动程序launcher

若需编译MPI应用则需安装sdk

源程序树是可选的

10.2.2编译

首先是C/C++程序的编译

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1