`
zhangyu8374
  • 浏览: 94787 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

有了OpenMP,MPI,为什么还要MapReduce?

阅读更多
OpenMP和MPI是并行编程的两个手段,对比如下:
  • OpenMP:线程级(并行粒度);共享存储;隐式(数据分配方式);可扩展性差;
  • MPI:进程级;分布式存储;显式;可扩展性好。
OpenMP采用共享存储,意味着它只适应于SMP,DSM机器,不适合于集群。MPI虽适合于各种机器,但它的编程模型复杂:
  • 需要分析及划分应用程序问题,并将问题映射到分布式进程集合;
  • 需要解决通信延迟大和负载不平衡两个主要问题;
  • 调试MPI程序麻烦;
  • MPI程序可靠性差,一个进程出问题,整个程序将错误;
其中第2个问题感受深刻。每次听我们部门并行组的人做报告,总是听到他们在攻克通信延迟大和负载不平衡的问题。一种并行算法的好坏就看它有没有很好的解决这两个问题。

与OpenMP,MPI相比,MapReduce的优势何在呢?
  • 自动并行;
  • 容错;
  • MapReduce学习门槛低。
附:
  • SMP(Symmetric multi-processing),共享总线与内存,单一操作系统映象。在软件上是可扩展的,而硬件上不能。
  • DSM(distributed shared memory),SMP的扩展。物理上分布存储;单一内存地址空间;非一致内存访问;单一操作系统映象。
分享到:
评论
1 楼 cychen1984 2009-01-18  
阁下从事哪方面的工作?
OpenMP在科学计算方面居于统治地位,对于多线程方面(包括多核)有很大的优势。
OpenMP+MPI的组合方式在集群方面有很成熟的案例。

MapReducesh是Google的人研究出来的一个模型,开发的一个针对大规模群组中的海量数据处理的分布式编程模型。以前没研究过,谢谢介绍。

相关推荐

    MapReduce海量数据并行处理课程复习提纲-20201

    1. 为什么需要并行计算? 随着单处理器性能提升的瓶颈显现,以及应用规模和数据量的急剧增长,为了应对超大计算量和计算复杂度,发展并行计算技术变得至关重要。并行计算可以通过多个处理器同时处理任务,显著提高...

    华工高性能实验

    这门课程的实验部分涵盖了三个关键领域:OpenMP、MPI(Message Passing Interface)和Hadoop,这些都是现代并行计算和分布式计算领域的核心技术。 首先,OpenMP(Open Multi-Processing)是一种用于共享内存多...

    ustc多核并行_上机实验报告_徐云(一共5次)

    这篇实验报告集合涵盖了多核并行计算的多个关键领域,由中科大徐云老师指导,共分为五次实验,分别涉及OpenMP、MPI、GPU、Intel Parallel Studio以及Hadoop等技术。下面将对这些核心知识点进行详细介绍。 1. **...

    模拟样题1

    【DNS并行矩阵算法】DNS并行矩阵算法的时间复杂度分析中,当输入矩阵大小为\( n \times n \),处理器数量为\( p \),且\( np = 3 \)时,算法的时间复杂度为\( O(n^3/p) \),对应选项D。 【并行算法设计过程】并行...

    2.并行计算体系结构和编程模型I-lwm1

    1.为什么需要并行计算? 随着计算机技术的发展,人们对计算性能的需求不断增加。单核处理器性能提升接近极限,无法满足人们对计算性能的需求。因此,人们开始探索新的计算模型,即并行计算技术。 2.并行计算技术的...

    并行处理技术在地理信息数据处理中的应用.pdf

    本文主要探讨了几种主流的并行编程模式,如OpenMP、MPI和MapReduce,并结合关系型数据库与分布式空间数据管理系统,提出了面向并行处理的地理信息存储模型和数据组织模型。 OpenMP是一种共享内存并行编程模型,适用...

    Google并行程序的开发(PPT)

    然而,OpenMP的局限性在于其局限于单一进程,可扩展性受限于单个计算机的处理器数量,且对于某些复杂的编程场景,如动态线程创建,当前的规范仍有不足。 另一方面,MPI(Message Passing Interface)是为分布式内存...

    如何编写并行程序-第一门课程How To Write Parallel Programs - A First Course

    OpenMP 是一种在共享内存多处理器平台上实现并行程序的标准,它通过预处理指令和库函数为程序员提供了简单的并行化手段。学习OpenMP的基本用法是进入并行编程领域的第一步。 - **关键指令**:`#pragma omp parallel...

    矩阵相乘 并行算法.pdf

    实验的要求包括生成矩阵作为输入,使用如MPI、OpenMP或MapReduce等并行处理技术进行编程,并且要求矩阵的大小至少为1000x1000。加速比是评估并行算法性能的关键指标,它表示并行算法相对于串行算法的速度提升。 在...

    异构计算并行编程模型综述.docx

    MapReduce 是一种并行编程模型,它通过将大规模数据处理任务分解为若干个较小的子任务,并将这些子任务分配给多个处理节点来协同完成,从而实现了大规模数据的快速处理和分析。MapReduce 模型的提出可以追溯到 1958 ...

    并行程序设计简介文档

    4. Hadoop/Spark:在大数据处理领域,Hadoop提供了分布式文件系统HDFS和MapReduce编程模型,而Spark则引入了更高效的DAG(有向无环图)计算模型,两者都支持并行数据处理。 三、并行程序设计挑战 1. 数据一致性:...

    The Free Lunch Is Over

    为了应对这一转变,开发者需要学习和掌握如线程管理、同步机制、锁、条件变量、信号量等多线程编程技术,以及像OpenMP、MPI(Message Passing Interface)等并行计算框架。同时,理解和运用MapReduce这样的分布式...

    Course_ParallelComputing.rar

    2. **编程模型与接口**:例如OpenMP、MPI(Message Passing Interface)和CUDA等,这些都是实现并行计算的常用工具。OpenMP适合共享内存环境,而MPI则用于分布式系统,CUDA则是NVIDIA GPU并行计算的API。 3. **案例...

    东北大学2018并行程序设计真题图片.zip

    常见的并行算法有:分治法(Divide and Conquer)、MapReduce模型、数据并行(Data Parallelism)和任务并行(Task Parallelism)。例如,分治法将大问题分解为小问题,然后并行解决;MapReduce模型在大数据处理中...

    并行计算课件

    分布式内存系统中,每个处理器或节点都有自己独立的内存,并通过网络进行通信;GPU并行计算则利用图形处理器的强大计算能力,执行大规模数据并行任务。 1.2 并行度 并行度是指系统可以同时执行的任务数量,它直接...

    计算机科学及技术专业方向介绍.doc

    4. 基于超算平台的应用软件开发:课程目标是让学生熟悉并行软件和硬件,掌握MPI、Pthreads和OpenMP等并行编程技术,从而能开发和设计适用于超算平台的应用软件,提升综合设计能力和问题解决能力。 在“大数据技术”...

    华南理工大学云计算试卷.pdf

    在并行计算中,可以使用OpenMP或MPI来实现。OpenMP会在共享内存环境中划分任务,MPI则适用于分布式内存环境。对于BSP模型,需要考虑计算、带宽和同步开销。 9. **并行算法性能分析**:计算加速比是并行执行时间与...

    并行计算 结构·算法·编程

    并行计算模型如OpenMP、MPI(Message Passing Interface)和PGAS( Partitioned Global Address Space)提供了不同的抽象层次和控制机制,帮助开发者管理这些复杂性。 并行计算不仅仅关乎速度,也涉及能源效率。...

Global site tag (gtag.js) - Google Analytics