最近发现了一门新语言 Julia   ,  这门编程语言据说大有取代 Python语言成为数据科学的大佬,但是细看发现最主要说的是这门编程语言运行速度比较快,并且在分布式和并行计算上比较有优势,这时候我就在想PYTHON语言是否也可以比较容易的搭建并行计算的平台呢,这一看还真有,就是  MPI4PY,这是个基于MPI的Python并行计算框架,其实细研究发现这个东西其实就是把MPI做了一下封装,然后把Python的消息用MPI进行传递。

由于  mpi4py  是在MPI 之上进行运作的,需要先安装MPI,  于是下面我们先安装MPI。

MPI 的old 版本下载地址:

http://www.mpich.org/static/downloads/

由于MPICH2的中文资料比较好找,于是本文安装MPICH2的版本,mpich2-1.0.4p1  。

mpich2-1.0.4p1

下载地址:

http://www.mpich.org/static/downloads/1.0.4p1/mpich2-1.0.4p1.tar.gz

下载后解压。

编译:

./configure --prefix=/opt/mpich2-1 --enable-f90 --enable-cxx --enable-threads=multiple --enable-sharedlibs=gcc --with-mpe
make 

sudo make install

本文的安装环境为  Ubuntu16.04, mpi的安装路径设置为  /opt/mpich2-1   。

其中,编译过程中报错,  最后发现是系统中还需要安装LIB库,于是,

sudo apt install mpich

不过据网上说只需要安装   libmpich-dev  就可以,不过没有考证。

安装结束后进行设置:

在  $HOME 文件夹下面的  .bashrc 文件中添加内容:

export PATH=/opt/mpich2-1/bin:$PATH
export LD_LIBRARY_PATH=/opt/mpich2-1/lib:$LD_LIBRARY_PATH

source  .bashrc   更新系统变量。

配置  mpd

cd $HOME

touch .mpd.conf

sudo chmod 600 .mpd.conf
修改内容:  vim .mpd.conf

MPD_SECRETWORD=mr45-j9z
mr45-j9z  为密码内容,  该内容可以自己随意设置。

启动  mpd
mpd &
以上为  MPICH2  安装的全部过程。

下面安装MPI4PY  
sudo pip2 install mpi4py

测试 ,  mpi4py  是否安装成果:

测试文件:

# mpi_helloworld.py

from mpi4py import MPI

comm = MPI.COMM_WORLD
size = comm.Get_size()
rank = comm.Get_rank()
node_name = MPI.Get_processor_name() # get the name of the node print 'Hello world from process %d at %s.' % (rank, node_name)

运行:

mpiexec -n 4 python x.py

安装成功。

================================================================================

MPICH2   安装成功测试:

创建文件  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;
}

编译:

mpicc -o hello hello.c

执行:

mpirun -np 4 ./hello

安装成功。

MPI2 编程环境搭建 MPI4PY 编程环境搭建的更多相关文章

  1. 开始JAVA编程的敲门砖——JAVA开发环境搭建

    从头开始的java编程--JAVA开发环境搭建 一.什么是java的开发环境? 顾名思义java的开发环境是提供并保证整个java程序开发运行的必要的环境,搭建java开发环境是开始java编程的敲门 ...

  2. 使用 Windows 10 WSL 搭建 ESP8266 编译环境并使用 VSCODE 编程(一)(2019-08-23)

    目录 使用 Windows 10 WSL 搭建 ESP8266 编译环境并使用 VSCODE 编程 安装前准备 安装 ESP8266 工具链 下载 ESP8266 SDK 编译 花絮 使用 Windo ...

  3. ubuntu下搭建cocos2dx编程环境-下

         前两篇介绍了cocos2d-x 下linux开发环境配置和android 环境配置问题.在这其中遇到很多问题,所以最后一篇分享一下在处理这些问题时,我是如何解决的,是怎么想的.同时总结一些解 ...

  4. 基于C/S架构的3D对战网络游戏C++框架 _05搭建系统开发环境与Boost智能指针、内存池初步了解

    本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...

  5. 搭建Android开发环境附图详解+模拟器安装(JDK+Eclipse+SDK+ADT)

    ——搭建android开发环境的方式有多种,比如:JDK+Eclipse+SDK+ADT或者JDK+Eclipse+捆绑好的AndroidSDK或者Android Studio. Google 决定将 ...

  6. Windows搭建python开发环境,python入门到精通[一]

    从大学开始玩python到现在参加工作,已经有5年了,现在的公司是一家.net的公司用到python的比较少,最近公司有新项目需要用到python,领导希望我来跟其他同事training,就有了这篇博 ...

  7. 怎样搭建PHP开发环境

    搭建PHP开发环境首先第一步要 下载开发环境 wampserver 下载sublime text 2 sublime使用技巧 1:安装漂亮的编程字体http://pan.baidu.com/s/1xM ...

  8. Erlang 101 Erlang环境和顺序编程

    笔记系列 Erlang环境和顺序编程 Erlang并发编程 Erlang分布式编程 Yaws Erlang/OTP 日期              变更说明2014-10-12 A outline, ...

  9. 【转】Windows环境下Android NDK环境搭建

    原文网址:http://www.metsky.com/archives/525.html 前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员 ...

随机推荐

  1. Zabbix设置自定义监控

    [zabbix]自定义监控项key值   说明: zabbix自带的默认模版里包括了很多监控项,有时候为了满足业务需求,需要根据自己的监控项目自定义监控项,这里介绍一种自定义监控项的方式. 1,首先编 ...

  2. MySql数据库批量备份命令

    rd d:\mysql_data-BAK /s /qmd d:\mysql_data-BAKxcopy d:\mysql_data d:\mysql_data-BAK /e

  3. java一些基本的方法

    一,Java中,next();和nextLine();有什么区别 举个例子,你就会明白了.如,你输入的一行:abc cde efg注意,其中abc和cde之间有空格,cde和efg之间也有空格这样,n ...

  4. mongodb安装及副本集搭建

    mongodb下载地址:https://www.mongodb.com/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.7.tg ...

  5. kindle 应用程序出错,无法启动选定的应用程序,请重试。问题排查过程及处理方案。

    最近一段时间在使用Kindle商城时总是会出现“应用程序出错,无法启动选定的应用程序,请重试.” 对此我花了大约一小时的时间进行测试验证并与客服人员沟通,将过程记录如下,供出现同样问题的朋友们参考. ...

  6. VS2010/MFC编程入门之二十五(常用控件:组合框控件Combo Box)

    上一节鸡啄米讲了列表框控件ListBox的使用,本节主要讲解组合框控件Combo Box.组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是 ...

  7. myeclips破解

    MyEclipse官方安装文件,下载地址 http://www.jb51.net/softs/150886.html破解补丁http://www.jb51.net/softs/150887.html ...

  8. eclipse中gradle插件安装

    help===>install software===>http://download.eclipse.org/buildship/updates/e46/releases/2.x/

  9. Linux学习笔记之Linux计划任务Crontab

    0x00 cron 简介 cron 是 UNIX, SOLARIS,LINUX 下的一个十分有用的工具.通过 cron 脚本能使计划任务定期地在系统后台自动运行. 0x01 cron 命令 cront ...

  10. ZooKeeper增加Observer部署模式提高性能(转)

    除了Leader和Follow模式之外,还有第三种模式:Observer模式. Observer:在不伤害写性能的情况下扩展ZooKeeper. 虽然通过Client直接连接到ZooKeeper集群的 ...