24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2475  |  回复: 9
当前主题已经存档。

huangyc

木虫 (正式写手)

[交流] 【求助】如何跨节点并行

RT。每个节点8CPU,若想跨节点并行,如一次使用16CPU,如何实现,谢谢

写脚本的话请详细点告诉我,我Linux基础不好
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

frank178

金虫 (正式写手)

★ ★
mingdong(金币+2,VIP+0):谢谢 4-29 07:30
这个啊,强烈建议楼主安装torque,相关的帖子到处都是。   如果要直接交互提交跨节点的任务,还要自己写machinefile等,一般都只是在集群刚刚构建好的时候,做调试用的。
2楼2009-04-28 16:22:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huangyc

木虫 (正式写手)

谢谢LS!

我们的节点都是分配下来的,不用排队管理软件,我也没有管理权限。这是否意味这能写machinefile等呢?这个东西怎么写啊,谢谢
3楼2009-04-28 17:59:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

frank178

金虫 (正式写手)

★ ★
mingdong(金币+2,VIP+0):谢谢! 4-30 06:47
抱歉,真的既不清楚了  好像是就是执行计算任务的计算机的名称各一行吧   就算是分配下来给你专用的,也还是装管理软件比较好。 我专用的一台工作站我也装了Torque,这样子可以一次性提交好多任务,过几天再看就是了,效率提高很多
4楼2009-04-29 16:21:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huangyc

木虫 (正式写手)

LS说的的确是一种好方法,可以提高效率。我这里一般是做批处理,但不知道装Torque后可不可以实现跨节点并行
5楼2009-04-30 08:55:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dirtor

木虫 (正式写手)


zeoliters(金币+1,VIP+0):感谢回复! 5-29 17:52
引用回帖:
Originally posted by huangyc at 2009-4-30 08:55:
LS说的的确是一种好方法,可以提高效率。我这里一般是做批处理,但不知道装Torque后可不可以实现跨节点并行

Torque可以实现
machinefile文件写起来也简单,如一次使用16个节点内容可以写
node1_hostname:8
node2_hostname:8


执行mpirun -machinefile machinefile文件名 -n Nprocess ur_program即可

[ Last edited by dirtor on 2009-4-30 at 09:35 ]
6楼2009-04-30 09:33:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huangyc

木虫 (正式写手)

谢谢dirtor
7楼2009-05-04 08:54:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjpm

金虫 (正式写手)


zeoliters(金币+1,VIP+0):感谢回复! 5-29 17:52
我都是直接写个shell脚步。
或许LZ需要看看怎么设置MPI环境才是
引用回帖:
Originally posted by huangyc at 2009-4-30 08:55:
LS说的的确是一种好方法,可以提高效率。我这里一般是做批处理,但不知道装Torque后可不可以实现跨节点并行

8楼2009-05-04 11:17:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wuli8

荣誉版主 (知名作家)

…………

优秀版主优秀版主


小木虫(金币+0.5):给个红包,谢谢回帖交流
简单组建linux集群及并行编译vasp过程

