KR20090006147A - 병렬 프로그램 생성 방법 - Google Patents
병렬 프로그램 생성 방법 Download PDFInfo
- Publication number
- KR20090006147A KR20090006147A KR1020087026647A KR20087026647A KR20090006147A KR 20090006147 A KR20090006147 A KR 20090006147A KR 1020087026647 A KR1020087026647 A KR 1020087026647A KR 20087026647 A KR20087026647 A KR 20087026647A KR 20090006147 A KR20090006147 A KR 20090006147A
- Authority
- KR
- South Korea
- Prior art keywords
- data flow
- code
- graph
- ordering
- execution order
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/456—Parallelism detection
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
Claims (13)
- 추상 파스 트리(abstract parse tree)를 정의하기 위해 소스 코드를 파싱하는 단계를 포함하는, 컴퓨터 프로그램을 소스 코드로부터 실행가능한 코드로 컴파일하는 방법으로서,데이터 플로우 및 데이터 종속성 그래프(data dependency graphs)를 정의하기 위해 상기 추상 파스 트리를 합성하는 단계;오더링 제약(ordering constraints)을 형성하기 위해 상기 그래프을 머신 데이터 플로우 그래프로 리파인(refine)하는 단계;상기 데이터 플로우 및 상기 데이터 종속성 그래프에서 종속성들을 만족하는데 필요한 오더링 제약으로 구성되는 상기 오더링 제약의 제1 부분으로 부분 실행 오더를 정의하는 단계;상기 머신 데이터 플로우 그래프를 연산 장치에 매핑하는데 필요한 오더링 제약으로 구성되는 상기 오더링 제약의 제2 부분을 추가하여 상기 머신 데이터 플로우 그래프 내의 명령들을 병렬 실행가능한 코드로 그룹화하는 단계; 및상기 병렬 실행가능한 코드로부터 실행가능한 형태를 생성하는 단계를 더 포함하는 것을 특징으로 하는, 컴퓨터 프로그램을 소스 코드로부터 실행가능한 코드로 컴파일하는 방법.
- 청구항 1에 있어서,상기 실행가능한 코드가 연산 장치에서 실행될 때 상기 코드에 대한 실행 오더를 정의하는 단계를 더 포함하는, 컴퓨터 프로그램을 소스 코드로부터 실행가능한 코드로 컴파일하는 방법.
- 청구항 1 내지 3 중 어느 한 항에 있어서,상기 명령들을 그룹화하는 단계에서, 상기 코드에 대한 실행 오더를 정의하는 단계를 더 포함하는, 컴퓨터 프로그램을 소스 코드로부터 실행가능한 코드로 컴파일하는 방법.
- 청구항 1 내지 3 중 어느 한 항에 있어서,상기 그룹들은 오더 도입(order introduction)으로 실행되는, 컴퓨터 프로그램을 소스 코드로부터 실행가능한 코드로 컴파일하는 방법.
- 연산 장치에서 실행될 때 하기의 단계들을 실행하도록 구성되고, 추상 파스 트리를 정의하기 위해 소스 코드를 파싱하는 단계를 포함하는, 컴퓨터 프로그램을 소스 코드로부터 실행가능한 코드로 컴파일하는 컴퓨터 프로그램 제품으로서,데이터 플로우 및 데이터 종속성 그래프를 정의하기 위해 상기 추상 파스 트리를 합성하는 단계;오더링 제약을 형성하기 위해 상기 그래프을 머신 데이터 플로우 그래프로 리파인하는 단계;상기 데이터 플로우 및 상기 데이터 종속성 그래프에서 종속성들을 만족하는데 필요한 오더링 제약으로 구성되는 상기 오더링 제약의 제1 부분으로 부분 실행 오더를 정의하는 단계;상기 머신 데이터 플로우 그래프를 연산 장치에 매핑하는데 필요한 오더링 제약으로 구성되는 상기 오더링 제약의 제2 부분을 추가하여 상기 머신 데이터 플로우 그래프 내의 명령들을 병렬 실행가능한 코드로 그룹화하는 단계; 및상기 머신 데이터 플로우 그래프로부터 실행가능한 형태를 생성하는 단계를 실행하도록 더 구성되는 것을 특징으로 하는, 컴퓨터 프로그램 제품.
- 청구항 5에 있어서,상기 실행가능한 코드가 연산 장치에서 실행될 때 상기 코드의 제2 부분에 대한 실행 오더를 정의하는 단계를 실행하도록 더 구성되는, 컴퓨터 프로그램 제품.
- 청구항 5에 있어서,상기 실행가능한 형태를 생성하는 단계에서 상기 코드의 제2 부분에 대한 실행 오더를 정의하는 단계를 실행하도록 더 구성되는, 컴퓨터 프로그램 제품.
- 청구항 5 내지 7 중 어느 한 항에 있어서,상기 그룹들은 오더 도입으로 실행되는, 컴퓨터 프로그램 제품.
- 컴퓨터 프로그램 제품을 실행할 때 하기의 단계들을 실행하도록 구성되고, 추상 파스 트리를 정의하기 위해 소스 코드를 파싱하는 단계를 포함하는, 컴퓨터 프로그램을 소스 코드로부터 실행가능한 코드로 컴파일하는 컴퓨터 프로그램 제품을 포함하는 장치로서, 상기 프로그램이데이터 플로우 및 데이터 종속성 그래프를 정의하기 위해 상기 추상 파스 트리를 합성하는 단계;오더링 제약을 형성하기 위해 상기 그래프을 머신 데이터 플로우 그래프로 리파인하는 단계;상기 데이터 플로우 및 상기 데이터 종속성 그래프에서 종속성들을 만족하는데 필요한 오더링 제약으로 구성되는 상기 오더링 제약의 제1 부분으로 부분 실행 오더를 정의하는 단계;상기 머신 데이터 플로우 그래프를 연산 장치에 매핑하는데 필요한 오더링 제약으로 구성되는 상기 오더링 제약의 제2 부분을 추가하여 상기 머신 데이터 플로우 그래프 내의 명령들을 병렬 실행가능한 코드로 그룹화하는 단계; 및상기 머신 데이터 플로우 그래프로부터 실행가능한 형태를 생성하는 단계를 실행하도록 더 구성되는 것을 특징으로 하는, 컴퓨터 프로그램 제품을 포함하는 장치.
- 청구항 9에 있어서,상기 실행가능한 코드가 연산 장치에서 실행될 때, 상기 코드의 제2 부분에 대한 실행 오더를 정의하는 단계를 실행하도록 더 구성되는, 컴퓨터 프로그램 제품을 포함하는 장치.
- 청구항 9에 있어서,상기 실행 형식을 생성하는 단계에서 상기 코드의 제2 부분에 대한 실행 오더를 정의하는 단계를 실행하도록 더 구성되는, 컴퓨터 프로그램 제품을 포함하는 장치.
- 청구항 9 내지 11 중 어느 한 항에 있어서,상기 그룹들은 오더 도입으로 실행되는, 컴퓨터 프로그램 제품을 포함하는 장치.
- 청구항 9 내지 11 중 어느 한 항에 있어서,상기 그룹들은 상기 코드의 상기 제1 및 제2 부분들로 형성되는, 컴퓨터 프로그램 제품을 포함하는 장치.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/FI2006/000101 WO2007113369A1 (en) | 2006-03-30 | 2006-03-30 | Parallel program generation method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20090006147A true KR20090006147A (ko) | 2009-01-14 |
| KR101279179B1 KR101279179B1 (ko) | 2013-06-26 |
Family
ID=38563147
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020087026647A Expired - Fee Related KR101279179B1 (ko) | 2006-03-30 | 2006-03-30 | 병렬 프로그램 생성 방법 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US8527971B2 (ko) |
| EP (1) | EP2016489A4 (ko) |
| KR (1) | KR101279179B1 (ko) |
| WO (1) | WO2007113369A1 (ko) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102513552B1 (ko) * | 2022-11-14 | 2023-03-23 | 수퍼게이트 주식회사 | 동형 암호 병렬 연산 방법 및 이를 수행하는 컴퓨팅 장치 |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9772887B2 (en) | 2008-06-02 | 2017-09-26 | Microsoft Technology Learning, LLC | Composable and cancelable dataflow continuation passing |
| US8667474B2 (en) | 2009-06-19 | 2014-03-04 | Microsoft Corporation | Generation of parallel code representations |
| US8949852B2 (en) * | 2009-06-29 | 2015-02-03 | Oracle America, Inc. | Mechanism for increasing parallelization in computer programs with read-after-write dependencies associated with prefix operations |
| US8661424B2 (en) * | 2010-09-02 | 2014-02-25 | Honeywell International Inc. | Auto-generation of concurrent code for multi-core applications |
| US8875146B2 (en) | 2011-08-01 | 2014-10-28 | Honeywell International Inc. | Systems and methods for bounding processing times on multiple processing units |
| US9003383B2 (en) * | 2011-09-15 | 2015-04-07 | You Know Solutions, LLC | Analytic engine to parallelize serial code |
| US20130191809A1 (en) * | 2012-01-25 | 2013-07-25 | Microsoft Corporation | Graphical representation of an order of operations |
| US9207977B2 (en) | 2012-02-06 | 2015-12-08 | Honeywell International Inc. | Systems and methods for task grouping on multi-processors |
| US9612868B2 (en) * | 2012-10-31 | 2017-04-04 | Honeywell International Inc. | Systems and methods generating inter-group and intra-group execution schedules for instruction entity allocation and scheduling on multi-processors |
| US9891901B2 (en) * | 2013-12-06 | 2018-02-13 | Ab Initio Technology Llc | Source code translation |
| DE102014212437A1 (de) * | 2014-06-27 | 2016-01-14 | Siemens Aktiengesellschaft | System zur verbesserten Parallelisierung eines Programmcodes |
| US10095689B2 (en) * | 2014-12-29 | 2018-10-09 | International Business Machines Corporation | Automated ontology building |
| DE102017209697A1 (de) * | 2016-06-13 | 2017-12-14 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung |
| LU101480B1 (en) * | 2019-11-18 | 2021-05-18 | Luxembourg Inst Science & Tech List | Data preprocessing for a supervised machine learning process |
| CN115605827A (zh) * | 2020-05-08 | 2023-01-13 | 摩根大通国家银行(Us) | 用于实施ui现代化应用模块的方法和设备 |
| US11442714B2 (en) * | 2020-10-05 | 2022-09-13 | Unisys Corporation | Parallel code fragments in executable code |
| US11842176B2 (en) * | 2021-11-12 | 2023-12-12 | Bank Of America Corporation | System and method for performing parallel and distributed analysis of program code to generate dependency graphs for executing extract transform load transformations |
| DE102022004347A1 (de) | 2022-11-21 | 2024-05-23 | Mercedes-Benz Group AG | Verfahren zum Betrieb eines informationstechnischen Systems, informationstechnisches System und Fahrzeug |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0744508A (ja) * | 1993-08-03 | 1995-02-14 | Hitachi Ltd | プログラム分割方法 |
| KR0176088B1 (ko) * | 1995-12-06 | 1999-05-15 | 양승택 | 병렬 컴파일러 및 그 제어 병렬화 설계방법 |
| US5978588A (en) * | 1997-06-30 | 1999-11-02 | Sun Microsystems, Inc. | Method and apparatus for profile-based code placement using a minimum cut set of the control flow graph |
| US6490673B1 (en) * | 1998-11-27 | 2002-12-03 | Matsushita Electric Industrial Co., Ltd | Processor, compiling apparatus, and compile program recorded on a recording medium |
| JP2000173855A (ja) * | 1998-12-10 | 2000-06-23 | Mitsubishi Polyester Film Copp | コンデンサー用ポリエチレン−2,6−ナフタレートフィルム |
| US6622302B1 (en) | 2000-06-30 | 2003-09-16 | Lsi Logic Corporation | Methods and apparatus for dynamic version transition of management applications and attached subsystems |
| JP3933380B2 (ja) * | 2000-10-05 | 2007-06-20 | 富士通株式会社 | コンパイラ |
| EP1378825B1 (en) * | 2002-07-02 | 2010-04-21 | STMicroelectronics Srl | A method for executing programs on selectable-instruction-length processors and corresponding processor system |
| JP4196614B2 (ja) | 2002-08-22 | 2008-12-17 | パナソニック株式会社 | 命令スケジューリング方法、命令スケジューリング装置、及びプログラム |
| US7159211B2 (en) * | 2002-08-29 | 2007-01-02 | Indian Institute Of Information Technology | Method for executing a sequential program in parallel with automatic fault tolerance |
| JP4042604B2 (ja) * | 2003-03-31 | 2008-02-06 | 日本電気株式会社 | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム |
| US20050108695A1 (en) * | 2003-11-14 | 2005-05-19 | Long Li | Apparatus and method for an automatic thread-partition compiler |
| EP1569104A3 (en) * | 2004-01-09 | 2006-05-03 | Interuniversitair Microelektronica Centrum Vzw | An automated method for performing parallelization of sequential code and a computerized system adapted therefore |
| JP2006243838A (ja) * | 2005-02-28 | 2006-09-14 | Toshiba Corp | プログラム開発装置 |
| US8453131B2 (en) * | 2005-12-24 | 2013-05-28 | Intel Corporation | Method and apparatus for ordering code based on critical sections |
-
2006
- 2006-03-30 KR KR1020087026647A patent/KR101279179B1/ko not_active Expired - Fee Related
- 2006-03-30 EP EP06725862A patent/EP2016489A4/en not_active Withdrawn
- 2006-03-30 US US12/295,600 patent/US8527971B2/en not_active Expired - Fee Related
- 2006-03-30 WO PCT/FI2006/000101 patent/WO2007113369A1/en not_active Ceased
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102513552B1 (ko) * | 2022-11-14 | 2023-03-23 | 수퍼게이트 주식회사 | 동형 암호 병렬 연산 방법 및 이를 수행하는 컴퓨팅 장치 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101279179B1 (ko) | 2013-06-26 |
| US20100306750A1 (en) | 2010-12-02 |
| EP2016489A1 (en) | 2009-01-21 |
| EP2016489A4 (en) | 2009-05-06 |
| WO2007113369A1 (en) | 2007-10-11 |
| US8527971B2 (en) | 2013-09-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101279179B1 (ko) | 병렬 프로그램 생성 방법 | |
| JP6141365B2 (ja) | 逐次コンピュータプログラムコードを並列処理する方法及びシステム | |
| JP4042604B2 (ja) | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム | |
| EP2872989B1 (en) | Method and system for automated improvement of parallelism in program compilation | |
| US8893080B2 (en) | Parallelization of dataflow actors with local state | |
| EP2687981B1 (en) | Automated compiler specialisation for global optimisation | |
| Silvano et al. | The ANTAREX approach to autotuning and adaptivity for energy efficient HPC systems | |
| JP2002116916A (ja) | プログラムの最適化方法及びこれを用いたコンパイラ | |
| JPWO2008120367A1 (ja) | 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム | |
| CN103645930B (zh) | 汇编级跨文件调度框架的构建方法 | |
| JP2011096107A (ja) | 並列化方法、システム、及びプログラム | |
| Doroshenko et al. | Developing and optimizing parallel programs with algebra-algorithmic and term rewriting tools | |
| US20230004563A1 (en) | Method and system for providing a context-sensitive, non-intrusive data processing optimization framework | |
| Bahmann et al. | Perfect reconstructability of control flow from demand dependence graphs | |
| Tardieu et al. | Curing schizophrenia by program rewriting in Esterel | |
| US11556357B1 (en) | Systems, media, and methods for identifying loops of or implementing loops for a unit of computation | |
| WO2016032495A1 (en) | Sloppy feedback loop compilation | |
| US20170206068A1 (en) | Program optimization based on directives for intermediate code | |
| Ghiglio et al. | Improving performance of SYCL applications on CPU architectures using LLVM-directed compilation flow | |
| US9286196B1 (en) | Program execution optimization using uniform variable identification | |
| EP3991027B1 (en) | Method and apparatus for enabling autonomous acceleration of dataflow ai applications | |
| Abate et al. | Bootstrapping software distributions | |
| JPWO2011090032A1 (ja) | 並列処理プログラム生成方法、並列処理プログラム生成プログラム、及び並列処理プログラム生成装置 | |
| Meyerovich | Parallel Layout Engines: Synthesis and Optimization of Tree Traversals | |
| US20080282237A1 (en) | Method and Apparatus For Generating Execution Equivalence Information |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0105 | International application |
St.27 status event code: A-0-1-A10-A15-nap-PA0105 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| A201 | Request for examination | ||
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
Fee payment year number: 1 St.27 status event code: A-2-2-U10-U12-oth-PR1002 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
Not in force date: 20160621 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE St.27 status event code: A-4-4-U10-U13-oth-PC1903 |
|
| PC1903 | Unpaid annual fee |
Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20160621 St.27 status event code: N-4-6-H10-H13-oth-PC1903 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |