CN102193830B - 面向众核环境的分治映射/归约并行编程模型 - Google Patents
面向众核环境的分治映射/归约并行编程模型 Download PDFInfo
- Publication number
- CN102193830B CN102193830B CN201010124991.6A CN201010124991A CN102193830B CN 102193830 B CN102193830 B CN 102193830B CN 201010124991 A CN201010124991 A CN 201010124991A CN 102193830 B CN102193830 B CN 102193830B
- Authority
- CN
- China
- Prior art keywords
- mapping
- many
- reduction
- programming model
- core
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明属计算机软件应用领域,具体涉及一种面向众核环境的分治映射/归约并行编程模型。其包括:分治映射/规约并行编程模型,主存复用,众核调度和流水线执行技术,其中分治映射/规约并行编程模型对海量数据进行分块处理,主存复用、众核调度和流水线执行技术优化众核环境的资源使用。本发明能有效提高众核环境下海量数据处理能力,利用众核体系结构特征,复用主存减少使用量、优化缓存访问提高命中率、避免处理单元闲置提高执行效率。本发明对应用程序员透明,无需改动程序源代码。输入与输出也完全与映射/规约模型一致。可应用在众核计算系统中处理大规模数据。
Description
技术领域
本发明属计算机软件应用领域,具体涉及一种面向众核环境的分治映射/归约并行编程模型。本发明映射/归约模型可应用在众核计算系统中处理大规模数据。
背景技术
随着多核和众核技术的不断普及和持续发展,计算机的处理能力得以继续遵循摩尔定律以每十八个月一倍的速度增长。目前四核乃至八核处理器已成为商用服务器配置的主流,逾期具有一百个以上核的处理器也将在数年内诞生。
飞速增长的计算能力为实现对海量数据的快速处理提供了契机。海量数据是指数据量超过万亿字节数量级以上的数据集合,对于它们的分析处理已经成为当今商业行为和科学计算的重要组成部分。例如,在世界搜索类服务领域具有领导地位的谷歌(Google)公司的崛起正是凭借其对海量数据的高速搜索能力,而生物基因学的研究也依赖于对海量基因片段的比对和分析。目前对于海量数据的处理还只能通过大规模的分布式系统来完成,但是众核计算环境提供的巨大计算潜力已经引起了人们的极大关注,并尝试使用众核计算环境来处理海量数据。
针对海量数据的应用由于其除了业务逻辑本身外还需要考虑执行效率、并行安全性、系统可靠性等多方面问题,因此具有较高的复杂度。当前业界的大型系统主要采用基于并行编程模型的方式来简化和规范并行程序的开发。并行编程模型通过高效可靠的运行时环境向应用程序员提供一套简单的编程接口,使他们仅关注于业务逻辑本身而不再需要考虑其他由于海量数据和高并行性执行带来的问题。其中由谷歌(Google)公司于2004年在国际操作系统设计与实现大会(OSDI)上首次提出的映射/规约(MapReduce)并行编程模型(以下简称“映射/规约模型”),因其简单合理的编程接口被业界广泛接受和采用。该模型针对大规模分布式集群环境设计,能够使用上万计算节点同时对百万亿字节规模的海量数据进行高效的并行处理。仅谷歌公司在过去5年中,每日都有超过10万个基于映射/规约模型的任务运行在分布于世界各地的超大规模数据中心的集群上,对2亿亿字节以上的海量数据进行处理。其他不同领域的企业,如雅虎(Yahoo!),百度(Baidu),易趣(ebay)和沃尔玛(Walmart)等均使用基于映射/规约并行编程模型的系统来处理日常业务中的海量数据。
映射/规约模型主要由“映射(Map)”和“规约(Reduce)”两个阶段构成,“映射”阶段根据输入数据产生一系列的中间键值对,“规约”阶段则把具有相同键的所有中间键值对规约到一起(如图1所示)。映射/规约模型的运行时环境使用分布式文件系统做为持久存储层,实现海量数据的读写和存储。运行时环境由一个控制节点和大量计算节点构成,控制节点负责任务的分发和监控,计算节点负责任务的实际计算。“映射”阶段产生的中间数据存储于分布式文件系统,并通过网络传递给“规约”阶段。这样的设计能够在充份发掘数据处理中的并行性发挥计算节点的计算能力的同时,又能够有效的解决大规模分布式系统运行中存在的可靠性问题。
随着众核处理能力的飞速增长,采用众核平台来进行海量数据处理成为可能。众核平台因其不需要依赖硬盘存储和网络传输中间数据,相比同计算能力下的集群具有更高的执行效率。因此并行编程模型被移植到众核环境下来支持针对大量数据的应用,比如斯坦福大学将映射/规约模型移植到了共享内存体系结构下。但是这些实现都遵循原有针对大型分布式环境设计的并行编程模型的设计,尚存在如下不足:不能充分发挥众核平台特性。在编程模型和运行时设计两方面都限制了综合平台在海量数据处理应用方面的能力。
发明内容
本发明的目的是克服现有技术的不足,主要解决如何有效利用众核环境中计算资源来高效处理海量数据。
众核环境相对于大规模集群环境存在计算资源固定且相对有限的问题,但同时也具有数据交换迅捷和计算单元协同好的优势。而目前的映射/规约模型在众核上的设计和实现并没有考虑到上述差异,仍然直接对整个海量数据集进行处理。当需要处理的数据规模超出系统资源限制时,该模型会导致缓存和主存耗尽,以及处理器单元闲置等问题,极大的影响了处理效率。
为解决上述问题,本发明提供了一种面向众核环境的分治映射/归约并行编程模型,其特征在于,其包括:分治映射/规约并行编程模型,主存复用,众核调度和流水线执行技术,其中分治映射/规约并行编程模型对海量数据进行分块处理,主存复用、众核调度和流水线执行技术优化众核环境的资源使用。所述的分治映射/规约模型有效限制每次数据处理的规模,所述的三项优化技术充份利用模型和平台特性。
本发明中,分治映射/规约模型的最大特点在于采用多次循环执行映射/规约操作,并且每次操作只处理海量数据中的一部分。在每一组映射/规约阶段前依据当前众核系统资源状况划分数据,并在完成映射/规约操作后在主存中保存生成的“部分结果”。当完成对全部海量数据的处理后,再通过额外的“最终规约”阶段将前面循环产生的所有“部分结果”规约成“最终结果”。该模型能够有效的避免由于单次映射/规约的数据量过大而引起的缓存和主存颠簸问题。
在执行映射/规约操作时,绝大部分的主存被用来存储输入数据和临时中间数据。主存复用技术利用分治映射/规约模型中每组映射/规约操作的“部分结果”都被独立保存这一特点,使用同一主存空间来存储循环中每组映射/规约操作所需的输入数据和临时中间数据。该技术解决了对主存空间的消耗随输入数据的增加而线性增加的问题,避免主存耗尽引发昂贵的主存与外存交换开销;同时也解决了大量主存空间被不再使用的输入数据和临时中间数据占用的问题,有效提高了主存利用率。
众核调度技术针对众核体系结构中同一处理器上的多个核共享缓存的特征,将单次映射/规约操作涉及的计算任务调度到属于同一处理器的多个核上,避免跨处理器的缓存访问。由于处理器内部的核间共享缓存访问速度远远快于跨处理器的缓存访问速度,众核调度技术能够极大的提高缓存命中率从而提升映射/规约操作的数据访问速度。
映射/规约模型的每个阶段具有强依赖关系,比如最终结果必须等待规约阶段的所有并行操作全部完成,这样必然导致系统中处理单元的闲置。流水线执行技术利用分治映射/规约模型循环执行映射/规约过程中,前一组的“规约”操作与后一组的“映射”操作不存在强依赖关系的特征,让较早完成“规约”操作的处理单元提前开始后一次的“映射”操作。该技术能够避免处理单元闲置提高处理单元利用率。
本发明的有益效果是,有效提高众核环境下海量数据处理能力,利用众核体系结构特征,复用主存减少使用量、优化缓存访问提高命中率、避免处理单元闲置提高执行效率。本发明提出的分治映射/规约模型和三项优化技术对应用程序员透明,无需改动程序源代码。输入与输出也完全与映射/规约模型一致。
为了便于理解,以下将通过具体的附图和实施例对本发明的进行详细地描述。需要特别指出的是,具体实例和附图仅是为了说明,显然本领域的普通技术人员可以根据本文说明,在本发明的范围内对本发明做出各种各样的修正和改变,这些修正和改变也纳入本发明的范围内。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1为现有技术映射/规约模型示意图。
图2为本发明的分治映射/规约模型示意图。
图3为本发明的主存复用技术示意图。
图4为本发明的众核调度技术示意图。
图5为本发明的流水线执行技术示意图。
具体实施方式
实施例1
示例性的分治映射/规约模型的执行流程如图2所示,相对于映射/规约模型,分治模型采用循环执行“映射/规约”阶段,而每次映射/规约阶段的操作相当于原来映射/规约模型下的一次完整操作,所不同的仅仅是输入只是整个海量数据集的一部分。因此模型的运行时系统首先依据当前系统资源状况在粗粒度上划分海量数据集作为循环执行“映射/规约”的输入,而每次的“映射/规约”阶段再将输入的部分数据进行细粒度的划分,分发给“映射”阶段的每个执行单元。一次映射/规约操作产生的“部分结果”被保存在主存中等待进一步的处理。当整个海量数据集完成映射/规约操作,“最终规约”阶段再将所有的“部分结果”规约成为“最终结果”。该阶段的操作以及输出数据与“规约”阶段完全一致,所不同的仅仅是输入数据是经过映射/规约处理的“部分结果”而非映射产生的中间数据。最后的合并操作与映射/规约模型中的合并操作相同。
图3描述了主存复用技术。该技术使用固定的主存空间来存储输入数据和中间数据,每次执行“映射/规约”阶段的操作都复用该主存空间。空间大小由运行时系统依据当前系统资源状况配置,并根据空间的大小来划分每次“映射/规约”操作的输入数据大小。主存空间在开始第一次“映射/规约”操作前分配,在最后一次“映射/规约”操作后释放。
示例性的众核调度技术如图4所示:运行时系统的任务调度器将所有的处理单元分组,属于同一个处理器的核被分在一个组。调度器以组为单位进行调度,将一个“映射/规约”任务调度给属于一个组的核来处理。在“映射/规约”循环处理过程中,各组间无需跨处理器数据传递并独占缓存。处理器间可以并行执行“映射/规约”任务。
示例性的流水线执行技术如图5所示:图的左列描述了“映射/规约”阶段正常执行下的处理器使用情况。由于原映射/规约模型存在依赖关系,后一阶段的执行必须等待前一阶段的执行全部结束,因此执行过程中存在处理器闲置(图中黑色部分)。流水线执行技术利用前一次“规约”操作和后一次“映射”操作间的不存在依赖关系的特点,消除“规约”阶段的处理器闲置现象,从而缩短整个过程的执行时间时间。
Claims (1)
1.面向众核环境的分治映射/归约并行编程模型的实施方法,其特征在于,其包括:分治映射/归约并行编程模型,主存复用,众核调度和流水线执行技术,其中分治映射/归约并行编程模型对海量数据进行分块处理,主存复用、众核调度和流水线执行技术优化众核环境的资源使用;
所述的分治映射/归约模型采用多次循环执行映射/归约操作,每次操作只处理海量数据中的一部分;其中,所述的分治映射/归约模型在每一组映射/归约阶段前依据当前众核系统资源状况划分数据,并在完成映射/归约操作后在主存中保存生成的“部分结果”;当完成对全部海量数据的处理后,再通过额外的“最终归约”阶段将前面循环产生的所有“部分结果”归约成“最终结果”;
所述的主存复用技术使用同一主存空间存储循环中每组映射/归约操作所需的输入数据和临时中间数据;
所述的众核调度技术将单次映射/归约操作涉及的计算任务调度到属于同一处理器的多个核上;
所述的流水线执行技术将较早完成“归约”操作的处理单元提前开始后一次的“映射”操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010124991.6A CN102193830B (zh) | 2010-03-12 | 2010-03-12 | 面向众核环境的分治映射/归约并行编程模型 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010124991.6A CN102193830B (zh) | 2010-03-12 | 2010-03-12 | 面向众核环境的分治映射/归约并行编程模型 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102193830A CN102193830A (zh) | 2011-09-21 |
CN102193830B true CN102193830B (zh) | 2014-06-11 |
Family
ID=44601938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010124991.6A Expired - Fee Related CN102193830B (zh) | 2010-03-12 | 2010-03-12 | 面向众核环境的分治映射/归约并行编程模型 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102193830B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108710488A (zh) * | 2018-05-16 | 2018-10-26 | 中山大学 | 网格应用程序在众核体系结构上的性能优化框架及方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9953137B2 (en) * | 2012-07-06 | 2018-04-24 | Nant Holdings Ip, Llc | Healthcare analysis stream management |
CN102902589B (zh) * | 2012-08-31 | 2016-06-29 | 浪潮电子信息产业股份有限公司 | 一种集群mic作业的管理及调度方法 |
CN102902512B (zh) * | 2012-08-31 | 2015-12-16 | 浪潮电子信息产业股份有限公司 | 一种基于多线程编程及消息队列的多线程并行处理方法 |
CN103942195B (zh) * | 2013-01-17 | 2017-07-25 | 中国银联股份有限公司 | 一种数据处理系统以及数据处理方法 |
CN103257904B (zh) * | 2013-04-24 | 2016-05-04 | 上海交通大学 | 优化众核系统修复性能的运算流图映射方法及装置 |
CN103838552B (zh) * | 2014-03-18 | 2016-06-22 | 北京邮电大学 | 4g宽带通信系统多核并行流水线信号的处理系统和方法 |
CN104731968B (zh) * | 2015-04-08 | 2018-06-19 | 河海大学 | 一种单机的大规模数据集的聚类挖掘方法 |
CN111124626A (zh) * | 2018-11-01 | 2020-05-08 | 北京灵汐科技有限公司 | 一种众核系统及其数据处理方法和处理装置 |
CN117785480B (zh) * | 2024-02-07 | 2024-04-26 | 北京壁仞科技开发有限公司 | 处理器、归约计算方法及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339523A (zh) * | 2007-07-05 | 2009-01-07 | 国际商业机器公司 | 多处理器环境中的流水线处理方法和设备 |
CN101556534A (zh) * | 2009-04-21 | 2009-10-14 | 浪潮电子信息产业股份有限公司 | 一种众核结构的大规模数据并行计算方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090077561A1 (en) * | 2007-07-05 | 2009-03-19 | International Business Machines Corporation | Pipeline Processing Method and Apparatus in a Multi-processor Environment |
-
2010
- 2010-03-12 CN CN201010124991.6A patent/CN102193830B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339523A (zh) * | 2007-07-05 | 2009-01-07 | 国际商业机器公司 | 多处理器环境中的流水线处理方法和设备 |
CN101556534A (zh) * | 2009-04-21 | 2009-10-14 | 浪潮电子信息产业股份有限公司 | 一种众核结构的大规模数据并行计算方法 |
Non-Patent Citations (2)
Title |
---|
Colby Ranger 等.Evaluating MapReduce for Multi-core and Multiprocessor Systems.《IEEE 13th International Symposium on High Performance Computer Architecture》.2007,13-24. |
Evaluating MapReduce for Multi-core and Multiprocessor Systems;Colby Ranger 等;《IEEE 13th International Symposium on High Performance Computer Architecture》;20070214;13-24 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108710488A (zh) * | 2018-05-16 | 2018-10-26 | 中山大学 | 网格应用程序在众核体系结构上的性能优化框架及方法 |
CN108710488B (zh) * | 2018-05-16 | 2022-04-05 | 中山大学 | 网格应用程序在众核体系结构上的性能优化框架及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102193830A (zh) | 2011-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102193830B (zh) | 面向众核环境的分治映射/归约并行编程模型 | |
CN110704360B (zh) | 一种基于异构fpga数据流的图计算优化方法 | |
CN109002659B (zh) | 一种基于超级计算机的流体机械仿真程序优化方法 | |
CN105487838A (zh) | 一种动态可重构处理器的任务级并行调度方法与系统 | |
CN107463442B (zh) | 一种星载多核SoC任务级负载均衡并行调度方法 | |
CN112527514B (zh) | 基于逻辑扩展的多核心安全芯片处理器及其处理方法 | |
CN114970294B (zh) | 基于神威架构的三维应变仿真pcg并行优化方法及系统 | |
CN101833438A (zh) | 一种基于多重并行的数据通用处理方法 | |
CN115658323A (zh) | 基于软硬件协同的fpga潮流计算加速架构和方法 | |
Awatramani et al. | Increasing gpu throughput using kernel interleaved thread block scheduling | |
CN112446471B (zh) | 基于异构众核处理器的卷积加速方法 | |
CN110543711B (zh) | 一种数值堆热工水力子通道模拟的并行实现与优化方法 | |
CN101387965B (zh) | 并行程序编译方法及系统 | |
CN111177979A (zh) | 一种基于OpenMP对流体动力学软件GASFLOW的优化方法 | |
CN113010316B (zh) | 一种基于云计算的多目标群智能算法并行优化方法 | |
Wang et al. | A survey of system scheduling for hpc and big data | |
Jiang et al. | An optimized resource scheduling strategy for Hadoop speculative execution based on non-cooperative game schemes | |
CN110262884B (zh) | 一种基于申威众核处理器的核组内多程序多数据流分区并行的运行方法 | |
CN114185519A (zh) | 一种优化Spark和机器学习框架整合的方法及装置 | |
Huang et al. | A novel multi-CPU/GPU collaborative computing framework for SGD-based matrix factorization | |
CN112148361B (zh) | 一种用于处理器加密算法移植的方法及系统 | |
Leng et al. | Research on cloud computing and key technologies | |
CN103246563B (zh) | 一种具有存储感知的多层分块调度方法 | |
CN113313251B (zh) | 一种基于数据流架构的深度可分离卷积融合方法及系统 | |
CN110675088B (zh) | 一种数字孪生系统复杂任务高效划分方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140611 Termination date: 20200312 |
|
CF01 | Termination of patent right due to non-payment of annual fee |