MPI相关网址

原创 2007年09月20日 16:29:00
2007年09月11日 星期二 18:27

参考:http://forum.petro-china.com/index.php?showtopic=1739

MPICH主页
http://www-unix.mcs.anl.gov/mpi/mpich2/

MPI介绍网址:
http://www-unix.mcs.anl.gov/mpi/

MPI 入门介绍(英文) by John Burkardt , Florida State University
http://www.csit.fsu.edu/~burkardt/pdf/mpi_course.pdf

4天的Powerpoint style PDF file by John Burkardt , Florida State University
http://www.csit.fsu.edu/~burkardt/pdf/mpi_day1.pdf
http://www.csit.fsu.edu/~burkardt/pdf/mpi_day2.pdf
http://www.csit.fsu.edu/~burkardt/pdf/mpi_day3.pdf
http://www.csit.fsu.edu/~burkardt/pdf/mpi_day4.pdf

国内的书有一本:
高性能计算并行编程技术-MPI 并行程序设计 (都志辉, 清华大学出版社, 2001),
入门书, 基本上是英文说明的翻译.

-------------------------------------------------------------------

SOURCE CODES (C, C++, FORTRAN77, FORTRAN90)

C和MPI的source codes
http://www.csit.fsu.edu/~burkardt/c_src/mpi/mpi.html

C++和MPI的source codes
http://www.csit.fsu.edu/~burkardt/cpp_src/mpi/mpi.html

FORTRAN77和MPI的source codes
http://www.csit.fsu.edu/~burkardt/f77_src/mpi/mpi.html

FORTRAN90和MPI的source codes
http://www.csit.fsu.edu/~burkardt/f_src/mpi/mpi.html


文 / Liang T. Chen(Sun公司杰出工程师及软件架构师)

摘自 "并行计算应用程序开发"
http://www.csdn.net/zhengwen/zhengwen007.htm


3. MPI

3.1 MPI概要
  

图3:MPI send与receive例程

  MPI是一种工业标准的API规范,专为在多处理器计算机和计算机集群上获得高性能计算而设计,该标准是由大量计算机供应商和软件开发商共同设计的。有多种来自不同研究机构和厂商的MPI实现,其中最流行的一种就是MPICH,MPICH常用作为特定平台或互连而优化的MPI实现的编码基础(有兴趣的读者请访问http://www-unix.mcs.anl.gov/mpi网站,获得MPI标准和关于MPICH的更多信息)。

  MPI为并行应用程序提供了一种分布式的内存编程模型。尽管整个MPI API集相对较大,其中包含超过300个例程,但在编写许多MPI应用程序时,需要使用的基本例程都不会超过十几个。图3展示了一个用于消息通信的send和receive例程对。两个例程的前三个参数均指定了位置、数据类型和消息数量;第四个参数标识了通信的目标进程;第五个参数标记了ID,从而进一步提供了一种区分不同消息的机制;第六个参数指定了通信上下文。在receive例程中还有一个额外的参数,用于报告接收状态。

  在MPICH设计中,整个API集都是在一个低层设备互连例程的小型核心集之上实现并构建的。这一设计体系结构带来了更好的跨不同平台可移植性。惟一的需求就是重新处理设备互连例程的小型核心集,以为新平台或互连移植、优化MPICH。

  MPI实现依然在不断发展。MPI-1支持一些关键特性,如点到点及与通信设备的集群消息通信。一条消息中可包含基本数据类型或派生(用户定义的)数据类型的MPI数据。消息数据内容可以是压缩格式,也可以是非压缩格式;另外,它还支持互连拓扑。MPI-2则提供许多高级通信特性,如远程内存访问和单端通信等;它还支持动态进程创建、管理和并行IO。

3.2 内存层次结构

  

图4:非统一内存性能

  根据半导体技术和计算机体系结构的现状,起决定性作用的系统性能因素是内存层次结构,而不是CPU时钟频率——图4展示了非统一内存性能图。如果应用程序的绝大多数指令和数据内存访问都位于缓存范围内,该程序的运行速度将更快。由于MPI是一种分布式内存编程模型,因此对于大多数应用程序来说,利用MPI通常可获得良好的线性可伸缩性。当MPI应用程序被分割开来,以在计算节点的大型集群上运行时,各MPI进程的内存空间就减少了,且内存访问将位于内存层次结构的高性能范围内。非统一内存性能效果适用于包括OpenMP在内的其他编程模型。

3.3 MPI的局限性

  总体而言,MPI为计算机集群上的并行应用程序提供了一个出色的解决方案,但对于许多开发人员来说,MPI也是一种困难的编程模型。因为MPI的通信延迟时间较长,所以必须合理分割程序的核心逻辑,以使分布成本更为合理。分析及划分应用程序问题并将问题映射到分布式进程集合中绝对不是一项可靠直觉完成的任务。因为许多MPI进程之间的交互作用都相当复杂,因此即便选用了恰当的工具,调试并调整运行在大量节点上的MPI应用程序也极具挑战性。MPI例程实现的质量可能会带来一些额外的软件开发挑战。MPI的性能取决于底层硬件平台和互连。在某些极端的情况下,MPI应用程序的性能可能会受到繁重的互连流量的影响。另外一个严重的问题就是大规模MPI应用程序的可靠性。对于许多MPI实现而言,只要单一计算节点发生故障,无法正确响应,MPI程序就会停止工作。不幸的是,当MPI应用程序在数千个计算节点上长期运行时,故障率即会变得不容忽视。

 

MPI 归并排序

n个处理器 归并n个数据 处理器按编号线性相连(一维线性阵列)每个处理器都有输出能力 数据通过每次归并 数据向size/2 和size/2-1号处理器靠近 最后这两个处理器进行最后归并 #incl...
  • pouloghost
  • pouloghost
  • 2012年08月17日 16:14
  • 1395

MPI非阻塞通信使用、性能分析与实现原理

非阻塞通信: 异步通信通常是使MPI应用程序实现高性能计算的关键,使用异步通信具有如下优势: 1)函数是非阻塞的,这使得进程在与另一个进程通信的同时继续参与计算; 2)如果应用适当,可以绕过MPI的内...
  • qq100440110
  • qq100440110
  • 2016年08月03日 16:40
  • 2217

