JP7307011B2 - モデル並列化装置および方法 - Google Patents
モデル並列化装置および方法 Download PDFInfo
- Publication number
- JP7307011B2 JP7307011B2 JP2020038215A JP2020038215A JP7307011B2 JP 7307011 B2 JP7307011 B2 JP 7307011B2 JP 2020038215 A JP2020038215 A JP 2020038215A JP 2020038215 A JP2020038215 A JP 2020038215A JP 7307011 B2 JP7307011 B2 JP 7307011B2
- Authority
- JP
- Japan
- Prior art keywords
- parallelization
- model
- unit
- plan
- 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
Images
Landscapes
- Stored Programmes (AREA)
Description
以下、本発明の第1の実施例について、図面を用いて説明する。
sem_post(sem_task_1);
sem_post(sem_task_2);
…
sem_post(sem_task_N);
sem_wait(sem_parent_1);
sem_wait(sem_parent_2);
…
sem_wait(sem_parent_N);
}
task_n(){
sem_wait(sem_task_n);
for( i=n*Range; i<(n+1)*Range; i++){
func();
}
sem_post(sem_parent_n);
}
上記はN個のタスクに分けられる場合を想定したソースコード例となっている。nはタスクの番号を表しており、Rangeは各タスクが担当するデータ量を表す。親タスクはセマフォなどを用いて子タスクを起動し、全ての子タスクの終了を待つ。子タスクは割当てられたデータを処理し、処理が完了したら親タスクに通知する。
sem_post(sem_task_1);
sem_post(sem_task_2);
…
sem_post(sem_task_N);
sem_wait(sem_parent_1);
sem_wait(sem_parent_2);
…
sem_wait(sem_parent_N);
}
task_n(){
sem_wait(sem_task_n);
func_n();
sem_post(sem_parent_n);
}
上記はN個のタスクに分けられる場合を想定したソースコード例となっている。親タスクはセマフォなどを用いて子タスクを起動し、全ての子タスクの終了を待つ。子タスクは割当てられた処理を実行し、処理が完了したら親タスクに通知する。
sem_post(sem_task_1_1);
sem_post(sem_task_2_1);
sem_wait(sem_parent_S_LP);
}
task_1_lp(){
sem_wait(sem_task_s1_lp_f1);
func_1();
sem_post(sem_task_s2_lp_f1);
sem_post(sem_task_s1_(lp+1)_f1);
}
task_2_lp(){
sem_wait(sem_task_s1_lp_f1);
sem_wait(sem_task_s2_lp_f2);
func_2();
sem_post(sem_task_s2_(lp+1)_f2);
}
…
task_s_lp(){
sem_wait(sem_task_(s-1)_lp_f(n-1));
sem_wait(sem_task_s_lp_fs);
func_s();
sem_post(sem_task_s_(lp+1)_fs);
}
上記はS個のステージに分割された場合のソースコード例となっており、LP回ループを処理している。sはステージ番号、lpはループ番号、fは何ステージ目の排他かを表す。親タスクが1ステージ目の子タスクを起動し、子タスクが処理を行う。1ステージ目の子タスクは2ステージ目の子タスクおよび2ループ目の1ステージ目子タスクを起動する。2ステージ目の子タスクは同ループの1ステージ目子タスクおよび1つ前のループの2ステージ目子タスクが実行完了したのを確認して、処理を行う。最後のループの最後のステージを担う子タスクは、次の子タスクへ通知する代わりに親タスクへ通知を行う。
sem_post(sem_task_1);
sem_wait(sem_parent_1);
sem_wait(sem_parent_2);
…
sem_wait(sem_parent_S);
}
task_1(){
sem_wait(sem_task_1);
for(i=0; i<LP; i++){
func_1();
sem_post(sem_task_2);
}
sem_post(sem_parent_1);
}
task_2(){
for(i=0; i<LP; i++){
sem_wait(sem_task_2);
func_2();
sem_post(sem_task_3);
}
sem_post(sem_parent_2);
}
…
task_s(){
for(i=0; i<LP; i++){
sem_wait(sem_task_s);
func_s();
sem_post(sem_task_(s+1));
}
sem_post(sem_parent_s);
}
上記はS個のステージに分割された場合のソースコード例となっており、LP回ループを処理している。親タスクが1ステージ目の子タスクを起動し、起動された子タスクが処理を行う。1ステージ目の子タスクは処理が完了したら2ステージ目の子タスクへ通知を送る。2ステージ目の子タスクは1ステージ目の子タスクから通知を受け取ると、割り当てられた処理を行い次のステージの子タスクへ通知を行ったうえで、再度通知を待つ。各ステージの子タスクはこれをLP回行い、最後に各子タスクが親タスクへ通知を送る。
本発明の第2の実施例について説明する。本実施例では、並列化候補の適用が適切か評価し、適用可否を決定する。図13は本実施例におけるモデル並列化装置101の構成イメージである。並列化候補提案ツール111の出力情報を効果予測部1301、排他検出部1302および依存関係確認部1303が取得する。効果予測部1301は並列化提案情報(並列化情報)をもとにシミュレートを行い、並列化候補適用による効果の予測を行う。排他検出部1302は並列化候補箇所の排他制御使用有無を検出する。依存関係確認部1303は並列化候補箇所に依存関係が無い確認を行う。これらの結果をもとに適用可否評価部1304が並列化候補の適用をすべきか判断する。
102 電子制御装置
103 コア1
104 コア2
105 コアN
106 メモリ
107 スケジューリング部
108 周辺装置
109 モデル
110 オートコーダ
111 並列化候補提案ツール
201 種類解釈部
202 分割数解釈部
203 パターン生成部
204 対象抽出部
205 モデル変換部
206 モデル統合部
801 Subsystem_1
802 Subsystem_2
803 Subsystem_3
804 Subsystem_4
805 Function
806 S-Function
1001 並列化パターン
1002 対象ブロック情報
1003 並列化モデル
1101 対象ブロック情報
1301 効果予測部
1302 排他検出部
1303 依存関係確認部
1304 適用可否評価部
1401 シミュレータ
1402 並列化シミュレータ
1403 実行時間比較部
1404 効果評価部
Claims (7)
- モデルから生成されるソースコードを対象とするマルチコア向け並列化案から並列化種類を解釈する種類解釈部と、
前記並列化案から並列化候補の分割数を解釈する分割数解釈部と、
前記並列化種類および前記分割数から並列化パターンを生成するパターン生成部と、
前記並列化候補のブロックを識別する情報を示す対象ブロック情報を前記ソースコードから抽出する対象抽出部と、
前記対象ブロック情報によって識別されるブロックを前記並列化パターンに従って変換し、並列化モデルを出力するモデル変換部と、
を備えることを特徴とするモデル並列化装置。 - 請求項1に記載のモデル並列化装置であって、
前記並列化案は、
外部から入力される並列化提案情報によって示され、
前記並列化提案情報は、
前記並列化種類、前記並列化候補の分割数、および並列化の範囲を示す情報を含む
ことを特徴とするモデル並列化装置。 - 請求項2に記載のモデル並列化装置であって、
前記並列化種類は、
前記種類解釈部へ入力され、
前記並列化候補の分割数は、
前記分割数解釈部へ入力され、
前記並列化の範囲は、
前記対象抽出部へ入力される
ことを特徴とするモデル並列化装置。 - 請求項1に記載のモデル並列化装置であって、
前記並列化案による効果を予測する効果予測部と、
前記並列化案によって分割されるタスク間の依存関係有無を確認する依存関係確認部と、
前記並列化案の前記並列化候補のソースコード内において排他制御有無を確認する排他検出部と、
前記効果予測部、前記依存関係確認部および前記排他検出部の結果から前記並列化案の適用可否を評価する適用可否評価部と、
を備えることを特徴とするモデル並列化装置。 - 請求項2に記載のモデル並列化装置であって、
前記対象抽出部は、
(a)前記並列化の範囲がループ処理であり、かつ前記並列化の範囲に前記モデルを構成するブロックのコメントが記載されている場合、前記コメントで前記ブロックを識別し、
(b)前記並列化の範囲がループ処理であり、かつ前記並列化の範囲に前記ブロックのコメントが記載されていない場合、前記並列化の範囲が所属する関数の名前で前記ブロックを識別し、
(c)前記並列化の範囲がループ処理でない場合、前記並列化の範囲に含まれる関数群の名前で前記ブロックを識別し、
前記(a)-(c)のいずれかを実行した後、前記ブロックを識別する情報を示す対象ブロック情報を出力する
ことを特徴とするモデル並列化装置。 - モデルを対象とするマルチコア向け並列化案による効果を予測する効果予測部と、
前記並列化案によって分割されるタスク間の依存関係有無を確認する依存関係確認部と、
前記並列化案の前記対象のソースコード内において排他制御有無を確認する排他検出部と、
前記効果予測部、前記依存関係確認部および前記排他検出部の結果から前記並列化案の適用可否を評価する適用可否評価部と、
を備えることを特徴とするモデル並列化装置。 - モデルから生成されるソースコードを対象とするマルチコア向け並列化案から並列化種類を解釈する種類解釈ステップと、
前記並列化案から並列化候補の分割数を解釈する分割数解釈ステップと、
前記並列化種類および前記分割数から並列化パターンを生成するパターン生成ステップと、
前記並列化候補のブロックを識別する情報を示す対象ブロック情報を前記ソースコードから抽出する対象抽出ステップと、
前記対象ブロック情報によって識別されるブロックを前記並列化パターンに従って変換し、並列化モデルを出力するモデル変換ステップと、
を有することを特徴とするモデル並列化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020038215A JP7307011B2 (ja) | 2020-03-05 | 2020-03-05 | モデル並列化装置および方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020038215A JP7307011B2 (ja) | 2020-03-05 | 2020-03-05 | モデル並列化装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021140501A JP2021140501A (ja) | 2021-09-16 |
JP7307011B2 true JP7307011B2 (ja) | 2023-07-11 |
Family
ID=77668731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020038215A Active JP7307011B2 (ja) | 2020-03-05 | 2020-03-05 | モデル並列化装置および方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7307011B2 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009181446A (ja) | 2008-01-31 | 2009-08-13 | Toshiba Corp | プログラム生成装置およびブロック線図生成装置 |
JP2017068825A (ja) | 2015-09-29 | 2017-04-06 | パナソニックIpマネジメント株式会社 | ソフトウェア開発システムおよびプログラム |
WO2020121686A1 (ja) | 2018-12-12 | 2020-06-18 | ソニー株式会社 | プログラムの製造方法、およびプログラムの表示方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2526713B2 (ja) * | 1990-05-28 | 1996-08-21 | 日本電気株式会社 | 原始プログラム解析装置 |
JPH06161773A (ja) * | 1992-11-20 | 1994-06-10 | Sanyo Electric Co Ltd | 並列処理プログラムの作成装置 |
JPH0736680A (ja) * | 1993-07-23 | 1995-02-07 | Omron Corp | 並列化プログラム開発支援装置 |
-
2020
- 2020-03-05 JP JP2020038215A patent/JP7307011B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009181446A (ja) | 2008-01-31 | 2009-08-13 | Toshiba Corp | プログラム生成装置およびブロック線図生成装置 |
JP2017068825A (ja) | 2015-09-29 | 2017-04-06 | パナソニックIpマネジメント株式会社 | ソフトウェア開発システムおよびプログラム |
WO2020121686A1 (ja) | 2018-12-12 | 2020-06-18 | ソニー株式会社 | プログラムの製造方法、およびプログラムの表示方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2021140501A (ja) | 2021-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4629768B2 (ja) | 並列化処理方法、システム、及びプログラム | |
JP4931978B2 (ja) | 並列化処理方法、システム、及びプログラム | |
EP3285170A1 (en) | Application profiling job management system, program, and method | |
JP5209059B2 (ja) | ソース・コード処理方法、システム、及びプログラム | |
US9152389B2 (en) | Trace generating unit, system, and program of the same | |
US7721250B2 (en) | System and method for interactive and integrated software development process and phases | |
US9396095B2 (en) | Software verification | |
US10884714B2 (en) | Method for modifying models for generating source code | |
JP5479942B2 (ja) | 並列化方法、システム、及びプログラム | |
US11126408B2 (en) | Incremental code generation method | |
WO2024006036A1 (en) | Syntax subtree code strengthening | |
Chi et al. | Rapid cycle-accurate simulator for high-level synthesis | |
CN115935631A (zh) | 用于车机设备的测试系统和方法、存储介质 | |
JP2017228029A (ja) | 並列化方法、並列化ツール、車載装置 | |
Kamkin et al. | Extensible environment for test program generation for microprocessors | |
JP7307011B2 (ja) | モデル並列化装置および方法 | |
US9841954B1 (en) | Method and system for automatic code generation | |
CN117271328A (zh) | 基于Event-B形式化的实时调度算法可调度性建模和验证方法、系统及应用 | |
CN112114817A (zh) | 基于cobol语言的数据字典字段信息获取方法及装置 | |
Diaz et al. | VIPPE, parallel simulation and performance analysis of multi-core embedded systems on multi-core platforms | |
JP2013020580A (ja) | 並列化方法、システム、及びプログラム | |
Schneider et al. | Software Parallelization in Automotive Multi-Core Systems | |
JP6933001B2 (ja) | 並列化方法、並列化ツール | |
Malyshkin et al. | Automated Debugging of Fragmented Programs in LuNA System | |
CN114041116A (zh) | 数据移动任务优化的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220406 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230328 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230502 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230614 |
|
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: 20230620 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230629 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7307011 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |