The invention relates to a source code compilation method and system based on MapReduce framework distributed computing environment, which can better distribute source code compilation to cluster machines for compilation by analyzing the dependence relationship between files in different stages, and provides and writes lock modules to make cluster machines write files concurrently with each other; the distributed computing environment based on MapReduce framework provided by the invention is based on MapReduce framework. Source code compilation method and system, using MapReduce mode to organize compilation work at different stages and form pipeline, realize multi-machine compilation at the same time, multi-level concurrent pipeline, reduce network transmission resources; and, concurrent write lock provides a collaborative mechanism, which can improve the speed of source code compilation and compilation task speed, task throughput.
【技术实现步骤摘要】
基于MapReduce框架分布式计算环境的源代码编译方法及系统
本专利技术涉及软件源代码编译方法、更具体涉及基于MapReduce框架分布式计算环境的源代码编译方法及系统。
技术介绍
信息化建设背景下,计算机软件应用的领域越来越多,随着应用领域的不断深入,计算机软件不断在扩大,软件代码规模随之越来越大。现在linux操作系统内核源代码数量已经到达百万级别。在4路cpu的服务器编译需要将近1-4小时的时间。一个完整的操作系统编译需要消耗将近1-2周的时间。因此,极其需要高效、稳定、可扩展的编译技术来提高编译速度。在现有的编译技术条件下,为了提高编译速度,可以对编译设备进行纵向扩展:为单一服务器增添更多资源,增加更多(或更大)的CPU、内存、硬盘、网卡等。但是局限于机箱硬件空间大小,其扩展程度有限。随着计算机硬件设备的普及、价格的不断下降以及计算能力的不断升级。我们可以进行横向扩展:增加更多的节点构建庞大的计算机集群。从而形成分布计算,使计算能力得到数量级提升。目前现有的编译技术存在以下不足:编译器只能利用单设备上的多CPU多核心,无法把任务合理、高效地分配到多个机器 ...
【技术保护点】
1.一种基于MapReduce框架分布式计算环境的源代码编译方法,其特征在于,包括如下步骤:步骤S1:把源代码编译划分为N个阶段,每个阶段对应处理不同的编译任务;依次对第一阶段至第N阶段重复步骤S2‑S4,直到完成源代码编译;步骤S2:对所在阶段进行Map任务划分,将所在阶段的编译任务分配到计算机集群中的不同机器上执行;步骤S3:每个机器完成具体的编译任务;步骤S4:对所在阶段编译任务生成的目标文件进行Reduce中间文件归并;其中,N大于1。
【技术特征摘要】
1.一种基于MapReduce框架分布式计算环境的源代码编译方法,其特征在于,包括如下步骤:步骤S1:把源代码编译划分为N个阶段,每个阶段对应处理不同的编译任务;依次对第一阶段至第N阶段重复步骤S2-S4,直到完成源代码编译;步骤S2:对所在阶段进行Map任务划分,将所在阶段的编译任务分配到计算机集群中的不同机器上执行;步骤S3:每个机器完成具体的编译任务;步骤S4:对所在阶段编译任务生成的目标文件进行Reduce中间文件归并;其中,N大于1。2.如权利要求1所述的基于MapReduce框架分布式计算环境的源代码编译方法,其特征在于,所述步骤S1还包括:分析不同源代码编译构建工具所使用的配置文件,提取不同阶段源代码文件之间的相互依赖关系,生成每个阶段编译任务的输入、输出文件之间的依赖关系图-DAG图;并且,在步骤S2中,在进行Map任务划分时,如果相关依赖文件能分配到同一台及其上,则把相关依赖的文件分配到同一台机器上;如果相关依赖的文件需要分配多台设备上,则使用平均分配的原则分配到每台设备上,使得不同机器的任务之间的依赖尽可能少。3.如权利要求1所述的基于MapReduce框架分布式计算环境的源代码编译方法,其特征在于,所述源代码编译至少能够划分为两个阶段:编译阶段及链接阶段。4.如权利要求3所述的基于MapReduce框架分布式计算环境的源代码编译方法,其特征在于,所述源代码编译能够划分为六个阶段:编译阶段、链接阶段、优化阶段、调试信息生成阶段、代码加密阶段以及数字签名阶段。5.如权利要求1所述的基于MapReduce框架分布式计算环境的源代码编译方法,其特征在于:所述步骤S4中,使用并发写锁系统进行目标文件的Reduce中间文件归并,对不同机器上的目标文件进行分配,将目标文件分配到同一文件同一段不同的区域。6....
【专利技术属性】
技术研发人员:劳生,刘艳彬,吴春光,刘晓东,申利飞,
申请(专利权)人:中标软件有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。