CN109799991B - 基于MapReduce框架分布式计算环境的源代码编译方法及系统 - Google Patents

基于MapReduce框架分布式计算环境的源代码编译方法及系统 Download PDF

Info

Publication number
CN109799991B
CN109799991B CN201711138498.8A CN201711138498A CN109799991B CN 109799991 B CN109799991 B CN 109799991B CN 201711138498 A CN201711138498 A CN 201711138498A CN 109799991 B CN109799991 B CN 109799991B
Authority
CN
China
Prior art keywords
compiling
source code
files
stage
task
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.)
Active
Application number
CN201711138498.8A
Other languages
English (en)
Other versions
CN109799991A (zh
Inventor
劳生
刘艳彬
吴春光
刘晓东
申利飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Standard Software Co Ltd
Original Assignee
China Standard Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Standard Software Co Ltd filed Critical China Standard Software Co Ltd
Priority to CN201711138498.8A priority Critical patent/CN109799991B/zh
Publication of CN109799991A publication Critical patent/CN109799991A/zh
Application granted granted Critical
Publication of CN109799991B publication Critical patent/CN109799991B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明涉及基于MapReduce框架分布式计算环境的源代码编译方法及系统,通过分析不同阶段的文件之间依赖关系,使得源代码编译能更好分配到集群的机器进行编译;并提供并发写锁模块使得集群机器间相互并发写文件;本发明提供的基于MapReduce框架分布式计算环境的源代码编译方法及系统,使用MapReduce方式组织不同阶段的编译工作并形成流水线,实现了多机器同时编译、多阶并发流水线,减少了网络传输资源;并且,并发写锁提供的协同机制,能提高源代码编译速度以及提升编译任务速度、任务吞吐量。

Description

基于MapReduce框架分布式计算环境的源代码编译方法及 系统
技术领域
本发明涉及软件源代码编译方法、更具体涉及基于MapReduce框架分布式计算环境的源代码编译方法及系统。
背景技术
信息化建设背景下,计算机软件应用的领域越来越多,随着应用领域的不断深入,计算机软件不断在扩大,软件代码规模随之越来越大。现在linux操作系统内核源代码数量已经到达百万级别。在4路cpu的服务器编译需要将近1-4小时的时间。一个完整的操作系统编译需要消耗将近1-2周的时间。因此,极其需要高效、稳定、可扩展的编译技术来提高编译速度。
在现有的编译技术条件下,为了提高编译速度,可以对编译设备进行纵向扩展:为单一服务器增添更多资源,增加更多(或更大)的CPU、内存、硬盘、网卡等。但是局限于机箱硬件空间大小,其扩展程度有限。随着计算机硬件设备的普及、价格的不断下降以及计算能力的不断升级。我们可以进行横向扩展:增加更多的节点构建庞大的计算机集群。从而形成分布计算,使计算能力得到数量级提升。
目前现有的编译技术存在以下不足:编译器只能利用单设备上的多CPU多核心,无法把任务合理、高效地分配到多个机器上编译;现有的分布式编译也存在如下不足:缺少多级流水处理,编译任务吞吐量低下;任务分配简单,没有多阶段划分;动态调度算法复杂,难以高效稳运行;一节点资源紧张导致任务失败,无法重启任务,编译任务多以失败结束;网络资源利用没有规划等。因此现有的分布式编译系统的稳定性、可用性、及效率都存在问题。
发明内容
为解决现有技术存在的不足,本发明提供了一种基于MapReduce框架分布式计算环境的源代码编译方法,包括如下步骤:
步骤S1:把源代码编译划分为N个阶段,每个阶段对应处理不同的编译任务;
依次对第一阶段至第N阶段重复步骤S2-S4,直到完成源代码编译;
步骤S2:对所在阶段进行Map任务划分,将所在阶段的编译任务分配到计算机集群中的不同机器上执行;
步骤S3:每个机器完成具体的编译任务;
步骤S4:对所在阶段编译任务生成的目标文件进行Reduce中间文件归并;
其中,N大于1。
其中,所述步骤S1还包括:分析不同源代码编译构建工具所使用的配置文件,提取不同阶段源代码文件之间的相互依赖关系,生成每个阶段编译任务的输入、输出文件之间的依赖关系图-DAG图;
并且,在步骤S2中,在进行Map任务划分时,如果相关依赖文件能分配到同一台机器上,则把相关依赖的文件分配到同一台机器上;如果相关依赖的文件需要分配多台设备上,则使用平均分配的原则分配到每台设备上,使得不同机器的任务之间的依赖尽可能少。
其中,所述源代码编译至少能够划分为两个阶段:编译阶段及链接阶段。
其中,所述源代码编译能够划分为六个阶段:编译阶段、链接阶段、优化阶段、调试信息生成阶段、代码加密阶段以及数字签名阶段。
其中,所述步骤S4中,使用并发写锁系统进行目标文件的Reduce中间文件归并,对不同机器上的目标文件进行分配,将目标文件分配到同一文件同一段不同的区域。
其中,所述步骤S4还包括:将目标文件进行Reduce中间文件归并后将目标文件进行存储。
本发明另外提供了一种基于MapReduce框架分布式计算环境的源代码编译系统,包括:
依赖生成模块,用于分析不同源代码编译构建工具所使用的配置文件,提取不同阶段源代码文件之间的相互依赖关系,生成每个阶段编译任务的输入、输出文件之间的依赖关系图-DAG图;
DAG任务模块,与依赖生成模块连接,用于对DAG图切割,进而对每个阶段的编译任务进行划分;
多个任务处理模块,每个任务处理模块均与DAG任务模块连接,用于接收DAG任务模块划分的任务,并由此完成具体的任务;
并发写锁模块,与多个任务处理模块及DAG任务模块连接,用于根据所写入的目标文件的大小进行文件分区划分算法,使多个任务处理模块中的目标文件能够并发写入到同一文件同一段不同的区域。
其中,所述DAG任务模块对DAG图切割的原则为:如果相关依赖文件能分配到同一台机器上,则把相关依赖的文件分配到同一台机器上;如果相关依赖的文件需要分配多台设备上,则使用平均分配的原则分配到每台设备上,使得不同机器的任务之间的依赖尽可能少。
其中,所述DAG任务模块的作用还包括:监控每个任务处理模块的运行情况,根据用户配置的错误判断情况,以及当前源代码编译系统的运行情况进行任务调度。
其中,还包括分布式文件模块,用于存储目标文件,且并发写锁模块通过分布式文件模块与DAG任务模块连接。
本发明提供的基于MapReduce框架分布式计算环境的源代码编译方法及系统,使用MapReduce方式组织不同阶段的编译工作并形成流水线,实现了多机器同时编译、多阶并发流水线,减少了网络传输资源;并且,并发写锁提供的协同机制,能提高源代码编译速度以及提升编译任务速度、任务吞吐量。
附图说明
图1:本发明的基于MapReduce框架分布式计算环境的源代码编译系统的结构示意图;
图2:本发明的一实施例的编译流程示意图;
图3:本发明的一实施例的四级流水线图;
图4:本发明的一实施例的依赖关系图划分示意图;
图5:本发明的一实施例的并发写锁模块合并文件示意图。
附图标记说明
10 依赖生成模块
20 DAG任务模块
30 任务处理模块
40 并发写锁模块
50 分布式文件模块。
具体实施方式
为了对本发明的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本发明的技术方案及其产生的有益效果。
针对现有的编译器的单机处理速度以及分布式编译系统存在的速度、稳定性、扩张性不足的问题,本发明提供的基于MapReduce框架分布式计算环境的源代码编译方法及系统,基于分阶段编译以实现多级流水处理的思路,把复杂的分布式处理任务简化分解成任务分配算法并重启不同阶段任务,从而提高系统吞吐率并极大提高稳定性。
本发明基于MapReduce编程模型。Map(映射)的意思为:划分计算数据和计算任务并分配到不同机器上并行运行;Reduce(归约)的意思为:执行任务后,收集计算结果进行归纳。MapReduce编程模型极大简化分布式并行编程的设计,采用该模型的系统能简单高效地并发执行。编程人员只需要将自己的程序划分到两个以上的阶段就能将自己的程序运行在分布式系统上。因为使用分布式环境,其横向扩展性很好,能添加非常多的计算节点;同时,由于任务划分为小的子任务,不但任务之间能并发执行,而且小任务失败后通过错误恢复等修正方式继续执行,使得整个编译任务能更加稳定执行。
本发明提供的基于MapReduce框架分布式计算环境的源代码编译方法,包括如下步骤:
步骤S1:由于计算机软件的源代码编译可以划分为多个阶段,因此,本发明在第一步引入了多级流水线的概念,把源代码编译划分为N个阶段,每个阶段对应一个编译任务,编译任务划分为多个阶段后能形成多级流水线系统,使得对应的编译系统单位时间内能完成的任务数得到提高,划分的阶段越多,效果越显著。
考虑到各种延时情况下,执行任务的机器处于空闲状态,如:DAG任务模块派发任务到执行任务的机器上的往返时间;执行任务的机器读取分布式文件模块的源代码往返时间;执行任务的机器写输出文件到分布式文件模块的时间;以及执行任务的机器的CPU、磁盘操作IO等待时间;同时考虑到执行任务的机器系统没有满负载的时候,剩余的计算资源能处理更多的编译任务。因此,本发明中,较佳可以引入4级以上流水线系统。使得整个分布式计算环境的所有机器处于满负载状态,极大地提高资源利用率以及任务吞吐量。
更具体的,计算机软件的源代码编译过程一般可以划分为四个阶段:
1、编译阶段:把源代码编译成计算机指令或者接近机器指令的代码。
2、优化阶段:使用编译阶段的输出文件,进行代码优化。如,冗余指令删除等。
3、链接阶段:经过编译或者优化阶段输出后,把所有的文件,按照目标文件格式,进行符号重定位解析、程序变量内存分配等,最终形成一个可执行文件。
4、附加阶段:不同编译场景需求不同,这个阶段可以包括:进行代码混淆防止被竞争对手逆向分析获取软件内部运行机制;生成调试信息,有助于后续程序调试等。
对应于源代码的编译过程,本发明的基于MapReduce框架分布式计算环境的源代码编译方法,可把源代码编译划分为如下几个阶段:编译阶段、链接阶段、优化阶段、调试信息生成阶段、代码加密阶段以及数字签名阶段。
步骤S2:分析不同源代码编译构建工具所使用的配置文件,提取不同阶段配置源代码之间的相互依赖关系,生成每个阶段编译任务的输入、输出文件之间的依赖关系图-DAG图。
源代码构建工具常用的有maven、ant、make等,这些构建工具使用编译配置文件来编译计算机源代码。编译配置文件一般包含:源代码的编译参数、源代码之间的依赖关系、源代码之间的编译顺序。因此,本发明使用工厂模式,对不同的编译配置文件构造一个工厂方法,每个工厂方法负责解析一种源代码构建工具的编译配置文件,解析后的配置文件以DAG方式存储。通过解析编译配置文件,可以分析整理出编译过程不同阶段的文件之间的依赖关系。
步骤S7:对第一阶段至第N阶段重复步骤S3-S6,直到第N个阶段完成并获取输出文件,完成源代码编译。
步骤S3:对依赖关系图-DAG图进行分解,对多个编译配置文件进行预处理,根据计算机集群数量以及状态,合理把所在阶段的编译任务分配到计算机集群中的不同计算节点上执行。
由于现在计算机软件一般使用模块化方式组织系统。因此,计算源代码编译后会有多个输出文件。本发明对依赖关系图-DAG图进行分解的原则为:把所有依赖的文件尽可能分配到同一台机器上,也即,使得不同计算节点的任务之间依赖很少,一般情况下能达到不同计算节点之间没有相互依赖,从而使每个计算节点能独立运行,同时使得任务恢复算法变得更加简单有效。
这样,传统的编译器就可以有足够的信息进行有效预处理。因为传统的编译器把源代码翻译成机器语言是以单个源代码文件为基础单位。同样,优化、调试信息生成、代码加密等很多工作也是基于单个文件进行优化。因此传统的编译器可以直接在MapReduce框架分布式计算环境上运行。
步骤S4:每个计算节点执行具体的任务,如上文所述的编译、优化、链接、调试信息生成、代码加密、数字签名等。在执行编译任务时,对计算节点任务执行监控,使得任务出错后能根据用户配置的错误判断情况,以及根据当前系统运行情况进行任务调度,通过恢复单个计算节点上的任务,保证编译任务正常完成。
步骤S5:对所在阶段编译任务生成的目标文件进行Reduce中间文件归并;具体的,通过后文所述的并发写锁模块提供的并发写锁系统进行目标文件的Reduce中间文件归并,使用文件分区划分算法对不同节点上的目标文件进行分配,将目标文件分配到同一文件同一段不同的区域。
如编译程序、链接程序的目标文件一般包括data段、text段、bss段,当不同节点上的目标文件输出到同一个文件同一段时,首先为不同节点写入请求进行分配,把写作分配到同一个文件同一段不同的区域,保证各个节点能并发写入。因为链接过程实际上是把所有分散的机器指令合并到操作系统文件格式中,因此不会产生同一个文件分配到同一段同一块的相同区域或者所分配的区域有重叠的情况。
步骤S6:将目标文件进行存储,具体的,通过分布式文件系统实现目标文件的数据存储。
图1为本发明的基于MapReduce框架分布式计算环境的源代码编译系统的结构示意图,如图1所示,本发明另外提供了一种基于MapReduce框架分布式计算环境的源代码编译系统,包括依赖生成模块10、DAG任务模块20、多个任务处理模块30、并发写锁模块40以及分布式文件模块50,其中:
依赖生成模块10用于分析不同源代码编译构建工具所使用的系统配置文件,提取不同阶段源代码文件之间的相互依赖关系,使用工厂模式,对不同的配置文件构造一个工厂方法,生成每个阶段编译任务的输入、输出文件之间的依赖关系图-DAG图,从而为任务的划分提供依据。
DAG任务模块20与依赖生成模块10连接,用于对DAG图切割,将所有依赖的文件尽可能分配到同一台机器上,进而对每个阶段的编译任务进行划分;同时监控每个任务处理模块30的运行情况,根据用户配置的错误判断情况,以及当前源代码编译系统的运行情况进行任务调度,通过恢复单个计算节点上的任务,保证编译任务正常完成。
每个任务处理模块30均与DAG任务模块20连接,用于接收DAG任务模块20划分的任务,并由此完成具体的任务。
并发写锁模块40与多个任务处理模块30及分布式文件模块50连接,用于根据所写入的目标文件的大小进行文件分区划分算法,使多个任务处理模块30中的目标文件能够并发写入到同一文件同一段不同的区域,并通过分布式文件模块50提供的分布式文件系统实现目标文件的存储,分布式文件模块50与DAG任务模块20连接,存储完目标文件后,由DAG任务模块20对下一阶段的DAG图切割,进行下一个阶段的编译过程,依次循环,直到完成源代码编译。
图2及图3分别为本发明的一实施例的编译流程示意图及四级流水线图,本发明的一实施例中,源代码编译包括编译、优化、链接及调试信息生成四个阶段,对应的,使用四级流水线处理流程,每个阶段进行Map任务划分和Reduce中间文件归并。其中图3是流水线并发图;每一行表示一个编译任务,每个任务的每一个阶段消耗一个时间单位(T),当时间到了T1之后,系统能同时并发处理4个以上编译任务。
图4及图5分别为本发明的一实施例的依赖关系图划分示意图及并发写锁模块合并文件示意图,本发明的该实施例中,依赖生成模块10通过分析源代码编译构建工具所使用的配置文件,生成图3所示的依赖关系图,在对上述四个阶段进行任务划分时,均使用图3所示的依赖关系图。
具体的,依赖生成模块10使用构建工具make所使用编译配置文件Makefile进行分析。下列是Makefile的一个局部依赖关系。
A:a1.c a2.c
gcc-c al.c-O2
gcc-c a2.c-O2
gcc-o A al.o a2.o
a1.c:a1.h a2.h
a2.c:a2.h
其中,Makefile文件主要格式一般如下:
target:prerequisites
command
其中,target就是输出目标,表示在满足prerequisites所列的条件时执行command操作。
因此,该Makefile表示信息是:要生成A这个目标文件;A生成需要依赖于a1.c和a2.c这两个文件。如果a1.c与a2.c都是最新的则执行编译命令:gcc-c al.c-O2;gcc-ca2.c-O2;gcc-o A al.o a2.o。这三条命令分别是:编译a1.c文件并进行O2级别优化;编译a2.c文件并进行O2级别优化;使用al.o、a2.o链接生成A目标文件。a1.c文件依赖于a1.h、a2.h文件,a2.c文件依赖于a2.h文件。
该Makefile的依赖关系可以生成图3所示的,MAP1依赖关系。这个赖关系图(DAG)在不同阶段被DAG任务模块中进行图切割进而划分任务(Map任务划分)。
在编译阶段:我们可以把最小文件依赖文件:a1.c、a2.c、a1.h、a2.h、a2.h作为一个编译单元分配给一台独立的计算机进行编译。
在优化阶段:我们可以把最小文件依赖文件:al.o a2.o作为一个编译单元分配给一台独立的计算机进行优化。
在链接阶段:我们可以把最小文件依赖文件:al.o a2.o作为一个编译单元分配给一台独立的计算机进行链接生成目标文件A。
在调试信息生成阶段:我们可以把最小文件依赖文件:al.o a2.o作为一个编译单元分配给一台独立的计算机进行调试信息生成。
其中,上述各个阶段的Reduce步骤就是简单得把输出文件写入到分布式文件模块中去。
如果,出现al.o、a2.o分别在计算节点A、B中时。假设a1.o文件大小为150字节,a2.o文件大小为350字节。链接阶段根据写文件的大小进行文件分区划分算法:A机器向并发写锁模块提出申请,并返回分配的文件区域启始、结束偏移量为:0-149;B机器向并发写锁模块提出申请,并返回分配的文件区域启始、结束偏移量为:150-499。因此,由于文件写入区域不同,因此A、B机器能并发写入,同时能保护数据,进而提高系统并发效率。
本发明的有益效果如下:
1、使用MapReduce方式组织不同阶段的编译工作并形成流水线,实现了多机器同时编译、多阶并发流水线,减少了网络传输资源。
2、通过中间文件衔接流水线所涉及的多层体系结构,使本发明的编译方法及系统能够扩充到任意多层次,满足不同编译任务的需求。
3、通过切割DAG图形进行Map任务划分,使得系统在执行不同任务的过程中,能够减少相互等待文件、相互传输文件的时间,提高网络资源利用率,降低了CPU、内存以及磁盘空间的使用程度。
4、通过Reduce中间文件归并,使编译程序对应的目标文件存储到分布式文件模块中,并且根据写入文件的大小对文件区域进行划分,能够在分配的区域不同时,使不同机器的文件写入到不同区域,实现并发写入,能够高效并发写入实现保护数据的一致性。
5、并发写锁提供的协同机制,能提高源代码编译速度以及提升编译任务速度、任务吞吐量,协调多个机器并发完成文件写入操作。
本发明中,所谓的“目标文件”,是指源代码最终输出的目标文件,其形式包括:可执行程序、程序使用的动态库、静态库等。
本发明中,所谓的“中间文件”,一般指源代码编译过程中产生的临时文件,如:源代码经过编译阶段、优化阶段、链接阶段生成的后缀为“.o”的机器指令文件;源代码经过调试阶段生成后生成的后缀为“.sys”符号信息等。
本发明中,目标文件及中间文件均以文件形式存储在分布式文件系统中。
综上,本发明通过使用MapReduce把复杂任务分布式处理,简化分解任务分配并重启不同阶段任务,可极大提高系统的稳定性。
虽然本发明已利用上述较佳实施例进行说明,然其并非用以限定本发明的保护范围,任何本领域技术人员在不脱离本发明的精神和范围之内,相对上述实施例进行各种变动与修改仍属本发明所保护的范围,因此本发明的保护范围以权利要求书所界定的为准。

Claims (10)

1.一种基于MapReduce框架分布式计算环境的源代码编译方法,其特征在于,包括如下步骤:
步骤S1:把源代码编译划分为N个阶段,每个阶段对应处理不同的编译任务;
依次对第一阶段至第N阶段重复步骤S2-S4,直到完成源代码编译;
步骤S2:对所在阶段进行Map任务划分,将所在阶段的编译任务分配到计算机集群中的不同机器上执行;
步骤S3:每个机器完成具体的编译任务;
步骤S4:对所在阶段编译任务生成的目标文件进行Reduce中间文件归并;
其中,所述步骤S1还包括,分析不同源代码编译构建工具所使用的配置文件,提取不同阶段源代码文件之间的相互依赖关系,生成每个阶段编译任务的输入、输出文件之间的依赖关系图-DAG图,并对所述DAG图进行切割,以将所述源代码编译划分为N个阶段;
其中,N大于1。
2.如权利要求1所述的基于MapReduce框架分布式计算环境的源代码编译方法,其特征在于,在所述步骤S2中:
在进行Map任务划分时,如果相关依赖文件能分配到同一台机器上,则把相关依赖的文件分配到同一台机器上;如果相关依赖的文件需要分配多台设备上,则使用平均分配的原则分配到每台设备上,使得不同机器的任务之间的依赖尽可能少。
3.如权利要求1所述的基于MapReduce框架分布式计算环境的源代码编译方法,其特征在于,所述源代码编译至少能够划分为两个阶段:编译阶段及链接阶段。
4.如权利要求3所述的基于MapReduce框架分布式计算环境的源代码编译方法,其特征在于,所述源代码编译能够划分为六个阶段:编译阶段、链接阶段、优化阶段、调试信息生成阶段、代码加密阶段以及数字签名阶段。
5.如权利要求1所述的基于MapReduce框架分布式计算环境的源代码编译方法,其特征在于:所述步骤S4中,使用并发写锁系统进行目标文件的Reduce中间文件归并,对不同机器上的目标文件进行分配,将目标文件分配到同一文件同一段不同的区域。
6.如权利要求1所述的基于MapReduce框架分布式计算环境的源代码编译方法,其特征在于,所述步骤S4还包括:将目标文件进行Reduce中间文件归并后将目标文件进行存储。
7.一种基于MapReduce框架分布式计算环境的源代码编译系统,其特征在于包括:
依赖生成模块,用于分析不同源代码编译构建工具所使用的配置文件,提取不同阶段源代码文件之间的相互依赖关系,生成每个阶段编译任务的输入、输出文件之间的依赖关系图-DAG图;
DAG任务模块,与依赖生成模块连接,用于对DAG图切割,进而对每个阶段的编译任务进行划分;
多个任务处理模块,每个任务处理模块均与DAG任务模块连接,用于接收DAG任务模块划分的任务,并由此完成具体的任务;
并发写锁模块,与多个任务处理模块及DAG任务模块连接,用于根据所写入的目标文件的大小进行文件分区划分算法,使多个任务处理模块中的目标文件能够并发写入到同一文件同一段不同的区域。
8.如权利要求7所述的基于MapReduce框架分布式计算环境的源代码编译系统,其特征在于:所述DAG任务模块对DAG图切割的原则为:如果相关依赖文件能分配到同一台机器上,则把相关依赖的文件分配到同一台机器上;如果相关依赖的文件需要分配多台设备上,则使用平均分配的原则分配到每台设备上,使得不同机器的任务之间的依赖尽可能少。
9.如权利要求7所述的基于MapReduce框架分布式计算环境的源代码编译系统,其特征在于,所述 DAG任务模块的作用还包括:监控每个任务处理模块的运行情况,根据用户配置的错误判断情况,以及当前源代码编译系统的运行情况进行任务调度。
10.如权利要求7所述的基于MapReduce框架分布式计算环境的源代码编译系统,其特征在于:还包括分布式文件模块,用于存储目标文件,且并发写锁模块通过分布式文件模块与DAG任务模块连接。
CN201711138498.8A 2017-11-16 2017-11-16 基于MapReduce框架分布式计算环境的源代码编译方法及系统 Active CN109799991B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711138498.8A CN109799991B (zh) 2017-11-16 2017-11-16 基于MapReduce框架分布式计算环境的源代码编译方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711138498.8A CN109799991B (zh) 2017-11-16 2017-11-16 基于MapReduce框架分布式计算环境的源代码编译方法及系统

Publications (2)

Publication Number Publication Date
CN109799991A CN109799991A (zh) 2019-05-24
CN109799991B true CN109799991B (zh) 2022-03-18

Family

ID=66555607

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711138498.8A Active CN109799991B (zh) 2017-11-16 2017-11-16 基于MapReduce框架分布式计算环境的源代码编译方法及系统

Country Status (1)

Country Link
CN (1) CN109799991B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297632A (zh) * 2019-06-12 2019-10-01 百度在线网络技术(北京)有限公司 代码生成方法和装置
CN111026403A (zh) * 2019-12-10 2020-04-17 北京锐安科技有限公司 一种打包部署方法、装置、计算机设备及存储介质
CN111596923B (zh) * 2020-05-21 2024-02-23 广东三维家信息科技有限公司 Haxe静态链接库构建方法、装置和电子设备
CN113254022A (zh) * 2021-05-14 2021-08-13 北京车和家信息技术有限公司 分布式编译系统和方法
CN113986239B (zh) * 2021-10-22 2024-09-20 烽火通信科技股份有限公司 分布式编译方法、装置、设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117286A (zh) * 2015-09-22 2015-12-02 北京大学 MapReduce中任务的调度方法和流水化执行方法
KR101595967B1 (ko) * 2014-12-16 2016-02-22 충북대학교 산학협력단 데드라인 부여된 작업의 분산 처리 성능 향상을 위한 맵리듀스 스케쥴링 시스템 및 방법
CN106815071A (zh) * 2017-01-12 2017-06-09 上海轻维软件有限公司 基于有向无环图的大数据作业调度系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101595967B1 (ko) * 2014-12-16 2016-02-22 충북대학교 산학협력단 데드라인 부여된 작업의 분산 처리 성능 향상을 위한 맵리듀스 스케쥴링 시스템 및 방법
CN105117286A (zh) * 2015-09-22 2015-12-02 北京大学 MapReduce中任务的调度方法和流水化执行方法
CN106815071A (zh) * 2017-01-12 2017-06-09 上海轻维软件有限公司 基于有向无环图的大数据作业调度系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"mrcc – A Distributed C Compiler Systemon MapReduce";ERIC MA;《https://www.systutorials.com/mrcc-a-distributed-c-compiler-system-on-mapreduce/》;20100116;全文 *

Also Published As

Publication number Publication date
CN109799991A (zh) 2019-05-24

Similar Documents

Publication Publication Date Title
CN109799991B (zh) 基于MapReduce框架分布式计算环境的源代码编译方法及系统
US11436400B2 (en) Optimization method for graph processing based on heterogeneous FPGA data streams
Ekanayake et al. Mapreduce for data intensive scientific analyses
US8990827B2 (en) Optimizing data warehousing applications for GPUs using dynamic stream scheduling and dispatch of fused and split kernels
Geist et al. Major computer science challenges at exascale
KR20090018113A (ko) 그래프 기반 계산에서의 계산 자원의 관리
JP2014525640A (ja) 並列処理開発環境の拡張
CN102708088A (zh) 面向海量数据高性能计算的cpu/gpu协同处理方法
Wang et al. A framework for distributed data-parallel execution in the Kepler scientific workflow system
Li Parallel nonconvex generalized Benders decomposition for natural gas production network planning under uncertainty
EP2799986A1 (en) Apparatus and method for translating multithread program code
Du et al. EasyHPS: A multilevel hybrid parallel system for dynamic programming
CN116069480B (zh) 一种处理器及计算设备
Vijayalakshmi et al. The survey on MapReduce
Koschel et al. Efficiency experiments on Hadoop and Giraph with PageRank
US20140040907A1 (en) Resource assignment in a hybrid system
de Rezende et al. MapReduce with components for processing big graphs
Aarnio Parallel data processing with MapReduce
Wang et al. A self-adaptive computing framework for parallel maximum likelihood evaluation
Cheikh et al. On the distributed determinization of large NFAs
Qiao et al. A customizable MapReduce framework for complex data-intensive workflows on GPUs
Duan et al. Notice of Violation of IEEE Publication PrinciplesScientific Workflow Partitioning and Data Flow Optimization in Hybrid Clouds
Tekinerdogan et al. Architecture framework for modeling the deployment of parallel applications on parallel computing platforms
Zhu et al. Evaluating splash-2 applications using mapreduce
Ashraf et al. Massive Parallel Computational Model for Heterogeneous Exascale Computing System

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant