JP6776914B2 - 並列化方法、並列化ツール - Google Patents
並列化方法、並列化ツール Download PDFInfo
- Publication number
- JP6776914B2 JP6776914B2 JP2017015286A JP2017015286A JP6776914B2 JP 6776914 B2 JP6776914 B2 JP 6776914B2 JP 2017015286 A JP2017015286 A JP 2017015286A JP 2017015286 A JP2017015286 A JP 2017015286A JP 6776914 B2 JP6776914 B2 JP 6776914B2
- Authority
- JP
- Japan
- Prior art keywords
- parallelism
- reference value
- relaxation
- pattern
- control model
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/314—Parallel programming languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- 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
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
シングルコアマイコン用に記述されたプログラムの制御モデル(210)を解析して、マルチコアマイコン用に並列化可能な処理単位を並列化した並列プログラム(240)を生成する並列化方法であって、
制御モデルにおける構造と各処理ブロックのコスト情報とから、制御モデルの並列性を見積る見積手順(S10)と、
並列性の見積もり結果と並列性基準値とを比較して、制御モデルが並列性基準値を満たしているか否かを判定する並列性判定手順(S11)と、
制御モデルが並列性基準値を満たしていない場合に、制御モデルにおける少なくとも一部のデータ依存関係について処理順序を緩和したパターンである緩和パターンを抽出するとともに、各緩和パターンの並列性を見積る探索手順(S12〜S14)と、
緩和パターンの動作シミュレーションを実施して、制御モデルに設定された性能要件を評価するための評価パラメータについてのシミュレーション結果を求めるシミュレーション手順(S15)と、
シミュレーション手順にてシミュレーション結果が求められると、シミュレーション結果が、制御モデルに設定された性能要件の基準値であるパラメータ基準値を満たしているか否かを判定するパラメータ判定手順(S16)と、
シミュレーション結果がパラメータ基準値を満たしている緩和パターンにおける並列性の見積もり結果と並列性基準値とを比較して、並列性基準値を満たしている緩和パターンを、並列プログラムを生成するための対象パターンとして採用する決定手順(S18、S20)と、を備えていることを特徴とする。
シングルコアマイコン用に記述されたプログラムの制御モデル(210)を解析して、マルチコアマイコン用に並列化可能な処理単位を並列化した並列プログラム(240)を生成する、コンピュータ(100)を含む並列化ツールであって、
制御モデルにおける構造と各処理ブロックのコスト情報とから、制御モデルの並列性を見積る見積部(S10)と、
並列性の見積もり結果と並列性基準値とを比較して、制御モデルが並列性基準値を満たしているか否かを判定する並列性判定部(S11)と、
制御モデルが並列性基準値を満たしていない場合に、制御モデルにおける少なくとも一部のデータ依存関係について処理順序を緩和したパターンである緩和パターンを抽出するとともに、各緩和パターンの並列性を見積る探索部(S12〜S14)と、
緩和パターンの動作シミュレーションを実施して、制御モデルに設定された性能要件を評価するための評価パラメータについてのシミュレーション結果を求めるシミュレーション部(S15)と、
シミュレーション部にてシミュレーション結果が求められると、シミュレーション結果が、制御モデルに設定された性能要件の基準値であるパラメータ基準値を満たしているか否かを判定するパラメータ判定部(S16)と、
シミュレーション結果がパラメータ基準値を満たしている緩和パターンにおける並列性の見積もり結果と並列性基準値とを比較して、並列性基準値を満たしている緩和パターンを、並列プログラムを生成するための対象パターンとして採用する決定部(S18、S20)と、を備えていることを特徴とする。
Claims (14)
- シングルコアマイコン用に記述されたプログラムの制御モデル(210)を解析して、マルチコアマイコン用に並列化可能な処理単位を並列化した並列プログラム(240)を生成する並列化方法であって、
前記制御モデルにおける構造と各処理ブロックのコスト情報とから、前記制御モデルの並列性を見積る見積手順(S10)と、
前記並列性の見積もり結果と並列性基準値とを比較して、前記制御モデルが前記並列性基準値を満たしているか否かを判定する並列性判定手順(S11)と、
前記制御モデルが前記並列性基準値を満たしていない場合に、前記制御モデルにおける少なくとも一部のデータ依存関係について処理順序を緩和したパターンである緩和パターンを抽出するとともに、各緩和パターンの前記並列性を見積る探索手順(S12〜S14)と、
前記緩和パターンの動作シミュレーションを実施して、前記制御モデルに設定された性能要件を評価するための評価パラメータについてのシミュレーション結果を求めるシミュレーション手順(S15)と、
前記シミュレーション手順にて前記シミュレーション結果が求められると、前記シミュレーション結果が、前記制御モデルに設定された性能要件の基準値であるパラメータ基準値を満たしているか否かを判定するパラメータ判定手順(S16)と、
前記シミュレーション結果が前記パラメータ基準値を満たしている前記緩和パターンにおける前記並列性の見積もり結果と前記並列性基準値とを比較して、前記並列性基準値を満たしている前記緩和パターンを、前記並列プログラムを生成するための対象パターンとして採用する決定手順(S18、S20)と、を備えている並列化方法。 - 前記探索手順は、複数の前記緩和パターンを抽出した場合、複数の前記緩和パターンのそれぞれにおける前記並列性を見積り、
前記シミュレーション手順は、前記探索手順にて見積られた前記並列性が大きい前記緩和パターンから順番に、前記動作シミュレーションを実施して前記シミュレーション結果を求め、
前記パラメータ判定手順は、前記並列性が大きい前記緩和パターンから順番に、前記シミュレーション結果が前記パラメータ基準値を満たしているか否かを判定し、
前記決定手順は、前記並列性が大きい前記緩和パターンから順番に、前記並列性の見積もり結果と前記並列性基準値とを比較して、前記並列性基準値を満たしている前記緩和パターンを前記対象パターンとして採用する請求項1に記載の並列化方法。 - 前記探索手順は、複数の前記緩和パターンを抽出した場合、複数の前記緩和パターンのそれぞれにおける前記並列性を見積り、前記並列性の見積もり結果と前記並列性基準値とを比較して、前記並列性基準値を満たしている前記緩和パターンのみを前記動作シミュレーションを実施する前記緩和パターンとする請求項2に記載の並列化方法。
- 前記決定手順による比較結果において、前記並列性基準値を満たしている前記緩和パターンが複数あった場合、前記並列性基準値を満たしている複数の前記緩和パターンを表示する第1表示手順(S21)を備えている請求項2又は3に記載の並列化方法。
- 前記決定手順は、前記シミュレーション結果が前記パラメータ基準値を満たしている前記緩和パターンがなかった場合、前記パラメータ基準値を満たしていない前記緩和パターンにおける前記並列性の見積もり結果と前記並列性基準値とを比較して、前記並列性基準値を満たしている前記緩和パターンを前記対象パターンとして採用する請求項1乃至4のいずれか一項に記載の並列化方法。
- 少なくとも前記決定手順による比較結果において前記並列性基準値を満たしている前記緩和パターンがなかった場合、前記緩和パターンと、前記緩和パターンにおける前記シミュレーション結果と前記並列性の見積もり結果とを表示する第2表示手順(S22)を備えている請求項1乃至5のいずれか一項に記載の並列化方法。
- 前記決定手順で採用された前記対象パターンから前記並列プログラムを生成する生成手順を備えている請求項1乃至6のいずれか一項に記載の並列化方法。
- シングルコアマイコン用に記述されたプログラムの制御モデル(210)を解析して、マルチコアマイコン用に並列化可能な処理単位を並列化した並列プログラム(240)を生成する、コンピュータ(100)を含む並列化ツールであって、
前記制御モデルにおける構造と各処理ブロックのコスト情報とから、前記制御モデルの並列性を見積る見積部(S10)と、
前記並列性の見積もり結果と並列性基準値とを比較して、前記制御モデルが前記並列性基準値を満たしているか否かを判定する並列性判定部(S11)と、
前記制御モデルが前記並列性基準値を満たしていない場合に、前記制御モデルにおける少なくとも一部のデータ依存関係について処理順序を緩和したパターンである緩和パターンを抽出するとともに、各緩和パターンの前記並列性を見積る探索部(S12〜S14)と、
前記緩和パターンの動作シミュレーションを実施して、前記制御モデルに設定された性能要件を評価するための評価パラメータについてのシミュレーション結果を求めるシミュレーション部(S15)と、
前記シミュレーション部にて前記シミュレーション結果が求められると、前記シミュレーション結果が、前記制御モデルに設定された性能要件の基準値であるパラメータ基準値を満たしているか否かを判定するパラメータ判定部(S16)と、
前記シミュレーション結果が前記パラメータ基準値を満たしている前記緩和パターンにおける前記並列性の見積もり結果と前記並列性基準値とを比較して、前記並列性基準値を満たしている前記緩和パターンを、前記並列プログラムを生成するための対象パターンとして採用する決定部(S18、S20)と、を備えている並列化ツール。 - 前記探索部は、複数の前記緩和パターンを抽出した場合、複数の前記緩和パターンのそれぞれにおける前記並列性を見積り、
前記シミュレーション部は、前記探索部にて見積られた前記並列性が大きい前記緩和パターンから順番に、前記動作シミュレーションを実施して前記シミュレーション結果を求め、
前記パラメータ判定部は、前記並列性が大きい前記緩和パターンから順番に、前記シミュレーション結果が前記パラメータ基準値を満たしているか否かを判定し、
前記決定部は、前記並列性が大きい前記緩和パターンから順番に、前記並列性の見積もり結果と前記並列性基準値とを比較して、前記並列性基準値を満たしている前記緩和パターンを前記対象パターンとして採用する請求項8に記載の並列化ツール。 - 前記探索部は、複数の前記緩和パターンを抽出した場合、複数の前記緩和パターンのそれぞれにおける前記並列性を見積り、前記並列性の見積もり結果と前記並列性基準値とを比較して、前記並列性基準値を満たしている前記緩和パターンのみを前記動作シミュレーションを実施する前記緩和パターンとする請求項9に記載の並列化ツール。
- 前記決定部による比較結果において、前記並列性基準値を満たしている前記緩和パターンが複数あった場合、前記並列性基準値を満たしている複数の前記緩和パターンを表示する第1表示部(S21)を備えている請求項9又は10に記載の並列化ツール。
- 前記決定部は、前記シミュレーション結果が前記パラメータ基準値を満たしている前記緩和パターンがなかった場合、前記パラメータ基準値を満たしていない前記緩和パターンにおける前記並列性の見積もり結果と前記並列性基準値とを比較して、前記並列性基準値を満たしている前記緩和パターンを前記対象パターンとして採用する請求項8乃至11のいずれか一項に記載の並列化ツール。
- 少なくとも前記決定部による比較結果において前記並列性基準値を満たしている前記緩和パターンがなかった場合、前記緩和パターンと、前記緩和パターンにおける前記シミュレーション結果と前記並列性の見積もり結果とを表示する第2表示部(S22)を備えている請求項8乃至12のいずれか一項に記載の並列化ツール。
- 前記決定部で採用された前記対象パターンから前記並列プログラムを生成する生成部を備えている請求項8乃至13のいずれか一項に記載の並列化ツール。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017015286A JP6776914B2 (ja) | 2017-01-31 | 2017-01-31 | 並列化方法、並列化ツール |
DE102017220181.9A DE102017220181A1 (de) | 2017-01-31 | 2017-11-13 | Parallelisierungsverfahren, Parallelisierungstool und fahrzeuginterne Steuervorrichtung |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017015286A JP6776914B2 (ja) | 2017-01-31 | 2017-01-31 | 並列化方法、並列化ツール |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018124710A JP2018124710A (ja) | 2018-08-09 |
JP6776914B2 true JP6776914B2 (ja) | 2020-10-28 |
Family
ID=62843038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017015286A Active JP6776914B2 (ja) | 2017-01-31 | 2017-01-31 | 並列化方法、並列化ツール |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6776914B2 (ja) |
DE (1) | DE102017220181A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7318485B2 (ja) * | 2019-10-25 | 2023-08-01 | 株式会社デンソー | 自動コード生成方法、コードプログラム、電子制御装置、自動コード生成プログラム、及び自動コード生成装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6018022B2 (ja) | 2013-06-14 | 2016-11-02 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 |
-
2017
- 2017-01-31 JP JP2017015286A patent/JP6776914B2/ja active Active
- 2017-11-13 DE DE102017220181.9A patent/DE102017220181A1/de not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
DE102017220181A1 (de) | 2018-08-02 |
JP2018124710A (ja) | 2018-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4042604B2 (ja) | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム | |
Melani et al. | Schedulability analysis of conditional parallel task graphs in multicore systems | |
US9081586B2 (en) | Systems and methods for customizing optimization/transformation/ processing strategies | |
US7761272B1 (en) | Method and apparatus for processing a dataflow description of a digital processing system | |
US9152389B2 (en) | Trace generating unit, system, and program of the same | |
TWI507990B (zh) | 多核心指令集模擬之高平行化同步方法 | |
US20110239201A1 (en) | Method and system for parallelization of sequencial computer program codes | |
EP2924559A2 (en) | Program, compiler method, and compiler apparatus | |
US11636122B2 (en) | Method and apparatus for data mining from core traces | |
Garcia et al. | The kremlin oracle for sequential code parallelization | |
Bobrek et al. | Stochastic contention level simulation for single-chip heterogeneous multiprocessors | |
JP6776914B2 (ja) | 並列化方法、並列化ツール | |
Ferdinand et al. | Static memory and timing analysis of embedded systems code | |
US10761820B2 (en) | Assisting parallelization of a computer program | |
KR20150040663A (ko) | 소프트웨어 파이프라이닝을 이용한 명령어 스케줄링 방법 및 장치 | |
Sari et al. | A Highly Scalable Instruction Scheduler Design based on CPU Stall Elimination | |
Uddin et al. | Signature-based high-level simulation of microthreaded many-core architectures | |
Van Ertvelde et al. | Workload reduction and generation techniques | |
Singh et al. | Snowpack: Efficient parameter choice for GPU kernels via static analysis and statistical prediction | |
Widerspick et al. | Latency measurements for an emulation platform on autonomous driving platform nvidia drive px2 | |
Kassem et al. | Simulator generation using an automaton based pipeline model for timing analysis | |
Abbas et al. | Approximate data dependence graph generation using adaptive sampling | |
Jain et al. | An efficient technique for exploring register file size in ASIP design | |
Kemmerer et al. | Parallel code-specific CPU simulation with dynamic phase convergence modeling for HW/SW co-design | |
Carvalho et al. | Framework for the Analysis and Configuration of Real-Time OpenMP Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190320 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200303 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200407 |
|
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: 20200908 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200921 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6776914 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |