时间坐标:2017.06 大三下
MPI并行编程是在大数据处理中很有意义的方法,能够在串行的基础上提高程序运行的效率,并行的去计算海量的数据。
这篇文章可能会随着学习的深入不断的更新~
-
Introduction to MPI
学MPI的时候,老师首先给我们回顾了一下并行编程的一些模式:
并行可以分为两种:一种是任务并行,另一种是数据并行,根据这两种性质可以分为以下4种模式:
SIMD(Single Instruction Multiple Data):单指令多数据模式
SPMD(Single Program Multiple Data):单程序多数据模式 (这种貌似是最常用的模式)
MIMD(Multiple Instruction Multiple Data):多指令多数据模式
MPMD(Multiple Program Multiple Data):多程序多数据模式然后介绍到底什么是MPI:
MPI——Message Passing Interface 信息传递接口
这里直接把百度百科放过来:
MPI是一个跨语言的通讯协议,用于编写并行计算机。支持点对点和广播。MPI是一个信息传递应用程序接口,包括协议和和语义说明,他们指明其如何在各种实现中发挥其特性。MPI的目标是高性能,大规模性,和可移植性。MPI在今天仍为高性能计算的主要模型。
主要的MPI-1模型不包括共享内存概念,MPI-2只有有限的分布共享内存概念。 但是MPI程序经常在共享内存的机器上运行。在MPI模型周边设计程序比在NUMA架构下设计要好因为MPI鼓励内存本地化。
尽管MPI属于OSI参考模型的第五层或者更高,他的实现可能通过传输层的sockets和Transmission Control Protocol (TCP)覆盖大部分的层。大部分的MPI实现由一些指定惯例集(API)组成,可由C,C++,Fortran,或者有此类库的语言比如C#, Java or Python直接调用。MPI优于老式信息传递库是因为他的可移植性和速度。
与OpenMP并行程序不同,MPI是一种基于信息传递的并