字体:  

请教单机服务器上安装mpich的问题

cxc 发表于: 2009-1-05 17:31 来源: 动力社区

大家好,有个关于在服务器上安装mpich的问题想请教一下各位:
    小弟有一台Dell PowerEdge 2900 服务器,这台服务器有两颗四核cpu,是Interl Xeon 5300的,已通过SSH客户端实现了远程控制。现在的问题是,我只用了一个cpu,如果想利用服务器8个cpu的并行计算功能,应该怎样安装mpich程序?

    小弟在网上搜索了mpich或mpich2的安装说明,但都是针对多机联网的,具体在单机上如何设置,小弟曾试过安装mpich2-1.0.8和mpich-1.2.7,但是弄了很久总是问题不断,目前,主要有这样几个问题比较困惑:
    1)mpich和mpich2有什么不同?对于我的服务器配置,哪种版本比较适合呢?
    2)网上很多资料提到集群(多机)环境下通过SSH来实现多机并行计算,但在这里,我想仅用这台8个cpu的服务器来做并行,SSH客户端只是对它进行远程控制,这样的话,如果做并行是不是只应该有一个节点(因为服务器只对应一个IP),然后把这台服务器的hostname在相关设置里写上8遍即可?还是需要在安装mpich过程中通过ssh-keygen -t rsa  来创建密钥对?如果是后者的话,具体又应该如何操作呢?
   
    希望有mpich成功运行经验的达人给予指点,小弟不甚感激!

最新回复

yzbjb at 2009-1-06 14:31:43
我也碰到同样的问题,要使用WRF NMM CORE的嵌套必须要用MPI啊
hazymorning at 2009-1-06 17:19:14

QUOTE:

原帖由 cxc 于 2009-1-5 17:31 发表
大家好,有个关于在服务器上安装mpich的问题想请教一下各位:
    小弟有一台Dell PowerEdge 2900 服务器,这台服务器有两颗四核cpu,是Interl Xeon 5300的,已通过SSH客户端实现了远程控制。现在的问题是,我只用了 ...
如果是像您这种 share memory 机,可以通过openmp来实现 parallelization. 如果是distributed memory机结构, 则可用MPICH. 不过是小弟的个人一点想法,我也是入门, 看看有那位大侠再来仔细的说明。
wenzerg at 2009-1-13 20:47:08
我也遇到这个问题了,我用的是方正的服务器,是2个双核cpu,Xeon的,wrf编译的时候选的是sm+dm。装了pgi7.14自带的mpi以后,输入mpirun -np 4 wrf.exe,发现是假并行,实际只有一个cpu在工作,日志报告也只有一个cpu的,用top查看cpu利用率发现只有25%左右。
求达人们帮帮忙吧
cxc at 2009-1-14 17:25:28
谢谢楼上几位的热心关注,既然有这么多人存在疑问,真希望哪位达人能出来帮帮忙啊!

这几天我也多方尝试,有一些小的发现,写在这里,希望共同交流,还望达人多多指教!
1)我安装了mpich-1.2.7,通过测试examples文件夹下的cpi.c和hello.f等文件,发现必须要用ssh-keygen -t rsa  来创建密钥对才能实现并行时不用输入密码,说明必须通过ssh进行设置才能实现并行。

2)安装好mpich以后,在利用mpirun做rams-4,4并行时,发现时间步长计算时间确实缩短了,从每步大约22秒缩短到15秒左右,但是不管令np=1还是np=6, cpu使用率都是12.5%,说明还是只有一个cpu在工作,不同的是np=1时每步大概15.22秒,np=6时每步大约14.64秒,这是一件很奇怪的事,用mpirun后cpu使用率没增加,但时间缩短了大约7秒。而不管指定几个cpu来工作,时间却差不多,cpu使用率也不变,不知道是什么原因。后来到rams论坛上发帖问了一下,被说并行不成功,可能是mpi设置或rams编译的问题。看来下一步还得好好检查检查。

3)安装mpich时只对安装路径进行了指定,对于C和fortran编译器并未指定,但现在看来,用mpif90 不能编译f90程序,提示找不到mpif90编译器,这说明在安装前还应对编译器进行设置。

关于hazymorning说的 share memory 机可以通过openmp来实现parallelization的问题,我很感兴趣,不知道我的试验不成功是不是并行软件的问题,还希望多多指教!!!
blucas at 2009-2-16 22:58:18
我在intel四核cpu PC上run wrf
configure wrf时选DM
用了MPICH2-1.08,PGI7.02
先mpd
mpirun -np 4 wrf.exe
速度的确上去了,查看一下四个cpu都接近100%
并行应该成功了
不知道对你们有没有帮助
flyks at 2009-2-17 18:22:07
mpi是用在机群的? 多核的用openmp就可以吧
blucas at 2009-2-18 22:06:26
多核机也可以用mpi,因为要用的模式对openmp支持并不是很好。
我在多核pc机上安装mpich1.2.7的步骤如下:
1.配置ssh环境
   修改/etc/hosts文件
   在127.0.0.1 local..........
      下面加入
   192.*.*.*  hostname   !左边一串数字是你机子的ip,右边是你取的hostname
这样四个核相当与四个节点,节点之间可以用hostname互访
可以通过ping hostname 或ssh hostname测试设置是否成功
2.实现无密码远程访问
打开一个终端
#ssh-keygen -d
回车
回车
在~/.ssh下生成id_dsa (存放私人密匙)和id_dsa_pub(存放公用密匙)
#cp id_dsa_pub authorized_keys
#ssh hostname(无需输入密码)
3.安装MPICH
注意./configure  -rsh=ssh  !好像MPICH默认的设置是rsh,这里改为ssh
4. 放权
# vi /etc/hosts.equiv
加入 hostname
5.test mpich
进入mpich安装目录的examples
#make cpi
#mpirun -np 4 cpi
可以检查mpich安装和设置是否成功
实际上我是参照几台pc组成pc cluster时对MPICH的安装和设置
具体可以google,网上挺多内容的
希望有所帮助!
blucas at 2009-2-18 22:13:43
多核单机并行运算,cpu之间的通信也是通过ssh吧?
cxc at 2009-6-12 22:13:02
谢谢blucas的关注和建议,我再试试!