我们现在主要是用做高性能计算,下面就是我的集群的组建过程。
集群的硬件环境:做一个集群,节点机器的硬件最好相同,这样计算的效率就会高很多,同时组建集群也相对容易。以下是我的机器的配置情况(全新,组装)另外要说的是,我们的节点机没有配置显示器,全部工作由服务器完成。连接就是通过交换机连接,和一般局域网连接相同。
服务器:P4 3.2, 内存2 G ,硬盘:160G ,显示器 ,网卡:2个千兆网卡  (money:8千多)
节点(10台): P4 3.2, 内存:2 G, 硬盘:80G , 网卡:千兆网卡 (5千多每台)
华为24口千兆交换机(4千多)
集群软件环境:建一个简单的集群,其实并不难,主要配置nis,nfs,rsh,mpi就好了。推荐大家看一本书《微机集群组建、优化和管理》车静光著,机械工业出版社。我的集群,采用suse9.3,操作系统其实也很重要,这次试了很多操作系统,redhat9,rhas4无法识别网卡,rocks无法安装,如果硬件没有什么问题,建议大家可以试下rocks cluster这个集群系统,rocks集操作系统和集群于一体,安装完成并行环境就已经建立,而且还配备了pbs管理软件,非常简单,容易上手,只是我的硬件不太兼容,本来是想装rocks的,无奈,只有自己动手了。
Suse配置nis,nfs非常简单,因为suse强大的yast,就像window一样方便,只要鼠标轻点几下就ok。
1.Linux系统的安装,suse安装也非常简单,在此不想详细讲太多,主要是在分区的时候要注意,最要自己手动分区,对于服务器来说,最好能分一个独立的分区/home,因为节点机器要通过nfs共享服务器的/home。注意的是一下几个软件包一定要安装nfs(nfs-utils),nis(ypbind),rsh(rsh-server)。
2.基本的网络配置(通过yast的网卡配置)
服务器的:192.168.1.253     hostname:node0  域名:node0.cluster
节点机器:192.168.1-192.168.1.10    hostname:node1-node10 域名:node*.cluser
掩码:255.255.255.0
3.服务器的配置
3.1.Nfs设置
NFS(NetWork File System)是一种使用比较多的网络文件系统,它以它的安装容易,使用方便得到很多Linux爱好者的使用。在使用NFS时,我们把需要共享的分区或者文件按照一定的规范共享出去,想使用这个资源的机器使用mount 命令把共享的资源加载到自己的系统上,然后就可以像使用自己的本地文件系统一样方便。
进入图形yast-network-nfs server,之后开始配置, 点击add directory:之后设置两个共享目录, /home,/usr/local/,然后加入共享这两个目录的主机通配符192.168.1.0/255.255.255.0 rw,root_squash, sync。其实配置nfs就是修改/etc/exports 文件,你也可以直接修改成
/home/ 192.168.1.1/255.255.255.0(rw,root_squash,sync)
/usr/local 192.168.1.1/255.255.255.0(rw,root_squash,sync)
Ok,NFS就这样配置好了。
3.2 NIS的配置
     NIS(Network Information Service)是实现网络上各Linux机器之间的重要数据分享。这些数据包括用户帐号,密码,组文件,主机文件,等等。在集群中我们要做到单一的镜象就需要NIS的一些服务。比如我们不需要在每个节点上建立各自的用户,而是在master上建立一个用户以后,就同时在其它的节点上能够访问到这个用户。
下面是我的配置过程:
Yast-network-nis server-create nis master server之后填入nis domain name,就是域名,我们填node0.Cluster,之后一些信息一般选默认就可以了,之后要配置hosts:
netmask:255.255.255.255 network:127.0.0.1
netmask:255.255.0.0 network:192.168.0.0
ok,之后完成,进入/var/yp目录,执行make就最后完成nis的配置。注意的是如果你新建用户了,要注意执行make命令更新nis信息。
最后启动网络服务yast-network-start service进入设置,开启shell,login两项服务。
3.3 rsh的配置
注意修改这两个文件/etc/hosts /etc/hosts.equiv 所建立用户的.rhosts,这个文件和/hosts.equiv文件内容设置相同。
Hosts的文件信息,最后修改成:
127.0.0.1 localhost
192.168.1.253 node0.cluster  node0
192.168.1.1 node1.cluster node1
   
192.168.1.10 node10.cluster node10
Hosts.equiv:
Node0
Node1

Node10
把所有节点的信息输入到这两个文件,等节点机器的配置好后,你就可以用命令rlogin node*,登陆节点机器,这样就可以对节点机器进行操作了。
节点机器的配置
配置nis,nfs的情况基本和服务器类似,只是进入yast的时候选择的是nis客户端,和nfs客户端即可,这里不再详细说明。之后启动rsh服务,启动过程,编辑/etc/xinetd.d/rsh 将其中内容“disable=yes”改成“disable=no”,重新restart xinetd,激活rsh #chkconfig –level 345 rsh on
#/etc/rc.d/xinetd restart,这样就配置好rsh了,

