- OpenMP:线程级(并行粒度);共享存储;隐式(数据分配方式);可扩展性差;
- MPI:进程级;分布式存储;显式;可扩展性好。
- 需要分析及划分应用程序问题,并将问题映射到分布式进程集合;
- 需要解决通信延迟大和负载不平衡两个主要问题;
- 调试MPI程序麻烦;
- MPI程序可靠性差,一个进程出问题,整个程序将错误;
与OpenMP,MPI相比,MapReduce的优势何在呢?
- 自动并行;
- 容错;
- MapReduce学习门槛低。
- SMP(Symmetric multi-processing),共享总线与内存,单一操作系统映象。在软件上是可扩展的,而硬件上不能。
- DSM(distributed shared memory),SMP的扩展。物理上分布存储;单一内存地址空间;非一致内存访问;单一操作系统映象。
2 条评论:
我用过一点MPI, 没用过别的.
最近看了点erlang的资料,还没搞明白它比MPI好在哪里.有没有比较过?
对Erlang不熟,最近正打算看看。
发表评论