并行计算MPI(一):MPI入门

这个学期老板可能让我做并行计算方面的东西并推荐MPI给我学习。私下找了一些资料,这个系列作为学习MPI的一个记录吧,所用的主要有两本书:《高性能计算并行编程技术》,都志辉,清华大学出版社;还有一本《M...
  • sj_lxd
  • sj_lxd
  • 2015年03月06日 20:46
  • 3324

MPI程序例子 test_8_1_2.c -- 对等模式的MPI程序,Jacobi迭代 (MPI_Send、MPI_Recv)

NOTE:          这里首先需要弄明白 Jacobi迭代是做什么的,怎么操作。  网上找到的一篇讲解使用 MPI解决Jacobi迭代并行化的文章,这个与都志辉 并行程序一书的例子...
  • wangpengqi
  • wangpengqi
  • 2013年11月06日 17:14
  • 2067

Mac OS 安装 MPI

1.官网下载http://www.open-mpi.org/software/ompi/v1.8/
  • u014247371
  • u014247371
  • 2014年05月17日 19:13
  • 4774

并行处理 mpi矩阵乘法

基于MPI并行方法实现矩阵乘法 目录 1. 实验目的 3 2. 实验环境 4 3. 实验内容 4 3.1. 实验题目 4 3.2. 实验过程 5 3.2.1. 集群使用 5 3.2.2...
  • qljessica123
  • qljessica123
  • 2014年01月11日 21:53
  • 2946

MPI和MapReduce对比

Hadoop认证教程:MPI和MapReduce对比,在当前最流行的高性能并行体系结构中比较常用的并行编程环境分为两类:消息传递和共享存储。 MPI是基于消息传递的经典代表,是消息传递并行程序设...
  • oraclestudyroad
  • oraclestudyroad
  • 2016年07月22日 09:21
  • 584

大数据计算框架Hadoop, Spark和MPI

今天做题,其中一道是 请简要描述一下Hadoop, Spark, MPI三种计算框架的特点以及分别适用于什么样的场景。 一直想对这些大数据计算框架总结一下,只可惜太懒,一直拖着。今天就借这个机会好...
  • Claire_Bear7
  • Claire_Bear7
  • 2015年07月12日 10:48
  • 5621

并行编程实战记录----多线程与MPI多进程

工作半年以来,大部分时间都在做RNN的研究,尤其是通过lstm(long-short term memory)构建识别模型。我专注的是使用rnnlib工具开展模型的训练工作,以搭建有效的识别模型。Rn...
  • davidie
  • davidie
  • 2015年12月21日 18:06
  • 4110

Linux系统(Ubuntu)下,MPI的安装与配置

从3.0版本以后的mpich简化了运行方式,使用时不再需要输入mpd开头命令,只需要一个mpiexec/mpirun即可启动mpi运行环境,方便了mpi编程。安装文件下载地址:http://www.m...
  • u014004096
  • u014004096
  • 2016年01月11日 20:28
  • 10280
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MPI相关网址
举报原因:
原因补充:

(最多只允许输入30个字)