Lam-mpi的编译安装使用。
(1)到lam-mpi官方网站www.lam-mpi.org下载最新的源代码,注意不要下载rpm格式的,要自己编译tar.gz格式的
(2)用“tar zxvf lam-7.1.1.tar.gz”解压
(3) 进入该目录配置编译信息(后面编译vasp中的makefile有)
./configure—prefix =/usr/local/lam-7.1.1 ――with CFLAGS=―O ―with –fc=ifort ―― with ―f77flags=―O ―without ―romio
几点说明,前面是配置lam-mpi的安装路径/usr/local/lam-7.1.1,指定的编译器是intel的fortran编译器ifort
(4)然后执行make进行编译,最后执行make install安装,ok成功安装lam-mpi
之后最好把/usr/local/lam-7.1.1/bin加入到搜索路径中,具体做法vi编辑/etc/profile找到
#make path more comfortable
#if test ………then
PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/usr/local/lam-7.1.1/bin
Ok, 这样就设置好路径了,注意的是服务器和节点机器都要设置,因为我们是通过nfs共享lam。之后新建一个文件,lamhosts,输入node0,执行lamboot - lamhosts
如果显示有lam的相关信息,那说明安装成功。
之后顺便说一下lam的使用的几个命令,注意执行lam不能在root下操作
1)新建一个文件,说明要使用并行计算的几个机器,vi lamhosts
加入你要计算的机器,比如node0 node1 node2 …每个机器一行
2) lamboot -v lamhosts 启动lam-mpi
3) mpirun - np * program   *为你运行机器的台数,progran为并行程序,在vasp中我就直接运行mpirun -np 10 vasp
4)运行结束,记得wipe -v lamhosts 释放机器,否则节点机器无法关机,我经常忘记执行这个命令,导致关机的时候无法正常关机.。
Ifc8.0并行vasp的编译(参考了本论坛的[转帖]VASP程序的编译(valenhou))
感觉vasp安装不同操作系统不同的版本情况有很大不一样,在suse中并行vasp4.6我编译不成功,并行vasp4.5成功,串行4.6也成功,在rhas4.0中串行vasp4.6无法成功编译,vasp4.5则没有问题,大家如果编译不成功的话,可以试试不同版本。下面讲讲我的并行编译。首先要安装好fortran的编译器ifc这个不详细讲了,重要是要配置好路径,节点机器也是同样问题,ifc可以通过nfs共享,节点机器只要设置好路径就好了。
1.下载数学库libgoto,我的是intel平台我下libgoto_prescott32p-r1.00.so,之后我把他放在vasp上一级目录/usr/local/lib中
2.解压vasp.4.5.tar.gz和vasp.4.lib.tar.gz,注意把vasp安装在usr/local的共享目录中
Tar zxvf vasp.4.5.tar.gz     tar zxvf vasp.4.lib.tar.gz
3. cd  vasp.4.lib
cp makefile.linux_ifc_P4 makefile
vi makefile 把当中的编译命令ifc改为ifort,在8.0中的命令是ifort不是ifc
之后执行make命令得到libdmy.a。
4. cd vasp.4.5
cp makefile.linux_ifc_P4 makefile
vi makefile 把前面第50行的FC=IFC部分用#注释掉,第80-82的cpp部分也注释掉
之后就是136行blas=/usr/local/lib/libgoto_prescott32p-r1.00.so -lsvml
LAPACK用139行vasp自带的lapack,
把第166行和167行有关FFT3D的行前加上注释号,如下面的
#FFT3D   = fft3dfurth.o fft3dlib.o
#FFT3D   = fftw3d.o fft3dlib.o   /opt/libs/fftw-3.0.1/lib/libfftw3.a
之后把202,203行mpi部分fc=mpif77的#去掉  
把212行有关CPP的行前的注释号去掉
把226和227行有关SCA的行,加上注释号
把239和243行有关FFT3D的行,改成如下的内容:
# FFT: fftmpi.o with fft3dlib of Juergen Furthmueller
FFT3D   = fftmpi.o fftmpi_map.o fft3dlib.o
# fftw.3.0.1 is slighly faster and should be used if available
#FFT3D   = fftmpiw.o fftmpi_map.o fft3dlib.o
/opt/libs/fftw-3.0.1/lib/libfftw3.a
把这些都修改后,保存,再make得到vasp的可执行程序,为了和串行区别之后我把vasp修改为vaspmpi,copy到/bin中去。这样就大功告成了。
…………
9楼2009-06-17 12:34:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wuli8

荣誉版主 (知名作家)

…………

优秀版主优秀版主

