并行计算中MPI,openMPI,openMP的区别
很多新手刚刚接触并行计算的时候会对MPI,openMPI和openMP产生非常大的疑惑,主要源于对这几个概念本身理解的不清晰以及这几个缩写的字母确实是如此的近似。
因此我在这里分别述之供大家交流:
MPI:英文全称是Message Passing Interface,这个就很明了了,信息传递接口,是独立于语言的通信协议(标准),是一个库。
MPI的实现有MPICH,MPI-1,MPI-2等等
openMPI:英文全称是open Message Passing Interface。openMPI是MPI的一种实现,一种库项目。
OpenMP:英文全称是Open Multiprocessing,一种应用程序界面(API,即Application Program Interface),是一种并行的实现和方法,也可以认为是共享存储结构上的一种编程模型,可用于共享内存并行系统的多线程程序设计的一套指导性注释(Compiler Directive)。
在当前的并行机子中,openMP和openMPI都是需要的(从上面的各自概念可以看出),openMP用于本地的并行计算(共享内存内存架构),支持目前所有平台上的c,fortran等的共享内存式并行计算,它相当于是给出了一个让并行编程更加容易实现的模型,而openMPI则是用于机器之间的通信(分布式内存架构)。
限于自身对这几个概念的理解不深,敬请各位批评指正。
也希望能够给初学者一些粗浅的概念。 返回小木虫查看更多
今日热帖
非常感谢,