MPI和MapReduce
2015-12-27 18:55
661 查看
在当前最流行的高性能并行体系结构中比较常用的并行编程环境分为两类:消息传递和共享存储。MPI是基于消息传递的经典代表,是消息传递井行程序设计的标准,用于构建高可靠的、可伸缩的、灵活的分布式应用程消息传递井行处理开销比较大,适合于大粒度的进程级并行计算,相对其他并行编程环境,它具有很好的可移植性,几乎能被所有的并行环境支持;还具有很好的可扩展性,具有完备的异步通信功能,能按照用户的要求很好地分解问题,组织不同进程之间进行数据交换,适合大规模可扩展性的并行算法。
MPI模式在学术研究领域应用较多,而在商业领域,云计算系统大多采用的是Google云计算系统中的MapReduce并行编程模型。云计算强调的就是简单的编程模型,而MapReduce就是一种高效的、简单的并行编程模式,也是一种高效的任务调度器。MapReduce这种编程模型不仅适用于云计算,在多核和多处理器、Cell processor以及异构机群上同样有良好的性能。利用MapReduce ,程序员能够轻松地编写紧耦合的程序,在运行时能高效地调度和执行任务,在实现时,在Map函数中指定对各分块数据的处理过程,在Reduce函数中指定如何对分块数据处理的中问结果进行归约。用户只需要指定Map和Reduce函数来编写分布式的并行程序,不需要关心如何将输人的数据分块、分配和调度,同时系统还将处理集群内节点失败及节点间通信的管理等。而MPI仅仅是一个并行计算标准,没有相应的分布式文件系统的支撑,在大数据场景下大文件的存储及访问都会成为一个问题,同时用户还需要考虑集群节点之间的通信协调、容错等问题,这些使得MPI的编程难度比较大,集群本身的规模也很难做到像MapReduce那样的超大规模。
MPI模式在学术研究领域应用较多,而在商业领域,云计算系统大多采用的是Google云计算系统中的MapReduce并行编程模型。云计算强调的就是简单的编程模型,而MapReduce就是一种高效的、简单的并行编程模式,也是一种高效的任务调度器。MapReduce这种编程模型不仅适用于云计算,在多核和多处理器、Cell processor以及异构机群上同样有良好的性能。利用MapReduce ,程序员能够轻松地编写紧耦合的程序,在运行时能高效地调度和执行任务,在实现时,在Map函数中指定对各分块数据的处理过程,在Reduce函数中指定如何对分块数据处理的中问结果进行归约。用户只需要指定Map和Reduce函数来编写分布式的并行程序,不需要关心如何将输人的数据分块、分配和调度,同时系统还将处理集群内节点失败及节点间通信的管理等。而MPI仅仅是一个并行计算标准,没有相应的分布式文件系统的支撑,在大数据场景下大文件的存储及访问都会成为一个问题,同时用户还需要考虑集群节点之间的通信协调、容错等问题,这些使得MPI的编程难度比较大,集群本身的规模也很难做到像MapReduce那样的超大规模。
相关文章推荐
- Redux系列01:从一个简单例子了解action、store、reducer
- java枚举使用
- 福建省赛--Problem E The Longest Straight(标记+二分)
- centOS下卸载samba
- 数值优化(Numerical Optimization)学习系列-线性规划(Linear Programming)
- gdb 常用调试命令
- 福建省赛--Problem E The Longest Straight(标记+二分)
- 提交远程版本控制服务器时,需要忽略的文件
- C语言连接mysql数据库实战
- 数值优化(Numerical Optimization)学习系列-带约束最优化(Constrained Optimization)
- Win10下搭建绿色版基于WAMP的PHP开发环境
- Shell的详细解释
- 数值优化(Numerical Optimization)学习系列-最小二乘问题(Least-Squares)
- 数值优化(Numerical Optimization)学习系列-非线性方程(Nonlinear Equation)
- 学习shell脚本之前要掌握的知识
- jQuery
- 转 Android屏幕适配全攻略(最权威的官方适配指导)
- 数值优化(Numerical Optimization)学习系列-无梯度优化(Derivative-Free Optimization)
- mysql之各种命令总结
- 《leetCode》:Restore IP Addresses