mapreduce中哪个阶段进行任务分解 写出一个单核的数值计算软件,如何才能让软件在巨型机上高效率并行计算?

[更新]
·
·
分类:行业
2881 阅读

mapreduce中哪个阶段进行任务分解

写出一个单核的数值计算软件,如何才能让软件在巨型机上高效率并行计算?

写出一个单核的数值计算软件,如何才能让软件在巨型机上高效率并行计算?

本人在软件方面是外行。懂一点等离子体和particle in cell仿真。目标是做大规模并行的等离子体数值模拟。

假设题主的前提是软件不做修改或并行编译优化的话,单核程序放在多核上跑,能不能提升性能?这个要看你的软件是怎么写的。
如果你的程序中只有一个工作线程,那么多核没有帮助,性能还是由多核中的单核性能决定的。如果你的程序有多个工作线程,那么操作系统会将不同的线程调度到不同的核上运行,能提升一定的并发度。但是通常情况下多个线程之间还有一些同步处理,这样不可避免要用锁,那么线程并行执行时间就由最慢的那个线程决定。
所以,想要充分发挥多核的性能,还是有些事情要做的。一个是并行编译优化,intel提供了并行编译优化软件,可以把类似for循环这样的语句并行化执行。但这个优化幅度是优先的。
更好的方式是代码做优化,把大的计算任务切分成各自独立的计算任务,然后用多线程来并行处理。这样能提升单个系统上的运行性能。
但是,按照题主的需求,多核还不一定能满足要求,需要多主机才行。题主提到的巨型计算机通常都是多主机组成的。当然也有大型机、小型机这种超高性能的单系统,但这种系统成本是高昂的,而题主的需求更适合用多台服务器来做分布式并行处理。这种情况下就要编写分布式并行执行的代码。可以基于一些成熟的分布式并发框架来开发,例如hadoop。hadoop主要做了两件事:一个是高速分布式文件系统用于超大数据集的快速访问。一个是mapreduce,简单来说就是把一件事分解成很多件事并行处理,然后再汇总结果。
纯手打。

reuse和reduce的区别?

reuse再使用 / 再使用,重复利用;
reduce:
减少 / 降低 / 使处于 / 把…分解。

reduction跟reduce有什么联系?

reduction释义:
n. 减少;下降;缩小;还原反应
例句:
There are huge price reductions in this shopping mall.
这家购物中心在大减价。
词组:
noise reduction噪声降低,噪声消减
cost reduction成本降低
reduction method还原法;设置限制方法
reduction process还原过程;减除作业
direct reduction直接还原;直接归约
视频:
reduce释义:
vt. 减少;降低;使处于;把…分解
vi. 减少;缩小;归纳为
例句:
Mom reduced my living expenses by half.
妈妈减少了我一半的生活费。
词组:
reduce pollution降低污染
reduce weight整形美容减肥
reduce waste减少浪费
reduce by减少了
视频:
单词讲解每日单词例句