首先,安装和配置MPICH2
MPICH2是MPI(Message-Passing Interface)的一个应用实现,支持最新的MPI-2接口标准,是用于并行运算的工具,在程序设计语言上支持C/C++和Fortran。最近因为有项目需要的计算量比较大,所以就学习使用了MPICH2,在此根据网络上查询的相关信息和我自己的实际使用经历,分别总结一下MPICH2在windows和linux下基本的安装使用方法。


软件下载


MPICH2的主页是http://www-unix.mcs.anl.gov/mpi/mpich2/index.htm,在这个页面上就能找到各平台最新版本MPICH2的下载地址,其中还包括源代码,我在开始作这个项目的时候最新版本是windows版mpich2-1.0.5p2,源代码mpich2-1.0.5p4。我们的项目是一个CentOS版linux下的程序,所以最终是要在linux下运行的,但是又舍不得windows,于是就打算可能的话就在windows下写程序,用MinGW加windows版的MPICH2编译调试,通过后再到wmware虚拟机组成的简单集群作测试。所以,为避免不必要的麻烦,就要统一一下windows和linux下的MPICH2版本,而且不打算用最新的,因此决定用mpich2-1.0.5版。但是,如果在主页上找的话是没有以前旧版本下载的链接的(至少我没找到),只有最新版本的http和ftp下载。这难不住我等有心之人,既然提供了ftp下载,那咱就直接到他ftp服务器上找,最新源代码链接的地址是ftp://ftp.mcs.anl.gov/pub/mpi/mpich2-1.0.5p4.tar.gz,把后面文件名去掉就应该是文件的ftp存放路径,把这个路径直接写到浏览器地址栏里回车(偶用的是FireFox2),就能看到他们服务器上这个目录的文件列表,里面就有1.0.5版的windows安装文件和源代码包,分别为ftp://ftp.mcs.anl.gov/pub/mpi/mpich2-1.0.5-win32-ia32.msiftp://ftp.mcs.anl.gov/pub/mpi/mpich2-1.0.5.tar.gz 。msi文件不用多说,这是windows下安装用的,源代码包我们拿来在linux下用。


文档下载


还是主页上就有MPICH2的安装和使用指南文档,主要有三个,分别是User's Guide,Installer's Guide和Windows Developer's Guide,都down下来看看很有用的说。具体开发用的有关MPI标准的文档在MPI论坛的网站里都有,地址是http://www.mpi-forum.org/,我觉得最有用的是MPI-2: Extensions to the Message-Passing Interface。


Windows下的安装配置


我用的参与计算的系统都是WindowsXP Pro SP2,安装的过程没什么太特别的,一般就是默认就可以,只是其中有个地方要填一个什么passphrase,上面提示说所有系统都要用相同的passphrase,照做就是了,在所有参与计算的结点机器上都填一样的passphrase就好了。另外就是需要.net framework 2的运行环境。

默认安装的位置是C:\Program Files\MPICH2,下面的bin目录下是系统配置运行需要的程序,为了方便在控制台使用,可以把C:\Program Files\MPICH2\bin加到系统的PATH变量中去。Include是头文件,开发的时候用,lib是链接程序的时候用的库文件。Jumpshot下有个pdf的文档,干什么用的可以看看这个文档,我没仔细看,感觉我暂时还用不上。Examples下面是一个样本程序,就是一个用MPI计算圆周率的程序,分别有C,C++和Fortran版,C/C++的应该可以用VS2003以上版本打开。同时,安装程序还会自动向系统注册一个服务MPICH2 Process Manager,我们从控制面板-管理工具-服务里就能找到,这是管理运行MPI程序的一个服务,安装好后就是自动启动的,所以一般也就不用动它。

安装完毕后开始菜单-程序中就添加了一个MPICH2目录,其中就有上面提到的Jumpshot,另外wmpiconfig.exe是用来配置运行环境的,我在网上有找到的说明都是以前旧版本的,和现在的差别比较大,感觉这新版本用的不爽,没搞明白这个程序该咋用,不过好像默认状态下不改什么就能正常使用,所以也就不管它了。wmpiregister.exe则是用来注册用户的,使用MPI之前需要在这个程序里注册一个系统里已经存在的用户,而且这个用户必需拥有管理员权限,拥有运行我们安装了的MPI系统的能力。比如我就在所有参与运算的机器上添加了一个管理员mpi,密码也是mpi。

