CN101667135B - Interactive parallelization compiling system and compiling method thereof - Google Patents

Interactive parallelization compiling system and compiling method thereof Download PDF

Info

Publication number
CN101667135B
CN101667135B CN 200910153082 CN200910153082A CN101667135B CN 101667135 B CN101667135 B CN 101667135B CN 200910153082 CN200910153082 CN 200910153082 CN 200910153082 A CN200910153082 A CN 200910153082A CN 101667135 B CN101667135 B CN 101667135B
Authority
CN
China
Prior art keywords
parallelization
interactive
program
plug
information
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
Application number
CN 200910153082
Other languages
Chinese (zh)
Other versions
CN101667135A (en
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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN 200910153082 priority Critical patent/CN101667135B/en
Publication of CN101667135A publication Critical patent/CN101667135A/en
Application granted granted Critical
Publication of CN101667135B publication Critical patent/CN101667135B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

本发明涉及编译技术,提供了一种交互式并行化编译系统和编译方法,该系统和方法根据自动分析所得的信息,结合通过交互方式由用户提供的信息,形成程序的计算结构特性,针对不同的计算,采用不同的并行化方法实现源到源的并行化转换。本发明提供了友好的交互手段、使用户与编译器紧密协作、并结合最新的先进并行化技术、并使串行应用程序在多核体系结构下获得好的性能。

Figure 200910153082

The present invention relates to compiling technology, and provides an interactive parallel compiling system and compiling method. The system and method combine the information obtained by automatic analysis with the information provided by the user in an interactive way to form the calculation structure characteristics of the program, aiming at different The calculation of different parallelization methods is used to realize the parallel transformation from source to source. The invention provides friendly interactive means, makes the user and the compiler cooperate closely, combines the latest advanced parallelization technology, and enables the serial application program to obtain good performance under the multi-core system structure.

Figure 200910153082

Description

A kind of interactive parallelization compiling system and Compilation Method thereof
Technical field
The present invention relates to technique of compiling, more specifically to a kind of interactive parallelization compiling system and Compilation Method.
Background technology
Along with the arrival in chip multi-core processor epoch, how to make application program under the multi-core system structure, obtain good performance, become a research focus.The method of accelerating the execution speed of application program mainly contains two kinds: the explicit use multiple programming of a kind of programmer of being technology is come developing application, this method fails to be promoted on a large scale owing to be subject to the limitation and the complexity of finding the solution problem of existing language model; Another kind is exactly to depend on parallel compiler automatically or semi-automatically with the serial program parallelization.
The serial program parallelization is the hot issue of parallel processing area research, also is one of high-performance computing sector problem that need solve.Parallelization is divided into full-automatic parallelization and two kinds of patterns of interactive parallelization.In recent years, people are obtaining some progress in parallelization aspect the theoretical and practical approach two, some full-automatic parallelization systems occurred, as the Polaris of UIUC (E Benna of University of Illinois-champagne branch school), the SUIF of Stanford (Stamford), the AFT of Fudan University etc.These full-automatic parallelization systems, technology such as analysis when induction variable identification by adopting interprocedural analysis, symbol data correlation analysis, array privatization, reduction identification, complex form and operation, do not need human intervention, automatically the part that can walk abreast in the discovery procedure generates parallel codes, has certain parallelization ability.But, because the parallelization algorithm that uses in full-automatic parallelization system can't be handled complicated application program effectively, and can't effectively handle the dependence between the small routine after a plurality of fractionations and keep original serial program semanteme simultaneously, cause the actual effect that compiles not ideal.The full-automatic parallelization of this class system science that is mainly used in is calculated, and can not be applicable to as field widely such as desktop application, multimedia and server.The interactive parallelization system then is by the effective information in the program is provided to the user, comprise that help users such as correlation analysis result, routine call figure, performance prediction result carry out parallelization work, the CAPTools of Greenwich (University of Greenwich) university for example, the Forge90 of the Fortran d system of rice university and Applied Parallel Research (using Research on Parallel institute) company etc. all is interactive parallelization systems.These interactive parallelization systems, when taking the automatically parallelizing technology as far as possible, permission people in the parallelization process improves the parallelization effect for checking and revise the parallelization result by utilizing artificial ability, has remedied the deficiency of full-automatic parallelization system on the part degree.But, above-mentioned interactive parallelization system does not generally all adopt up-to-date automatically parallelizing technology, and its exchange method and have much room for improvement with the compactedness of cooperation among users, therefore, their parallelization effect is still not ideal enough under existing multi-core system structure.
Summary of the invention
Technical matters to be solved by this invention is to propose a kind ofly to provide friendly interactive means, make user and compiler close cooperation and combine up-to-date advanced parallelization technology and make serial application to obtain the interactive parallelization compiling system and the Compilation Method thereof of the performance of getting well under the multi-core system structure.
The present invention provides a kind of interactive parallelization compiling system for solving its technical matters, comprise based on compiler, can be come the device of parallel processing by the polycaryon processor of computing machine by coming serial program is compiled as with user interactions, described compiler is the Eclipse compiler; Described interactive parallelization compiling system also comprises: the interactive parallelization plug-in unit, be used for obtaining interactive information with user interactions, the interactive parallelization engine receives described interactive information and carries out the automated procedures analysis, determines the device of the computation structure characteristic of serial program; The interactive parallelization engine, be used for interactive parallelization plug-in unit and user interactions and obtain interactive information, to described linear task computation, set up the expense model according to interactive information, employing is based on the graph model theoretical method, the procedure chart model is divided and dispatched, to excavate coarseness task level concurrency, to described recurrence task computation, the employing algorithm of dividing and ruling, use parallel storehouse that program is carried out conversion, described regular data is calculated, set up performance model according to interactive information, adopt affine partitioning algorithm that program is carried out conversion, it is parallel to obtain pipelining-stage, to described specific calculation, the employing expense drives, congenial multi-threaded parallel method based on the user experience information guiding of sampling and feeding back is excavated its concurrency, and the parallelization result is passed to described interactive parallelization plug-in unit, and the Eclipse compiler shows parallelization result's device.
The present invention also provides a kind of interactive parallelization Compilation Method, based on compiler, can come the concurrent program of parallel processing by the polycaryon processor of computing machine by coming serial program is compiled as with user interactions, described compiler is the Eclipse compiler, described interactive parallelization Compilation Method comprises: the preproduction phase: interactive parallelization plug-in unit and user interactions obtain interactive information, the interactive parallelization engine receives described interactive information and carries out the automated procedures analysis, determines the computation structure characteristic of serial program; The parallelization stage: interactive parallelization plug-in unit and user interactions obtain interactive information, to described linear task computation, set up the expense model according to interactive information, employing is based on the graph model theoretical method, the procedure chart model is divided and dispatched, to excavate coarseness task level concurrency, to described recurrence task computation, the employing algorithm of dividing and ruling, use parallel storehouse that program is carried out conversion, described regular data is calculated, set up performance model according to interactive information, adopt affine partitioning algorithm that program is carried out conversion, the acquisition pipelining-stage is parallel, to described specific calculation, adopts expense to drive, congenial multi-threaded parallel method based on the user experience information guiding of sampling and feeding back is excavated its concurrency, and the parallelization result passed to described interactive parallelization plug-in unit, the Eclipse compiler shows the parallelization result.
Interactive parallelization compiling system provided by the invention and Compilation Method according to the information of automatic analysis gained, in conjunction with by the customer-furnished information of interactive mode, form the computation structure characteristic of program.At different calculating, adopt different parallel methods to realize the parallelization conversion of source-to-source.The present invention has the following advantages:
(1) realizes interactive function based on the plug-in unit of Eclipse compiler, friendly visible environment and powerful integration of user interaction functionality are provided, have portability and extensibility preferably;
(2) conversion of employing source-to-source has versatility, can obtain parallelization effect preferably at the different target machine architecture;
(3) adopt up-to-date automatically parallelizing analytical technology to combine with interactive, extraction program information and user knowledge have stronger program comprehension ability preferably;
(4) support number of different types to calculate, corresponding parallelization scheme is provided, support the concurrency of multiple granularity, support to speculate multi-threaded parallelization.
Description of drawings
Fig. 1 is the structured flowchart of interactive parallelization compiling system of the present invention;
Embodiment
In order to make the purpose, technical solutions and advantages of the present invention clearer, describe the present invention below in conjunction with drawings and Examples.
Fig. 1 is the structured flowchart of interactive parallelization compiling system of the present invention, and referring to Fig. 1, interactive parallelization compiling system provided by the invention comprises the computing machine with polycaryon processor, and serial program is stored in the computing machine., the interactive parallelization compiling system be included in Eclipse compiler 1 in the calculating under the computer environment of polycaryon processor, move.Interactive parallelization plug-in unit 2 and interactive parallelization engine 3.Eclipse compiler 1 is as the underlying basis framework, and interactive parallelization plug-in unit 2 and interactive parallelization engine 3 are cooperated mutually, can be by the concurrent program of polycaryon processor parallel processing with being stored in that serial program in the computing machine is compiled as.Eclipse compiler of the present invention is the compiler based on the Eclipse environment.
Interactive parallelization plug-in unit 2 is based on the interactive view plug of Eclipse compiler 1, used the plug-in environment of Eclipse compiler to develop as substrate platform, friendly Interactive Visualization environment and integration of user interaction functionality is provided, by obtaining interactive information such as correlated performance parameter and user experience knowledge alternately with the user, and pass to the interactive parallelization engine 3 to instruct parallelization work.The user selects the parallelization function by the menu in the interactive parallelization plug-in unit 2 again by the editing machine option program piece of Eclipse compiler, triggers the interactive parallelization engine 3 and carries out the parallelization operation.The interactive parallelization engine 3 receives the interactive information that interactive parallelization plug-in unit 2 is obtained, and carries out the parallelization conversion of source-to-source, and the parallelization transformation result is passed to interactive parallelization plug-in unit 2.Interactive parallelization plug-in unit 2 receives the parallelization results, and source program is carried out rewrite operation, to user's display result, and can further receive user's feedback in the editing machine of Eclipse compiler, further carries out the parallelization operation as required.
The interactive parallelization engine 3 comprises interactive module 31, automatically parallelizing module 32, program transformation module 33 and parallel codes generation module 34.Interactive parallelization plug-in unit 2 is transferred to mutual and formula row engine 3 with serial program information and interactive information via interactive module 31, and the interactive parallelization engine 3 carries out parallelization work obtaining on the basis of interactive information to serial program.
Interactive module 31 is interface modules of interactive parallelization engine 3 and interactive parallelization plug-in unit 2, and by this module, the interactive parallelization engine 3 obtains interactive information, and interactive parallelization plug-in unit 2 is passed in process analysis and parallelization result.
Automatically parallelizing module 32 receives serial program and interactive information, carries out process analysis.Filter out linear task computation according to the interactive information that obtains.For non-linear task computation, carry out data-flow analysis and interprocedural analysis in the process again, filter out the recurrence task computation.Calculate for non task, carry out the data dependency analysis again, come distinguishing rule data-flow computation and specific calculation.
Program transformation module 33 receives the analysis result of interactive information and automatically parallelizing module 32, serial program is understood, and standard selects suitable parallelization strategy to carry out parallel transformation to various computing.Program transformation module 33 provides corresponding parallelization scheme at four types calculating.For linear task computation, set up the expense model according to interactive information, adopt method based on the graph model theory, the procedure chart model is divided and dispatched, excavate coarseness task level concurrency.For the recurrence task computation, adopt the parallel algorithm of dividing and ruling, use parallel storehouse that program is carried out conversion.Calculate for regular data, set up performance model according to interactive information, adopt affine partitioning algorithm that program is carried out conversion, it is parallel to obtain pipelining-stage.For the specific calculation of SPECCPU2000 Compress etc., adopt expense to drive, based on the congenial multi-threaded parallel method of the user experience information guiding of sampling and feedback specific calculation carried out parallelization and handle.
The source code change is carried out in the relevant parallelization conversion that 34 pairs of program transformation modules of parallel codes generation module 33 produce, and generates the parallelization code.For C language strings line program, generate the parallelization code that serial program code and OpenMP instruct statement to combine.
The continuous periodic duty of whole interactive parallelization engine 3, carry out obtaining associated user's knowledge posterior infromation alternately with the user, and further carry out parallelization as required and handle, up to the parallelization of satisfying user performance requirement as a result, have positive interaction capabilities and stronger parallelization ability.
Interactive parallelization plug-in unit 2 also provides the performance parameter configuration page, by the User Defined performance parameter, carries out alternately with the interactive parallelization engine 3, dynamically determines to instruct parallelization work by the expense model.Similar with the performance parameter configuration page, interactive parallelization plug-in unit 2 also provides the user knowledge window, and the user instructs the multi-threaded parallel work of speculating by the relevant knowledge of loading routine operation.In addition, interactive parallelization plug-in unit 2 also provides the visual environment of browsing, and comprises the visual performance analyser that can check the parallelization effect, and the many figure browser that can check program information figure.After the interactive parallelization engine 3 was finished parallelization work, interactive parallelization plug-in unit 2 was responsible for the code after the parallelization is write, and source file is made amendment, and show the parallelization result in real time in the editing machine of Eclipse compiler.
The present invention proposes the parallelization algorithm that a kind of compute type drives, and with this algorithm as theoretical foundation, at dissimilar calculating, adopt different parallelization strategies.The calculating that the present invention supported comprises: 1. the calculating of forming by linear task, and as the multi-media decoding and encoding application program, MDG program (molecule dynamic simulator program, the part of Perfect Benchmarks) or the like; 2. application that the method for dividing and ruling deals with problems etc. is for example used in the calculating of being made up of the recurrence task; 3. the calculating of being made up of regular data is as a part of science computing application program etc.; 4. specific calculation is such as SPECCPU2000 Compress etc.
Core algorithm of the present invention is divided into two stages: preproduction phase and parallelization stage.Preproduction phase, be mainly used to obtain the serial program relevant information.By interactive mode, screen linear task computation according to the information that the user provides.Then, carry out the automated procedures analysis, comprise data-flow analysis and interprocedural analysis in the process, screening recurrence task computation.At last, by the data dependency analysis, come distinguishing rule data-flow computation and specific calculation.After determining the computation structure characteristic of serial application, enter the parallelization stage.The parallelization stage is adopted different parallelization strategies at the calculating of different qualities.For linear task computation, by setting up the expense model, and, adopt method based on the graph model theory according to the expense model with user interactions, the procedure chart model is divided and dispatched, excavate coarseness task level concurrency.And the parallelization result is shown to the user, the parallelization process is that iteration is carried out, up to the satisfied parallelization result of user.For the recurrence task computation, adopt the parallel algorithm of dividing and ruling, use parallel storehouse that program is carried out conversion, and show the parallelization result.Calculate for regular data,, obtain Performance Evaluation information, use affine partitioning algorithm that program is carried out conversion, and show the parallelization result according to performance model by the user interactions means.For specific calculation, by with user interactions, obtain user experience information and instruct congenial the execution, adopt expense to drive, specific calculation carried out the parallelization processing based on the congenial multi-threaded parallel method of sampling and feedback, by a Simulation execution of supporting to speculate parallel runtime environment, obtain the parallelization performance number again, and the parallelization results of property is shown to the user, parallelization process iteration is carried out, up to the satisfied parallelization result of user.
Core algorithm of the present invention, promptly the estimated performance according to serial program uses suitable parallelization strategy to carry out the source-to-source conversion, and its false code is described below:
Figure GSB00000861705800061
Figure GSB00000861705800071
Figure GSB00000861705800081
Interactive parallelization Compilation Method of the present invention is used the interactive parallelization compiling system and is realized core algorithm of the present invention, comprises preproduction phase and parallelization stage.In the preproduction phase, interactive parallelization plug-in unit and user interactions obtain interactive information, and interactive information is transferred to the interactive parallelization engine.The interactive parallelization engine receives interactive information and serial program information, the automatically parallelizing module is screened linear task computation according to interactive information earlier, carry out data-flow analysis and interprocedural analysis in the process then, screening recurrence task computation, pass through data dependency analysis, distinguishing rule data-flow computation and specific calculation at last.In the parallelization stage, the program transformation module of interactive parallelization engine is for linear task computation, by setting up the expense model with user interactions, and, adopt method based on the graph model theory according to the expense model, the procedure chart model is divided and dispatched, excavate coarseness task level concurrency, the Eclipse compiler shows the parallelization result, and the parallelization process is that iteration is carried out, up to the satisfied parallelization result of user.For the recurrence task computation, the program transformation module adopts the parallel algorithm of dividing and ruling, and uses parallel storehouse that program is carried out conversion, and the Eclipse compiler shows the parallelization result.The program transformation module is calculated for regular data, by the user interactions means, obtains Performance Evaluation information, uses affine partitioning algorithm that program is carried out conversion according to performance model, and the Eclipse compiler shows the parallelization result.The program transformation module is for specific calculation, by with user interactions, obtain user experience information and instruct congenial the execution, adopt expense to drive, specific calculation carried out the parallelization processing based on the congenial multi-threaded parallel method of sampling and feedback, the Eclipse compiler shows the parallelization result, rowization process iteration is carried out, up to the satisfied parallelization result of user.

Claims (9)

1.一种交互式并行化编译系统,包括基于编译器,通过与用户交互来对串行程序编译为可由计算机的多核处理器来并行处理的装置,其特征在于:1. An interactive parallelized compiling system, comprising based on a compiler, by interacting with the user, the serial program is compiled into a device that can be processed in parallel by the multi-core processor of the computer, characterized in that: 所述编译器为Eclipse编译器;Described compiler is Eclipse compiler; 所述交互式并行化编译系统还包括:The interactive parallel compilation system also includes: 交互式并行化插件,用于与用户交互来获取交互信息,采用交互式并行化引擎接收所述交互信息并进行自动化程序分析,确定串行程序的计算结构特性;交互式并行化引擎,用于交互式并行化插件与用户交互获取交互信息,对线性任务计算,根据交互信息建立开销模型,采用基于图模型理论方法,对程序图模型进行划分和调度,以挖掘粗粒度任务级并行性,对递归任务计算,采用分治算法,使用并行库对程序进行变换,对规则数据流计算,根据交互信息建立性能模型,采用仿射划分算法对程序进行变换,获得流水级并行,对特定计算,采用开销驱动、基于采样和反馈的用户经验信息指导的投机多线程并行化方法挖掘其并行性,并将并行化结果传递给所述交互式并行化插件,以及采用Eclipse编译器显示并行化结果。The interactive parallelization plug-in is used to interact with the user to obtain interactive information, and the interactive parallelization engine is used to receive the interactive information and perform automatic program analysis to determine the calculation structure characteristics of the serial program; the interactive parallelization engine is used for The interactive parallelization plug-in interacts with the user to obtain interactive information. For linear task calculations, an overhead model is established based on the interactive information. The program graph model is divided and scheduled using a graph-based model theory method to mine coarse-grained task-level parallelism. The recursive task calculation adopts the divide and conquer algorithm, uses the parallel library to transform the program, and calculates the regular data flow, establishes a performance model based on the interactive information, uses the affine partition algorithm to transform the program, and obtains pipeline-level parallelism. For specific calculations, use An overhead-driven, speculative multi-threaded parallelization method guided by sampling and feedback-based user experience information exploits its parallelism, and passes the parallelization result to the interactive parallelization plug-in, and uses the Eclipse compiler to display the parallelization result. 2.根据权利要求1所述的交互式并行化编译系统,其特征在于,所述交互式并行化引擎包括交互式模块、自动并行化模块以及并行代码生成模块,其中:所述交互式模块为所述交互式并行化插件和所述交互式并行化引擎的接口模块;2. The interactive parallelization compiling system according to claim 1, wherein the interactive parallelization engine comprises an interactive module, an automatic parallelization module and a parallel code generation module, wherein: the interactive module is The interactive parallelization plug-in and the interface module of the interactive parallelization engine; 所述自动并行化模块对所述串行程序进行过程内数据流分析、过程间分析以及数据依赖分析,筛选出线性任务计算、递归任务计算、规则数据流计算和特定计算;The automatic parallelization module performs intra-process data flow analysis, inter-process analysis, and data dependency analysis on the serial program, and filters out linear task calculations, recursive task calculations, regular data flow calculations, and specific calculations; 所述并行代码生成模块根据程序变换的结果生成相应的并行化代码。The parallel code generation module generates corresponding parallel codes according to the program transformation results. 3.根据权利要求2所述的交互式并行化编译系统,其特征在于,所述交互式并行化插件提供了性能参数配置页,通过用户自定义性能参数来与所述并行化引擎进行交互,动态地确定开销模型。3. The interactive parallelization compiling system according to claim 2, wherein the interactive parallelization plug-in provides a performance parameter configuration page, and interacts with the parallelization engine through user-defined performance parameters, Dynamically determine the cost model. 4.根据权利要求2所述的交互式并行化编译系统,其特征在于,所述交互并行化插件提供了用户知识窗口,用户通过输入程序运行的相关知识,来指导投机多线程并行化工作。4. The interactive parallelization compiling system according to claim 2, wherein the interactive parallelization plug-in provides a user knowledge window, and the user guides the speculative multi-threaded parallelization work by inputting relevant knowledge about program operation. 5.根据权利要求2所述的交互式并行化编译系统,其特征在于,所述交互式并行化插件提供了用于查看并行化效果的可视化性能分析器。5. The interactive parallelization compilation system according to claim 2, wherein the interactive parallelization plug-in provides a visual performance analyzer for viewing parallelization effects. 6.根据权利要求2所述的交互式并行化编译系统,其特征在于,所述交互式并行化插件提供了用于查看程序信息图的多图浏览器。6. The interactive parallelization compiling system according to claim 2, wherein the interactive parallelization plug-in provides a multi-graph browser for viewing program information graphs. 7.一种交互式并行化编译方法,基于编译器,通过与用户交互来对串行程序编译为可由计算机的多核处理器来并行处理的并行程序,其特征在于,所述编译器为Eclipse编译器,所述交互式并行化编译方法包括:7. An interactive parallelization compiling method, based on a compiler, serial programs are compiled into parallel programs that can be processed in parallel by the multi-core processor of a computer by interacting with users, it is characterized in that the compiler is compiled by Eclipse device, the interactive parallel compilation method includes: 预备阶段:交互式并行化插件与用户交互获取交互信息,交互式并行化引擎接收所述交互信息并进行自动化程序分析,确定串行程序的计算结构特性;并行化阶段:交互式并行化插件与用户交互获取交互信息,对线性任务计算,根据交互信息建立开销模型,采用基于图模型理论方法,对程序图模型进行划分和调度,以挖掘粗粒度任务级并行性,对递归任务计算,采用分治算法,使用并行库对程序进行变换,对规则数据流计算,根据交互信息建立性能模型,采用仿射划分算法对程序进行变换,获得流水级并行,对特定计算,采用开销驱动、基于采样和反馈的用户经验信息指导的投机多线程并行化方法挖掘其并行性,并将并行化结果传递给所述交互式并行化插件,Eclipse编译器显示并行化结果。Preparatory stage: the interactive parallelization plug-in interacts with the user to obtain interactive information, and the interactive parallelization engine receives the interactive information and performs automatic program analysis to determine the calculation structure characteristics of the serial program; parallelization stage: the interactive parallelization plug-in and Users interact to obtain interactive information. For linear task calculations, an overhead model is established based on the interactive information. The program graph model is divided and scheduled using a graph-based model theory method to mine coarse-grained task-level parallelism. For recursive task calculations, a split Governance algorithm, use parallel library to transform the program, calculate the regular data flow, establish a performance model according to the interactive information, use the affine partition algorithm to transform the program, obtain pipeline-level parallelism, and use overhead-driven, sampling-based and The speculative multi-threaded parallelization method guided by the feedback user experience information mines its parallelism, and passes the parallelization result to the interactive parallelization plug-in, and the Eclipse compiler displays the parallelization result. 8.根据权利要求7所述的交互式并行化编译方法,其特征在于:8. The interactive parallelization compiling method according to claim 7, characterized in that: 在所述预备阶段,交互式并行化引擎的自动并行化模块先根据交互信息来筛选线性任务计算,然后进行过程内数据流分析和过程间分析,筛选递归任务计算,最后通过数据依赖分析,区分规则数据流计算和特定计算;In the preparatory stage, the automatic parallelization module of the interactive parallelization engine first screens linear task calculations according to interactive information, then performs intra-procedural data flow analysis and inter-process analysis, and screens recursive task calculations. Finally, through data dependency analysis, distinguish Regular data flow calculations and specific calculations; 在所述并行化阶段,Eclipse编译器显示并行化结果。During the parallelization phase, the Eclipse compiler displays the parallelization results. 9.根据权利要求8所述的交互式并行化编译方法,其特征在于,在所述并行化阶段,程序变换模块对线性任务计算和特定计算的并行化过程均迭代进行。9. The interactive parallelization compiling method according to claim 8, characterized in that, in the parallelization stage, the program transformation module iteratively performs both linear task calculation and specific calculation parallelization process.
CN 200910153082 2009-09-30 2009-09-30 Interactive parallelization compiling system and compiling method thereof Expired - Fee Related CN101667135B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910153082 CN101667135B (en) 2009-09-30 2009-09-30 Interactive parallelization compiling system and compiling method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910153082 CN101667135B (en) 2009-09-30 2009-09-30 Interactive parallelization compiling system and compiling method thereof

Publications (2)

Publication Number Publication Date
CN101667135A CN101667135A (en) 2010-03-10
CN101667135B true CN101667135B (en) 2013-07-31

Family

ID=41803760

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910153082 Expired - Fee Related CN101667135B (en) 2009-09-30 2009-09-30 Interactive parallelization compiling system and compiling method thereof

Country Status (1)

Country Link
CN (1) CN101667135B (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101794230A (en) * 2010-04-07 2010-08-04 孙斌 C language extension and compilation system supporting method used for polycaryon
CN103080900B (en) * 2010-09-03 2015-10-14 西门子公司 Method and Compiler for Parallelizing Automatic Control Program
CN101963915B (en) * 2010-09-25 2016-06-15 中兴通讯股份有限公司 The construction method of a kind of compiling and system
CN101963916A (en) * 2010-09-28 2011-02-02 中国科学院地质与地球物理研究所 Compilation processing method and device
CN104750533B (en) * 2013-12-31 2018-10-19 上海东软载波微电子有限公司 C program Compilation Method and compiler
CN103942096B (en) * 2014-03-24 2017-06-13 浙江大学 A kind of multithreading of data fault-tolerant speculates method
US20170123775A1 (en) * 2014-03-26 2017-05-04 Empire Technology Development Llc Compilation of application into multiple instruction sets for a heterogeneous processor
CN103955406A (en) * 2014-04-14 2014-07-30 浙江大学 Super block-based based speculation parallelization method
CN107544794A (en) * 2016-06-28 2018-01-05 华为技术有限公司 The treating method and apparatus of program information
CN106569869B (en) * 2016-11-14 2019-04-19 平安科技(深圳)有限公司 Plug-in unit packaging method and device
CN107885531A (en) * 2017-11-28 2018-04-06 昆山青石计算机有限公司 A kind of concurrent big data real-time processing method based on array privatization
CN113434548B (en) * 2021-06-25 2022-06-17 北京理工大学 Spark-based large-scale data stream analysis method and system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453407B1 (en) * 1999-02-10 2002-09-17 Infineon Technologies Ag Configurable long instruction word architecture and instruction set
CN1508681A (en) * 2002-12-17 2004-06-30 国际商业机器公司 Method and system for searching reduction variable quantity in assign ment satement
CN101078994A (en) * 2006-05-26 2007-11-28 松下电器产业株式会社 Compiler apparatus, compiler method, and compiler program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453407B1 (en) * 1999-02-10 2002-09-17 Infineon Technologies Ag Configurable long instruction word architecture and instruction set
CN1508681A (en) * 2002-12-17 2004-06-30 国际商业机器公司 Method and system for searching reduction variable quantity in assign ment satement
CN101078994A (en) * 2006-05-26 2007-11-28 松下电器产业株式会社 Compiler apparatus, compiler method, and compiler program

Also Published As

Publication number Publication date
CN101667135A (en) 2010-03-10

Similar Documents

Publication Publication Date Title
CN101667135B (en) Interactive parallelization compiling system and compiling method thereof
Chandrasekaran et al. OpenACC for programmers: concepts and strategies
Linderman et al. Merge: a programming model for heterogeneous multi-core systems
Hormati et al. Sponge: portable stream programming on graphics engines
CN104035781B (en) A kind of method of quick exploitation isomerism parallel program
US20130298130A1 (en) Automatic pipelining framework for heterogeneous parallel computing systems
Mustafa A survey of performance tuning techniques and tools for parallel applications
Haidar et al. Magma embedded: Towards a dense linear algebra library for energy efficient extreme computing
Kerr et al. Dynamic compilation of data-parallel kernels for vector processors
Lazcano et al. Runtime multi-versioning and specialization inside a memoized speculative loop optimizer
Cordes Automatic parallelization for embedded multi-core systems using high level cost models
Mehrara et al. Multicore compilation strategies and challenges
Sbirlea et al. Dfgr an intermediate graph representation for macro-dataflow programs
Munk et al. Acotes project: Advanced compiler technologies for embedded streaming
Liu et al. Toward emotion-aware computing: A loop selection approach based on machine learning for speculative multithreading
Goossens Dataflow management, dynamic load balancing, and concurrent processing for real‐time embedded vision applications using Quasar
Li et al. Transparent runtime parallelization of the R scripting language
Kumar et al. An approach for compiler optimization to exploit instruction level parallelism
Cielo et al. Optimizing the hybrid parallelization of BHAC
Benoit et al. Using an intermediate representation to map workloads on heterogeneous parallel systems
Demirović et al. Source Code Analysis for Performance Enhancement of the Mean Shift Algorithm
Lazarescu et al. Interactive trace-based analysis toolset for manual parallelization of C programs
Baumstark et al. Retargeting sequential image-processing programs for data parallel execution
Hückelheim et al. Towards Polyhedral Automatic Differentiation
Kallel et al. " OpenMP" automatic parallelization tools: An Empirical comparative evaluation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Li Ying

Inventor after: Sun Xiuxue

Inventor after: Yuan Xinyu

Inventor after: Xu Yincheng

Inventor after: Wu Chaohui

Inventor before: Li Ying

Inventor before: Sun Xiuxue

Inventor before: Yuan Xinyu

Inventor before: Xu Yincheng

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: LI YING SUN XUXUE YUAN XINYU XU YINCHENG TO: LI YING SUN XUXUE YUAN XINYU XU YINCHENG WU ZHAOHUI

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130731