zoukankan      html  css  js  c++  java
  • 搭建 MPICH3 并行计算环境

    先记录在单机MacBook上的搭建,实验室集群的搭建流程是一样的,不过每台机器都需要做一次。

    MacBook:

    1、安装mpich3:

    $ ./configure --prefix=/Users/xin/sftwr/mpich3 --disable-fortran
    $ make
    $ make install


    2、修改环境变量
    打开/etc/bashrc
    输入:
    export MPI=/Users/xin/sftwr/mpich3
    export PATH=${PATH}:${MPI}/bin


    3、测试是否正确安装
    查看命令是否是我们安装目录下的命令

    重启终端,输入:
    $ which mpiexec


    4、用主机名表示ip地址
    打开 /etc/hosts,定义 ip 地址和主机名之间的对应关系:
    添加:
    127.0.0.1         node0

    note: 每个主机中都需要添加所有主机的ip,并赋予每个ip相同的名字 (相当于主机名字是主机ip的别名). 主机之间要设置免密码登录,从而才能登录到其它主机运行 mpiexec 进程

    5、创建machinefile文件
    在 ~/conf/目录中创建文件
    输入:
    node0

    note: 每台主机需要相同的machinefile文件,文件中的名字可以用ip代替


    6、测试:计算圆周率
    mpiexec -n 3 -machinefile ~/conf/machinefile /Users/xin/sftwr/mpich3-source/examples/cpi

    测试结果:
    Process 0 of 3 is on xindeMacBook-Pro.local
    Process 1 of 3 is on xindeMacBook-Pro.local
    Process 2 of 3 is on xindeMacBook-Pro.local
    pi is approximately 3.1415926544231318, Error is 0.0000000008333387
    wall clock time = 0.004443

    7、安装mpi4py

    $ sudo python setup.py install

    装好Python MPI后,使用dir()函数查看所有的MPI通信函数

    from mpi4py import MPI
    comm = MPI.COMM_WORLD
    dir(comm)
    help(comm.Allreduce)
    help(comm.allreduce)

    实验室集群

    过程基本没有差别,区别只在于hosts文件中需要记录更多的ip地址(以及主机名,可以任意赋予一个名字)

    集群一共8台服务器:

    30格子: computer-10 ip地址: 10.1.1.10, 20.1.1.10
    28格子: computer-11 ip地址: 10.1.1.11, 20.1.1.11
    26格子: computer-12 ip地址: 10.1.1.12, 20.1.1.12
    24格子: computer-13 ip地址: 10.1.1.13, 20.1.1.13
    22格子: computer-14 ip地址: 10.1.1.14, 20.1.1.14
    20格子: computer-15 ip地址: 10.1.1.15, 20.1.1.15
    18格子: computer-16 ip地址: 10.1.1.16, 20.1.1.16
    16格子: computer-17 ip地址: 10.1.1.17, 20.1.1.17

    其中四台服务器上安装了虚拟机:

    实体服务器computer-10 上安装了4台虚拟机:10.1.1.50;10.1.1.51;10.1.1.52;10.1.1.53;
    实体服务器computer-11 上安装了4台虚拟机:10.1.1.60;10.1.1.61;10.1.1.62;10.1.1.63;
    实体服务器computer-12 上安装了4台虚拟机:10.1.1.70;10.1.1.71;10.1.1.72;10.1.1.73;
    实体服务器computer-13 上安装了4台虚拟机:10.1.1.80;10.1.1.81;10.1.1.82;10.1.1.83;

    尽量只在虚拟机上操作,所以hosts文件的内容是:

    10.1.1.50 node0
    10.1.1.51 node1
    10.1.1.52 node2
    10.1.1.53 node3
    10.1.1.60 node4
    10.1.1.61 node5
    10.1.1.62 node6
    10.1.1.63 node7
    10.1.1.70 node8
    10.1.1.71 node9
    10.1.1.72 node10
    10.1.1.73 node11
    10.1.1.80 node12
    10.1.1.81 node13
    10.1.1.82 node14
    10.1.1.83 node15

    其它问题:

    mpich3的更多的命令参数可参看官网文档:http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4-userguide.pdf。

    在所有的服务器上运行的mpi版本必须一致,否则也会出错。

    有时有些问题是由于防火墙导致的,在运行mpi程序时,我们可以关掉防火墙:

     关闭防火墙

    #service iptables stop

     查看防火墙状态

    #service iptables status

  • 相关阅读:
    RMQ(非log2储存方法)
    2016年5月份学习记录
    NOIP200504循环
    膜拜acm大牛 虽然我不会这题,但是AC还是没有问题的~(转自hzwer)
    最长公共子序列的长度
    菜鸟,大牛和教主三者的区别(转自hzwer)
    NOIP201205Vigenère密码
    NOIP200503采药
    公路乘车
    NOIP200902分数线划定
  • 原文地址:https://www.cnblogs.com/xinchrome/p/5058408.html
Copyright © 2011-2022 走看看