接下来,我们就可以开始试着运行一下MPI的程序了。就用examples目录下面的那个计算圆周率的程序。如果要多机并行计算的话,就需要在所有机器上的相同位置放置要运行的程序,我的情况就是在所有机器的C盘下建了一个mpiexe的目录,并把cpi.exe拷到所有机器的这个目录下。然后,在其中的某台机器上进入控制台(运行MPI程序其实也可以用开始菜单的MPICH2下的wmpiexec.exe,这是个gui程序,但是我觉得用的不爽,不如直接在控制台下敲命令来得灵活),敲下命令mpiexec -hosts 2 192.168.10.142 192.168.0.23 c:\mpiexe\cpi.exe。mpiexec是安装目录下bin目录里的一个程序,在本文的例子中就是C:\Program Files\MPICH2\bin\mpiexec.exe,因为刚才说了,我把这个地址加入到PATH里了,所以可以在任何地方直接执行,它是用来启动MPI程序的,-hosts参数说明是启动多台机器并行运算,后面跟着的2就是说要在两台机器上执行程序,再后面的就是那两台机器的ip地址,其中第一个就是我启动程序的机器,当然,这个地方也可以写机器名,只要它的机器名能被正常的解析就可以,最后面的就是要运行的程序,也就是刚才提到的所有机器都要在相同位置放置的那个MPI程序。如果只是在本机运行,则命令为mpiexec –n 2 cpi.exe,­-n表示是在本地运行,后面的2表示启动的进程数。程序运行后就会提示让你输入一个数字intervals,这个数字影响计算的精度,值越大精度越高,当然计算时间就越长了,然后程序会打印出计算的结果和花费的时间。

比如,我使用单机单进程运行,intervals设为99999999,耗时1.253849秒,而用两台机器双进程则只有0.628954秒,明显快很多,并行运算还是很有效果的。不过,如果我们把intervals改为9999,单机运行只用了0.000279秒,而两台机器却花了0.001548秒,这是因为并行运算过程中,参与运算的机器需要通过网络传递一些消息,如果计算量不大的话,花在了这上面的时间影响会比较明显,因而反不如单机版的来得快。

到现在我们的MPI运行环境就基本安装好了,当然,MPI还有很多其他的命令参数,只不过最常用估计也就这两条了,其他的用得着的时候就去查上面提到的文档,里面有比较详细的介绍。另外,如果按照以上的介绍进行安装配置,在运行多机并行MPI程序的时候却出现连接错误的话,八成是因为网络的问题,看看你的防火墙是不是开着,打开相应的端口,或者干脆关掉防火墙就好了。



Linux下的安装配置和单机运行

Linux下的操作要相对来说麻烦一点,这个麻烦从安装开始,呵呵。我用的系统是CentOS4.4,装在VMware Workstation里的,一共装了两个虚拟机,环境基本上完全一样。为运行MPI在两台虚拟机都创建了一个用户mpi,密码也是mpi,home路径也都是/home/mpi,然后继续都创建了一个目录/home/mpi/mpich2用来作MPI运行环境的安装路径,一个/home/mpi/mpich2/src来存放编译用的源代码。然后将源代码包mpich2-1.0.5.tar.gz下载到两台机器上,都解压缩到/home/mpi/mpich2/src中,然后到/home/mpi/mpich2/src下,指定安装路径,

./configure -prefix=/home/mpi/mpich2

make

make install

几分钟后安装完毕。需要提一下的是,我曾经试着用root用户来安装MPICH2,但是安装后好重启系统就出了问题,所以建议还是另外建个用户来装吧(ubuntu干脆就把root给禁了,不让你直接用root)。

       安装后/home/mpi/mpich2下多出来一些目录和文件,要比windows多,lib是库文件,include是头文件,bin还是程序文件,所以还是要写到环境变量里,可以用命令export PATH /home/mpi/mpich2/bin:$PATH,但我是用root用户直接在/etc/profile最后面加了这么一句export PATH=/home/mpi/mpich2/bin:$PATH,一劳永逸。

       MPI应用一个管理器来管理运行MPI程序,这个管理器就是mpd,但是在正式开始运行mpd前还需要一个基于安全考虑的配置文件,.mpd.conf,这个文件是要放在运行程序的用户的home目录下,本例子中就是/home/mpi/.mpd.conf,而且这个文件只能由这个用户读写,创建文件的命令是,

cd $HOME

