linux怎样安装mpd进程管理器

linux怎样安装mpd进程管理器,第1张

Linux下安装MPICH

Linux 下 mpich2 安装

1:从MPICH2官网下载源代码,http://www.mcs.anl.gov/research/projects/mpich2 /downloads/tarballs/1.0.8/mpich2-1.0.8.tar.gz 目前最新的是1.0.8,当然如果你使用的windows平台也可以下载http://www.mcs.anl.gov/research /projects/mpich2/downloads/tarballs/1.0.8/mpich2-1.0.8-win-ia32.msi,以及 http://www.mcs.anl.gov/research/projects/mpich2/documentation/files/mpich2-1.0.8-windevguide.pdf 这是windows平台下的开发文档。

你也可以登录http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads,查看你需要的mpich版本,根据自己需要下载即可。

2、然后,将mpich2-1.0.8.tar.gz解压到/home/mpi/mpich2/src中,

执行下列命令:cd /home/mpi/mpich2/src

./configure -prefix=/home/mpi/mpich2(配置安装位置为 /home/mpi/mpich2)

如果没有问题,再运行下面

make

make install

稍等就大功造成了。

3、修改机器的~/.bash_profile(Ubuntu修改~/.bashrc)文件,在最后加上下面的语句

export MPI_ROOT=/home/mpi/mpich2

export PATH=$MPI_ROOT/bin:$PATH

export MANPATH=$MPI_ROOT/man:$MANPATH

4、编辑下面的文件,并存储为hello.c

#include "mpi.h"

#include <stdio.h>

#include <math.h>

int main (int argc, char **argv)

{

int myid, numprocs

int namelen

char processor_name[MPI_MAX_PROCESSOR_NAME]

MPI_Init (&argc, &argv)

MPI_Comm_rank (MPI_COMM_WORLD, &myid)

MPI_Comm_size (MPI_COMM_WORLD, &numprocs)

MPI_Get_processor_name (processor_name, &namelen)

fprintf (stderr, "Hello World! Process %d of %d on %s\n", myid, numprocs, processor_name)

MPI_Finalize ()

return 0

}

5、接着编译一下

mpicc -o hello hello.c

( C程序用 mpicc编译,C++程序用mpicxx编译)

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

cd $HOME

touch .mpd.conf

chmod 600 .mpd.conf

然后在.mpd.conf文件中(如果没有这个文件需要创建一个)写入这么一行,secretword=***,***可以是任意的值,如果配置集群的话,这个值在参与计算的计算机上必需完全一致。如果是root用户的话,这个文件应该是/etc/mpd.conf。

7、启动并行环境 mpdboot

第一次使用这个命令时,可能会出现错误,执行以下代码

cd ~

touch .mpd.conf //这是修改mpd配置文件的时间戳

chmod 600 .mpd.conf //这是修改配置文件的权限

运行程序: mpirun -np 4 ./hello

-np 是指用几个进程模拟运行,这里用4个

输出结果为: (下面结果每台机器可能都不一样,是正常的)

Hello World! Process 1 of 4 on jack-laptop

Hello World! Process 3 of 4 on jack-laptop

Hello World! Process 2 of 4 on jack-laptop

Hello World! Process 0 of 4 on jack-laptop

想停止并行运行环境

mpdcleanup

8、如在第七步出现类似下面的报错

mpdroot: perror msg: Connection refused

mpdroot: cannot connect to local mpd at: /tmp/mpd2.console_root

probable cause: no mpd daemon on this machine

possible cause: unix socket /tmp/mpd2.console_root has been removed

请打开另外一个终端,并执行mpd命令,同时不要关闭这个终端,在执行第7步即可。

9、 如果你的os是Ubuntu的话,安装过程中如果提示缺少什么,首先安装这个东西之后再按照这个步骤即可。

1.4.1p1.tar.gz

2.然后解压,假设解压后的目录是/home/nh/Downloads/mpich2-1.4.1p1

3.nh@55ubuntu :~$ gcc --version

4.nh@55ubuntu:~$ g++ --version

5.nh@55ubuntu:~$ python --version

确认以上都已经安装了.

6.nh@55ubuntu:~$cd /home/nh/Downloads/mpich2-1.4.1p1

7.nh@55ubuntu:~/Downloads/mpich2-1.4.1p1$ ./configure --prefix /home/nh/Downloads/mpich2

8.nh@55ubuntu:~/Downloads/mpich2-1.4.1p1$ make

9.nh@55ubuntu:~/Downloads/mpich2-1.4.1p1$ make install

10.设置环境变量

添加下面这行到/etc/profile文件的最后,然后重新起动系统使环境变量永久生效。

export PATH=/home/nh/Downloads/mpich2/bin:$PATH

11. 添加mpd配置文件

在当前用户的home目录下面新建立一个名为".mpd.conf"的配置文件,文件的内容如下应该包括下面这行:

secretword=<secretword>

比如:

nh@55ubuntu:~$ more .mpd.conf

secretword=nh

<secretword>是你的密钥,是每台机器进行连接并用建立并行环境互相信任的基础。

接下来,需要设置该文件的存取权限,这步是必须的,否则在后面的运行中会报错。

nh@55ubuntu:$ sudo chmod 600 .mpd.conf

nh@55ubuntu:$ ls -ll .mpd.conf

-rw------- 1 zzm 1003 22 2010-01-07 13:54 .mpd.conf

12.在/home/nh/下新建一个文件名为hello.c,源代码如下:

#include <mpi.h>

#include <stdio.h>

int main(int argc, char *argv[])

{

int npes, myrank

MPI_Init(argc, argv)

MPI_Comm_size(MPI_COMM_WORLD, npes)

MPI_Comm_rank(MPI_COMM_WORLD, myrank)

printf("From process %d out of %d, Hello World!\n", myrank, npes)

MPI_Finalize()

}

13.nh@55ubuntu:~/Downloads/mpich2/bin$ ./mpicc -o /home/nh/hello /home/nh/hello.c

14.nh@55ubuntu:~/Downloads/mpich2/bin$ ./mpirun -np 2 /home/nh/hello

From process 0 out of 2, Hello World!

From process 1 out of 2, Hello World!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/6226684.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-18
下一篇2023-03-18

发表评论

登录后才能评论

评论列表(0条)

    保存