MPI2 编程环境搭建 MPI4PY 编程环境搭建
最近发现了一门新语言 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
安装成功。
相关文章
- ubuntu下搭建gtk+编程环境
- 实例解析Python设计模式编程之桥接模式的运用
- UNIX环境高级编程笔记之进程控制
- UNIX/Linux环境编程必须需要注意的问题总结
- SAP 云平台 ABAP 编程环境的前世今生
- 用ABAP进行HTTP编程如何获取交互中的错误明细
- 如何在SAP云平台ABAP编程环境里创建自己的Z表
- Atitit.可视化编程jbpm6 的环境and 使用总结...
- Atitit.可视化编程jbpm6 的环境and 使用总结...
- paip. 混合编程的实现resin4 (自带Quercus ) 配置 php 环境
- Android多媒体开发高级编程
- 成功解决:将后缀.pyx格式文件(linux环境)编译成pyd文件(windows环境下)实现python编程加载或导入
- Python语言编程学习:文件路径变量修改,利用os模块固定文件父路径,变换文件子路径实现代码
- switch与if效率实例解析·5年以下编程经验必看【C#】
- 〖Python零基础入门篇①〗- Python编程环境搭建-Python3解释器安装
- 【socket编程】TCP、UDP通信总结
- Python编程:查看python环境支持的whl
- python编程:mac环境gunicorn+nginx部署flask项目
- Python编程:asyncio协程编程
- Python编程:Python2和Python3环境下re正则匹配中文
- VB编程:数组中插入新的数组元素-26_彭世瑜_新浪博客
- 387集Go语言核心编程培训视频教材整理 | Golang的概述(一)
- ESP32使用MiroPython编程环境搭建
- 〖Python全栈白宝书-免费版②〗- Python编程环境搭建 - Pycharm 简介、安装与配置