touch .mpd.conf

chmod 600 .mpd.conf

然后在文件中写入这么一行,secretword=***,***在参与计算的计算机上必需完全一致。如果是root用户的话,这个文件应该是/etc/mpf.conf。

       然后,我们就可以启动mpd管理器了,直接在控制台下使用mpd命令,或者是mpd &,让mpd在后台运行,若关闭启动的mpd,只需要命令mpdallexit即可。在启动mpd之后就可以运行MPI应用程序了,执行命令与windows下类似,如我们仍然是测试一下examples里的cpi程序可以这样来作,

cd ~/mpich2/examples

mpiexec -n 1 ./ cpi

参数含义同windows下的单机运行命令。另外,启动mpd后还可以用命令mpdtrace来察看当前运行的mpd情况。


SSH配置和多机并行

MPI的多机并行是用mpdboot来管理启动的,是由参与计算的其中一台机器通过mpdboot同时启动其他机器上的mpd管理器并运行相应MPI程序的,所以,需要赋予运行mpdboot的机器执行其他机器上程序的能力。MPICH2支持通过ssh和rsh来做到这一点,其中ssh是默认的,而且其安全性也优于rsh,因此,我在项目中是用的ssh。

       首先,我们需要修改所有机器上的/etc/hosts文件,在里面添加上参与计算的机器名和ip地址,比如本文中有两台机器参加的例子里,hosts文件应当为:

127.0.0.1 localhost.localdomain localhost

192.168.10.142 node0

192.168.10.23 node1

这里的意思是说,主机名为node0的机器ip地址为192.168.10.142,主机名为node1的机器ip地址为192.168.10.23。


当然,其实这一步也可以跳过,因为我们也可以在操作过程中直接使用ip地址,只不过那样不太方便。另外就是,有些机器默认情况下第一行可能包括本机的主机名,比如在ip为192.168.10.142的node0上,hosts文件第一行是

127.0.0.1 localhost.localdomain localhost node0

这样可能会使得mpdboot工作不正常,所以还是最好给成上面的那种形式。

       第二步是创建ssh密钥,命令行下:

#ssh-keygen -t rsa

-t rsa指的是密钥类型,具体请察看ssh相关资料,这里不多说。这样就在当前用户的home目录下生成了一个.ssh目录,本文中的就是/home/mpi/.ssh。

       第三步,将/home/mpi/.ssh下的id_rsa.pub文件拷贝改名为authorized_keys,即

#cp id_rsa.pub authorized_keys

       第四步,在其他所有机器上进行以下操作。

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

#scp node0的IP:/home/mpi/.ssh/* ~/.ssh           拷贝node0上的.ssh文件夹覆盖本地的

       第五步,在所有机器上建立与自己和所有其他机器的信任连接。

对每个节点执行:

#ssh node0

#ssh node1

根据提示键入yes即可。然后就可以在不需要用户名密码的情况下通过ssh登陆其他机器了,比如在node0上#ssh node1,

就可以直接进入node1。

       接下来,在启动mpdboot的机器上创建一个参与计算的host列表文件,如文件mpd.hosts,每行是一个主机名,创建过程如

#cd ~

#touch mpd.hosts

#vi mpd.hosts

nod0

node1


现在,就可以启动运算集群了

#mpdboot -n 2 -f mpd.hosts

-n表示要启动的机器个数,一般是不大于mpd.hosts文件中的机器数,比如本文中的例子就是两台机器。这样,列表中的机器就会启动其本机上的mpd管理器。

       然后,就可以开始运行MPI程序,进行运算了,同windows下一样,程序需要放在每台机器上的相同位置(如果用NFS就只需在一台机器上放置程序,其他机器作映射就行),比如都是程序/home/mpi/mpich2/examples/cpi,在运行mpdboot 的结点机器上:

#mpiexec -n 2 /home/mpi/mpich2/examples/cpi

-n表示要启动的进程个数,一般是不大于mpd.hosts文件中的机器数(或者cpu核心数?偶用的机器就是双核的了,所以单机的时候双进程比单进程效率好很多,但是三进程就不行)。

Mpd在运行过程中,可以通过mpdtrace显示参与计算的机器名,mpdtrace –l则是显示机器名以及其端口。
…………
10楼2009-06-17 12:34:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 huangyc 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见