JP6319880B2 - 並列性の抽出方法及びプログラムの作成方法 - Google Patents
並列性の抽出方法及びプログラムの作成方法 Download PDFInfo
- Publication number
- JP6319880B2 JP6319880B2 JP2014006009A JP2014006009A JP6319880B2 JP 6319880 B2 JP6319880 B2 JP 6319880B2 JP 2014006009 A JP2014006009 A JP 2014006009A JP 2014006009 A JP2014006009 A JP 2014006009A JP 6319880 B2 JP6319880 B2 JP 6319880B2
- Authority
- JP
- Japan
- Prior art keywords
- parallelism
- macro
- program
- subsequent
- 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
Links
- 238000000034 method Methods 0.000 title claims description 48
- 238000000605 extraction Methods 0.000 title claims description 34
- 238000012545 processing Methods 0.000 claims description 74
- 238000004458 analytical method Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 9
- 230000001419 dependent effect Effects 0.000 claims description 5
- 230000003362 replicative effect Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 24
- 230000010076 replication Effects 0.000 description 21
- 230000006872 improvement Effects 0.000 description 14
- 241000501754 Astronotus ocellatus Species 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 10
- 238000011156 evaluation Methods 0.000 description 8
- 230000003068 static effect Effects 0.000 description 8
- 230000004927 fusion Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012950 reanalysis Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
Description
図1Aは、本発明の実施形態の並列性の抽出方法を用いた並列化コンパイラ(以下「本発明の実施形態のコンパイラ」と略称)が実行する処理のフローチャートである。
次に、本実施例における元プログラムを含むエンジン制御プログラムの概要を示す。
次に、前記エンジン制御プログラム中のTask15からの並列性の注出方法と並列化方法について以下に説明する。また、生成される並列化プログラムを図10に示すマルチコアプロセッサRP−X上で動作させ、性能評価を行うことを前提に本発明のコンパイラによる並列化処理を行う。
分岐複製前 sb6(func5) → 分岐複製後 sb9
分岐複製前 sb7(func6) → 分岐複製後 sb13
分岐複製前 sb10(func3) → 分岐複製後 sb16
本項では、実施形態の説明のために挙げた自動車エンジン制御プログラムを本発明の並列性の抽出方法を用いて並列化したプログラムを組込用マルチコアプロセッサRP−X上で実行させ、その並列処理性能を評価する。
前記複数のプロセッサコアによって実行されるプログラムは、1以上の条件分岐の集合を含み、
前記方法は、
2以上の前記プロセッサコアの各々が、少なくとも一つの前記複数の条件分岐の集合を実行し、
前記2以上のプロセッサコアの各々が、前記実行した条件分岐の集合の同一条件を満たした後に実行されるべき1以上のマクロタスクを実行するように、前記マルチコアプロセッサを制御する方法。
同一の条件で実行が決定される複数のマクロタスクのうち、前記実行される複数のマクロタスクの相互の間でデータ依存がない条件分岐の集合を前記元プログラムから抽出し、
前記抽出された条件分岐の集合を複製し、
前記複製された条件分岐の集合を、2以上の前記プロセッサコアの各々が実行するように割り当てることによって実行可能プログラムを作成する方法。
前記複数のプロセッサコアによって実行されるプログラムは、1以上の条件分岐の集合を含み、
前記方法は、
1以上の前記プロセッサコアの各々が、少なくとも一つの前記1以上の条件分岐の集合を実行し、
前記1以上のプロセッサコアの各々が、前記実行した条件分岐の集合の同一条件を満たした後に実行されるべき1以上のマクロタスクを実行するように、前記マルチコアプロセッサを制御する方法。
同一の条件で実行が決定される複数のマクロタスクのうち、前記実行される複数のマクロタスクの相互の間でデータ依存がない条件分岐の集合を前記元プログラムから抽出し、
前記抽出された条件分岐の集合を複製し、
前記複製された条件分岐の集合を、1以上の前記プロセッサコアの各々が実行するように割り当てることによって実行可能プログラムを作成する方法。
101 プロセッサ(CPU)
102 メモリ
103 記憶装置(HDD)
106 通信インターフェース
Claims (9)
- 元プログラムの並列性をコンピュータによって抽出する方法であって、
前記方法は、
前記元プログラムを、複数のマクロタスクに分割する処理と、
前記複数のマクロタスクの最早実行可能条件を解析する処理と、
前記最早実行可能条件の解析結果に基づいて、条件分岐の同一の分岐方向に制御依存する複数のマクロタスクである複数の後続マクロタスクの相互の間で並列実行可能な前記条件分岐を抽出する処理と、
抽出された前記条件分岐を複製することにより前記条件分岐をそれぞれ含む複数のマクロタスクである複数の先行マクロタスクを生成する処理と、を含むことを特徴とする並列性の抽出方法。 - 請求項1に記載の並列性の抽出方法であって、
前記条件分岐として、前記複数の後続マクロタスクの相互の間でデータ依存がない条件分岐を抽出することを特徴とする並列性の抽出方法。 - 請求項1又は2に記載の並列性の抽出方法であって、
前記元プログラムから分割された前記複数のマクロタスクを並列に実行するための複数のパスのうち、実行時間が最も長いパスに含まれる条件分岐を複製することを特徴とする並列性の抽出方法。 - 請求項1〜3のうちいずれか1項記載の並列性の抽出方法であって、
前記元プログラムから分割された前記複数のマクロタスクを並列に実行するための複数のパスのうち、実行時間が最も長いパスに含まれる条件分岐を複製することによって生成された複数の先行マクロタスクに繋がるパスの中で実行時間が最も長いパスに含まれる条件分岐をさらに複製することを特徴とする並列性の抽出方法。 - 請求項1〜4のうちいずれか1項記載の並列性の抽出方法であって、
前記複数の後続マクロタスクのうちの第1後続マクロタスクを前記複数の先行マクロタスクのうちの1つの第1先行マクロタスクに後続させ、
前記複数の後続マクロタスクのうちの前記第1後続マクロタスクと異なる第2後続マクロタスクを前記複数の先行マクロタスクのうちの前記第1先行マクロタスクとは異なる第2先行マクロタスクに後続させることを特徴とする並列性の抽出方法。 - 請求項1〜5のうちいずれか1項記載の並列性の抽出方法であって、
前記複数の後続マクロタスクとは異なる一のマクロタスクにデータ依存し、かつ、前記複数の後続マクロタスクに含まれる第3後続マクロタスクと、前記一のマクロタスクにデータ依存せず、かつ、前記複数の後続マクロタスクに含まれる第4後続マクロタスクとが存在する場合、前記第4後続マクロタスクを、前記一のマクロタスク及び前記第3後続マクロタスクが含まれるパスとは異なるパスに含まれるように、前記複数の先行マクロタスクに前記複数の後続マクロタスクを後続させることを特徴する並列性の抽出方法。 - 請求項1〜6のうちいずれか1項記載の並列性の抽出方法であって、
前記条件分岐は、実行時の不確定性を有することを特徴とする並列性の抽出方法。 - 請求項1〜7のうちいずれか1項記載の並列性の抽出方法であって、
前記条件分岐は、ループ制御文とは異なることを特徴とする並列性の抽出方法。 - 元プログラムからコンピュータによって複数のプロセッサコアを含むマルチコアプロセッサ上で実行可能なプログラムを作成する方法であって、
請求項1〜8のうちいずれか1項記載の並列性の抽出方法を用いて生成された複数の条件分岐をそれぞれ含む複数の先行マクロタスクを、前記複数のプロセッサコアの各々が実行するように割り当て、
前記複数の条件分岐のそれぞれを含む先行マクロタスクを実行するプロセッサコアが、それぞれ、前記複数の後続マクロタスクの各々を実行するように割り当てることによって、前記実行可能なプログラムを作成する方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014006009A JP6319880B2 (ja) | 2013-01-23 | 2014-01-16 | 並列性の抽出方法及びプログラムの作成方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013010194 | 2013-01-23 | ||
JP2013010194 | 2013-01-23 | ||
JP2014006009A JP6319880B2 (ja) | 2013-01-23 | 2014-01-16 | 並列性の抽出方法及びプログラムの作成方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014160453A JP2014160453A (ja) | 2014-09-04 |
JP2014160453A5 JP2014160453A5 (ja) | 2017-11-24 |
JP6319880B2 true JP6319880B2 (ja) | 2018-05-09 |
Family
ID=51227405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014006009A Active JP6319880B2 (ja) | 2013-01-23 | 2014-01-16 | 並列性の抽出方法及びプログラムの作成方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150363230A1 (ja) |
EP (1) | EP2950211B1 (ja) |
JP (1) | JP6319880B2 (ja) |
WO (1) | WO2014115613A1 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101504877B1 (ko) | 2014-10-23 | 2015-03-30 | (주)누스코 | 매니 코어를 이용한 프로그램 처리 장치 및 방법 |
WO2016094291A1 (en) | 2014-12-08 | 2016-06-16 | Umbra Technologies Ltd. | System and method for content retrieval from remote network regions |
JP2018508067A (ja) * | 2015-01-06 | 2018-03-22 | アンブラ テクノロジーズ リミテッドUmbra Technologies Ltd. | ニュートラルなアプリケーションプログラミングインタフェースについてのシステム及び方法 |
EP3251301A4 (en) | 2015-01-28 | 2018-10-10 | Umbra Technologies Ltd. | System and method for a global virtual network |
JP6427054B2 (ja) * | 2015-03-31 | 2018-11-21 | 株式会社デンソー | 並列化コンパイル方法、及び並列化コンパイラ |
JP2018515974A (ja) | 2015-04-07 | 2018-06-14 | アンブラ テクノロジーズ リミテッドUmbra Technologies Ltd. | グローバル仮想ネットワーク(gvn)において仮想インタフェースとアドバンストスマートルーティングとを提供するためのシステム及び方法 |
JP6413922B2 (ja) | 2015-05-18 | 2018-10-31 | 株式会社デンソー | ソフトウェア分割方法、ソフトウェア分割装置および車載装置 |
WO2016198961A2 (en) | 2015-06-11 | 2016-12-15 | Umbra Technologies Ltd. | System and method for network tapestry multiprotocol integration |
JP6500626B2 (ja) * | 2015-06-16 | 2019-04-17 | 富士通株式会社 | 計算機、コンパイラプログラム、リンクプログラムおよびコンパイル方法 |
JP2017107448A (ja) * | 2015-12-10 | 2017-06-15 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
US11360945B2 (en) | 2015-12-11 | 2022-06-14 | Umbra Technologies Ltd. | System and method for information slingshot over a network tapestry and granularity of a tick |
CN109416680B (zh) | 2016-04-26 | 2023-02-17 | 安博科技有限公司 | 吊索路由逻辑与负载均衡 |
DE102017209697A1 (de) * | 2016-06-13 | 2017-12-14 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung |
JP2017228029A (ja) * | 2016-06-21 | 2017-12-28 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
US10671361B2 (en) * | 2016-10-25 | 2020-06-02 | Paypal, Inc. | Automatically determining data dependencies to facilitate code execution |
JP6600888B2 (ja) * | 2016-12-28 | 2019-11-06 | 学校法人早稲田大学 | 並列化コンパイラ、並列化コンパイル装置、及び並列プログラムの生成方法 |
EP3343351B1 (en) * | 2016-12-28 | 2023-04-26 | Waseda University | Parallel program generating method and parallelization compiling apparatus |
JP6891521B2 (ja) * | 2017-02-08 | 2021-06-18 | 日本電気株式会社 | 情報処理装置、情報処理方法、プログラム |
US11412242B2 (en) * | 2018-08-08 | 2022-08-09 | Lg Electronics Inc. | Image encoding/decoding method and device therefor |
US11093223B2 (en) * | 2019-07-18 | 2021-08-17 | Ab Initio Technology Llc | Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods |
US11392384B2 (en) | 2020-09-04 | 2022-07-19 | Alibaba Group Holding Limited | Methods of breaking down coarse-grained tasks for fine-grained task re-scheduling |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2794523B2 (ja) * | 1993-11-26 | 1998-09-10 | 日本アイ・ビー・エム株式会社 | アレイ関数をもつプログラミング言語におけるインライン展開方法 |
US6505296B2 (en) * | 1997-10-13 | 2003-01-07 | Hewlett-Packard Company | Emulated branch effected by trampoline mechanism |
US6112299A (en) * | 1997-12-31 | 2000-08-29 | International Business Machines Corporation | Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching |
JP4784792B2 (ja) | 1999-12-22 | 2011-10-05 | 学校法人早稲田大学 | マルチプロセッサ |
JP3664473B2 (ja) * | 2000-10-04 | 2005-06-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムの最適化方法及びこれを用いたコンパイラ |
JP4783005B2 (ja) * | 2004-11-25 | 2011-09-28 | パナソニック株式会社 | プログラム変換装置、プログラム変換実行装置およびプログラム変換方法、プログラム変換実行方法。 |
JP4082706B2 (ja) * | 2005-04-12 | 2008-04-30 | 学校法人早稲田大学 | マルチプロセッサシステム及びマルチグレイン並列化コンパイラ |
US9384003B2 (en) * | 2007-10-23 | 2016-07-05 | Texas Instruments Incorporated | Determining whether a branch instruction is predicted based on a capture range of a second instruction |
JP4339907B2 (ja) * | 2007-10-24 | 2009-10-07 | 株式会社日立製作所 | マルチプロセッサ向け最適コード生成方法及びコンパイル装置 |
KR101522444B1 (ko) * | 2008-10-24 | 2015-05-21 | 인터내셔널 비지네스 머신즈 코포레이션 | 소스 코드 처리 방법, 시스템, 및 프로그램 |
JP2012103923A (ja) * | 2010-11-10 | 2012-05-31 | Renesas Electronics Corp | コンパイラ装置、コンパイル方法及びコンパイラプログラム |
WO2013010159A1 (en) * | 2011-07-14 | 2013-01-17 | Siemens Corporation | Reducing the scan cycle time of control applications through multi-core execution of user programs |
-
2014
- 2014-01-15 EP EP14742879.1A patent/EP2950211B1/en active Active
- 2014-01-15 US US14/761,789 patent/US20150363230A1/en not_active Abandoned
- 2014-01-15 WO PCT/JP2014/050517 patent/WO2014115613A1/ja active Application Filing
- 2014-01-16 JP JP2014006009A patent/JP6319880B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
EP2950211B1 (en) | 2021-07-07 |
EP2950211A4 (en) | 2016-11-16 |
WO2014115613A1 (ja) | 2014-07-31 |
US20150363230A1 (en) | 2015-12-17 |
EP2950211A1 (en) | 2015-12-02 |
JP2014160453A (ja) | 2014-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6319880B2 (ja) | 並列性の抽出方法及びプログラムの作成方法 | |
JP6018022B2 (ja) | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 | |
JP4936517B2 (ja) | ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ | |
Hormati et al. | Sponge: portable stream programming on graphics engines | |
Stratton et al. | Efficient compilation of fine-grained SPMD-threaded programs for multicore CPUs | |
KR101839544B1 (ko) | 이종 코어의 자동 부하 균형 | |
US8528001B2 (en) | Controlling and dynamically varying automatic parallelization | |
Bai et al. | Heap data management for limited local memory (llm) multi-core processors | |
JP6427054B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
Cong et al. | Source-to-source optimization for HLS | |
EP2710467A1 (en) | Automatic kernel migration for heterogeneous cores | |
JP2007328416A (ja) | ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ | |
US8387033B2 (en) | System and method for the distribution of a program among cooperating processing elements | |
US20100251223A1 (en) | System and method for the distribution of a program among cooperating processing elements | |
Ventroux et al. | SESAM/Par4All: a tool for joint exploration of MPSoC architectures and dynamic dataflow code generation | |
JP6427053B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
JP6488739B2 (ja) | 並列化コンパイル方法、及び、並列化コンパイラ | |
Khasanov et al. | Implicit data-parallelism in Kahn process networks: Bridging the MacQueen Gap | |
Huynh et al. | Mapping streaming applications onto GPU systems | |
US20090133022A1 (en) | Multiprocessing apparatus, system and method | |
US20220100512A1 (en) | Deterministic replay of a multi-threaded trace on a multi-threaded processor | |
JP6488738B2 (ja) | 並列化コンパイル方法、及び、並列化コンパイラ | |
Cartwright et al. | Automating the design of mlut mpsopc fpgas in the cloud | |
Cartwright et al. | Creating hw/sw co-designed mpsopc's from high level programming models | |
Oden et al. | Implementation and Evaluation of CUDA-Unified Memory in Numba |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20160419 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20160419 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20160905 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20161025 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170912 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171006 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171024 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20171215 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180222 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180313 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180402 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6319880 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |