JP6428557B2 - 並列化方法、並列化ツール - Google Patents
並列化方法、並列化ツール Download PDFInfo
- Publication number
- JP6428557B2 JP6428557B2 JP2015201423A JP2015201423A JP6428557B2 JP 6428557 B2 JP6428557 B2 JP 6428557B2 JP 2015201423 A JP2015201423 A JP 2015201423A JP 2015201423 A JP2015201423 A JP 2015201423A JP 6428557 B2 JP6428557 B2 JP 6428557B2
- Authority
- JP
- Japan
- Prior art keywords
- priority
- execution
- processing
- program
- core
- 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 209
- 230000008569 process Effects 0.000 claims description 114
- 230000009467 reduction Effects 0.000 claims description 11
- 238000007781 pre-processing Methods 0.000 claims 8
- 238000011946 reduction process Methods 0.000 claims 1
- 238000007726 management method Methods 0.000 description 45
- 101000579425 Homo sapiens Proto-oncogene tyrosine-protein kinase receptor Ret Proteins 0.000 description 21
- 102100028286 Proto-oncogene tyrosine-protein kinase receptor Ret Human genes 0.000 description 21
- 230000000694 effects Effects 0.000 description 16
- 101100458410 Solanum lycopersicum MTB2 gene Proteins 0.000 description 15
- 230000008707 rearrangement Effects 0.000 description 12
- 101000967192 Homo sapiens Metastasis-associated protein MTA3 Proteins 0.000 description 8
- 102100040617 Metastasis-associated protein MTA3 Human genes 0.000 description 8
- 239000000284 extract Substances 0.000 description 8
- 101001027925 Homo sapiens Metastasis-associated protein MTA1 Proteins 0.000 description 7
- 102100037517 Metastasis-associated protein MTA1 Human genes 0.000 description 7
- 101001028019 Homo sapiens Metastasis-associated protein MTA2 Proteins 0.000 description 6
- 101150076088 MTD1 gene Proteins 0.000 description 6
- 102100037511 Metastasis-associated protein MTA2 Human genes 0.000 description 6
- 102100025851 Acyl-coenzyme A thioesterase 2, mitochondrial Human genes 0.000 description 5
- 101000720371 Homo sapiens Acyl-coenzyme A thioesterase 2, mitochondrial Proteins 0.000 description 5
- 101150011474 MTB1 gene Proteins 0.000 description 5
- -1 MTD3 Proteins 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000007717 exclusion Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Description
コアが一つであるシングルコアマイコン用のシングルプログラムにおける複数の処理(A1〜A3、B1、B2、C1、D1〜D3、E1〜E3、MT1〜MT9)から複数のコアを有するマルチコアマイコン用に並列化した並列プログラムを生成するコンピュータが実行する方法であり、シングルプログラムにおける複数の処理の依存関係を解析して、複数の処理をマルチコアマイコンの異なるコア用に割り振る並列化方法であって、
複数の処理のうち実行期限の要件がある優先処理に対して、シングルプログラムにおける実行順に管理番号を付与するとともに、優先処理であることを示す優先情報を付与する付与処理手順(S10、S11)と、
各コアに割り振られる複数の処理毎に、管理番号と優先情報とに基づき、依存関係を満たしつつ、シングルプログラムにおける実行順が早い優先処理ほど、並列プログラムにおける実行順が早くなるように配置する配置処理手順(S20〜S25、S30〜S33)と、を備えていることを特徴とする。
コアが一つであるシングルコアマイコン用のシングルプログラムにおける複数の処理(A1〜A3、B1、B2、C1、D1〜D3、E1〜E3、MT1〜MT9)から複数のコアを有するマルチコアマイコン用に並列化した並列プログラムを生成するツールであり、シングルプログラムにおける複数の処理の依存関係を解析して、複数の処理をマルチコアマイコンの異なるコア用に割り振るコンピュータを含んで構成された並列化ツールであって、
複数の処理のうち実行期限の要件がある優先処理に対して、シングルプログラムにおける実行順に管理番号を付与するとともに、優先処理であることを示す優先情報を付与する付与ステップ(S10、S11)と、
各コアに割り振られる複数の処理毎に、管理番号と優先情報とに基づき、依存関係を満たしつつ、シングルプログラムにおける実行順が早い優先処理ほど、並列プログラムにおける実行順が早くなるように配置する配置ステップ(S20〜S25、S30〜S33)と、をコンピュータが実行する点にある。
本実施形態では、コアが一つであるシングルコアマイコン用のシングルプログラムにおける複数のマクロタスクA1〜A3などから第1コア21cと第2コア21dを有するマルチコアマイコン用に並列化した並列プログラム21a1を生成する例を採用する。なお、並列プログラム21a1を生成する際には、特開2015−1807号公報に記載されているように、シングルプログラムにおける複数のマクロタスクの依存関係を解析して、複数のマクロタスクをマルチコアマイコンの異なるコア用に割り振る。この点に関しては、特開2015−1807号公報を参照されたい。なお、マイコンは、プロセッサと言い換えることもできる。
本実施形態の自動並列化コンパイラ1は、仮並列プログラムを作成することなく並列プログラム21a1を生成する手順を含んでいる点が第1実施形態と異なる。同様に、本実施形態のコンピュータ10は、仮並列プログラムを作成することなく並列プログラム21a1を生成する点が第1実施形態と異なる。そして、本実施形態の車載装置20は、仮並列プログラムを作成することなく生成された並列プログラム21a1が搭載されている点が第1実施形態と異なる。なお、本実施形態では、便宜的に、第1実施形態と同じ符号を採用する。また、以下の実施形態に関しても、便宜的に、第1実施形態と同じ符号を採用する。
図4などに示すように、MTD3は、MTB2と依存関係がある。このため、第1コア21cは、図11に示す第1コア21c用のプログラムを実行すると、MTD1を実行した後に、第2コア21dがMTB2の実行を完了するのを待つ完了待ちW1が発生する。
本実施形態では、車両のブレーキシステム制御装置に車載装置20を適用した例を採用する。よって、シングルプログラムは、ブレーキシステムのプログラムである。また、本実施形態の自動並列化コンパイラ1は、第1実施形態と同様に、仮並列プログラムを作成してから並列プログラム21a1を生成する手順を含む。このため、本実施形態のコンピュータ10は、仮並列プログラムを作成してから並列プログラム21a1を生成する。
本実施形態では、第4実施形態と同様に、車両のブレーキシステム制御装置に車載装置20を適用した例を採用する。よって、シングルプログラムは、第4実施形態のものと同様である。また、本実施形態の自動並列化コンパイラ1は、第2実施形態と同様に、並列プログラム21a1を生成する手順を含む。このため、本実施形態のコンピュータ10は、仮並列プログラムを作成することなく並列プログラム21a1を生成する。
本実施形態では、第4実施形態と同様に、車両のブレーキシステム制御装置に車載装置20を適用した例を採用する。よって、シングルプログラムは、第4実施形態のものと同様である。また、本実施形態の自動並列化コンパイラ1は、第3実施形態と同様に、第5実施形態で生成された並列プログラム21a1で発生する完了待ちW5を低減する手順を含んでいる。よって、本実施形態のコンピュータ10は、第3実施形態と同様に、第5実施形態で生成された並列プログラム21a1で発生する完了待ちを低減できる並列プログラム21a1を生成する。そして、本実施形態の車載装置20は、このような並列プログラム21a1が搭載されている。
Claims (12)
- コアが一つであるシングルコアマイコン用のシングルプログラムにおける複数の処理(A1〜A3、B1、B2、C1、D1〜D3、E1〜E3、MT1〜MT9)から複数の前記コアを有するマルチコアマイコン用に並列化した並列プログラムを生成するコンピュータが実行する方法であり、前記シングルプログラムにおける複数の前記処理の依存関係を解析して、複数の前記処理を前記マルチコアマイコンの異なる前記コア用に割り振る並列化方法であって、
複数の前記処理のうち実行期限の要件がある優先処理に対して、前記シングルプログラムにおける実行順に管理番号を付与するとともに、前記優先処理であることを示す優先情報を付与する付与処理手順(S10、S11)と、
各コアに割り振られる複数の前記処理毎に、前記管理番号と前記優先情報とに基づき、前記依存関係を満たしつつ、前記シングルプログラムにおける実行順が早い前記優先処理ほど、前記並列プログラムにおける実行順が早くなるように配置する配置処理手順(S20〜S25、S30〜S33)と、を備えていることを特徴とする並列化方法。 - 前記付与処理手順では、全ての前記処理に対して、前記シングルプログラムにおける実行順に前記管理番号を付与し、
前記配置処理手順(S20〜S25)は、各コアに割り振られた複数の前記処理毎に、前記依存関係を満たしつつ、前記シングルプログラムにおける実行順が早い前記優先処理ほど、前記並列プログラムにおける実行順が早くなるように並び変えて配置する手順を含んでいることを特徴とする請求項1に記載の並列化方法。 - 前記配置処理手順(S20〜S25)では、前記優先処理に付与された前記管理番号と、前記優先処理の一つ前に配置された前記処理である優先前処理に付与された前記管理番号とを比較し、前記シングルプログラムにおける実行順が前記優先前処理よりも前記優先処理の方が先であり、且つ、前記優先前処理と前記優先処理の処理順を入れ替えても前記依存関係が崩れない場合に、前記優先前処理と前記優先処理とを並び替える手順を含んでいることを特徴とする請求項2に記載の並列化方法。
- 前記配置処理手順(S30〜S33)では、前記優先処理と前記優先処理ではない通常処理とを、前記依存関係を満たすように各コアに割り振りつつ、前記シングルプログラムにおける実行順が早い前記優先処理ほど、前記並列プログラムにおける実行順が早くなるように配置する手順を含んでいることを特徴とする請求項1に記載の並列化方法。
- 前記配置処理手順では、前記優先処理を配置することで前記依存関係が崩れる場合、前記依存関係を満たすように、前記通常処理を配置する手順を含んでいることを特徴とする請求項4に記載の並列化方法。
- 前記付与処理手順では、前記優先処理を含む全ての前記処理に対して、前記シングルプログラムにおける実行順に前記管理番号を付与する手順を含んでおり、
一つの前記コアにおいて、他の前記コアにおける前記処理の実行が完了したことを待つ完了待ちが発生する場合、前記完了待ちの要因となる前記処理である要因処理に付与された前記管理番号と、前記要因処理の一つ前に配置された前記処理である要因前処理に付与された前記管理番号とを比較し、前記シングルプログラムにおける実行順が前記要因前処理よりも前記要因処理の方が先であり、且つ、前記要因前処理と前記要因処理の実行順を入れ替えても前記依存関係が崩れない場合に、前記完了待ちを減らすために前記要因前処理と前記要因処理とを並び替える低減処理手順を備えていることを特徴とする請求項5に記載の並列化方法。 - コアが一つであるシングルコアマイコン用のシングルプログラムにおける複数の処理(A1〜A3、B1、B2、C1、D1〜D3、E1〜E3、MT1〜MT9)から複数の前記コアを有するマルチコアマイコン用に並列化した並列プログラムを生成するツールであり、前記シングルプログラムにおける複数の前記処理の依存関係を解析して、複数の前記処理を前記マルチコアマイコンの異なる前記コア用に割り振るコンピュータを含んで構成された並列化ツールであって、
複数の前記処理のうち実行期限の要件がある優先処理に対して、前記シングルプログラムにおける実行順に管理番号を付与するとともに、前記優先処理であることを示す優先情報を付与する付与ステップ(S10、S11)と、
各コアに割り振られる複数の前記処理毎に、前記管理番号と前記優先情報とに基づき、前記依存関係を満たしつつ、前記シングルプログラムにおける実行順が早い前記優先処理ほど、前記並列プログラムにおける実行順が早くなるように配置する配置ステップ(S20〜S25、S30〜S33)と、を前記コンピュータが実行することを特徴とする並列化ツール。 - 前記付与ステップでは、全ての前記処理に対して、前記シングルプログラムにおける実行順に前記管理番号を付与し、
前記配置ステップ(S20〜S25)は、各コアに割り振られた複数の前記処理毎に、前記依存関係を満たしつつ、前記シングルプログラムにおける実行順が早い前記優先処理ほど、前記並列プログラムにおける実行順が早くなるように並び変えて配置することを特徴とする請求項7に記載の並列化ツール。 - 前記配置ステップ(S20〜S25)では、前記優先処理に付与された前記管理番号と、前記優先処理の一つ前に配置された前記処理である優先前処理に付与された前記管理番号とを比較し、前記シングルプログラムにおける実行順が前記優先前処理よりも前記優先処理の方が先であり、且つ、前記優先前処理と前記優先処理の処理順を入れ替えても前記依存関係が崩れない場合に、前記優先前処理と前記優先処理とを並び替えることを特徴とする請求項8に記載の並列化ツール。
- 前記配置ステップ(S30〜S33)では、前記優先処理と前記優先処理ではない通常処理とを、前記依存関係を満たすように各コアに割り振りつつ、前記シングルプログラムにおける実行順が早い前記優先処理ほど、前記並列プログラムにおける実行順が早くなるように配置することを特徴とする請求項7に記載の並列化ツール。
- 前記配置ステップでは、前記優先処理を配置することで前記依存関係が崩れる場合、前記依存関係を満たすように、前記通常処理を配置することを特徴とする請求項10に記載の並列化ツール。
- 前記付与ステップでは、前記優先処理を含む全ての前記処理に対して、前記シングルプログラムにおける実行順に前記管理番号を付与し、
一つの前記コアにおいて、他の前記コアにおける前記処理の実行が完了したことを待つ完了待ちが発生する場合、前記完了待ちの要因となる前記処理である要因処理に付与された前記管理番号と、前記要因処理の一つ前に配置された前記処理である要因前処理に付与された前記管理番号とを比較し、前記シングルプログラムにおける実行順が前記要因前処理よりも前記要因処理の方が先であり、且つ、前記要因前処理と前記要因処理の処理順を入れ替えても前記依存関係が崩れない場合に、前記完了待ちを減らすために前記要因前処理と前記要因処理とを並び替える低減ステップを前記コンピュータが更に実行することを特徴とする請求項11に記載の並列化ツール。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015201423A JP6428557B2 (ja) | 2015-10-09 | 2015-10-09 | 並列化方法、並列化ツール |
DE102016219449.6A DE102016219449A1 (de) | 2015-10-09 | 2016-10-07 | Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugverbaute Einrichtung |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015201423A JP6428557B2 (ja) | 2015-10-09 | 2015-10-09 | 並列化方法、並列化ツール |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017073083A JP2017073083A (ja) | 2017-04-13 |
JP6428557B2 true JP6428557B2 (ja) | 2018-11-28 |
Family
ID=58405388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015201423A Active JP6428557B2 (ja) | 2015-10-09 | 2015-10-09 | 並列化方法、並列化ツール |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6428557B2 (ja) |
DE (1) | DE102016219449A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021012601A (ja) * | 2019-07-08 | 2021-02-04 | 株式会社デンソー | 並列化方法、半導体制御装置、車載制御装置 |
CN115220990B (zh) * | 2021-12-09 | 2024-04-19 | 广州汽车集团股份有限公司 | 一种多核系统程序流监测方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3039953B2 (ja) * | 1989-04-28 | 2000-05-08 | 株式会社日立製作所 | 並列化装置 |
JP5614699B2 (ja) * | 2009-04-07 | 2014-10-29 | 日本電気株式会社 | マルチコアシステムのためのタスク割り当て関連方法、その装置、そのシステム、及びそのプログラム |
JP5408330B2 (ja) * | 2010-02-23 | 2014-02-05 | 富士通株式会社 | マルチコアプロセッサシステム、スレッド制御方法、およびスレッド制御プログラム |
JP2014225137A (ja) * | 2013-05-16 | 2014-12-04 | 株式会社デンソー | タスクスケジューラ,マイクロプロセッサ及びタスクスケジューリング方法 |
JP6018022B2 (ja) | 2013-06-14 | 2016-11-02 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 |
-
2015
- 2015-10-09 JP JP2015201423A patent/JP6428557B2/ja active Active
-
2016
- 2016-10-07 DE DE102016219449.6A patent/DE102016219449A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102016219449A1 (de) | 2017-04-13 |
JP2017073083A (ja) | 2017-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5516744B2 (ja) | スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法 | |
KR101640848B1 (ko) | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 | |
KR20130087257A (ko) | Gpu의 자원 할당을 위한 방법 및 장치 | |
US20150113252A1 (en) | Thread control and calling method of multi-thread virtual pipeline (mvp) processor, and processor thereof | |
KR20110075297A (ko) | 병렬도를 고려한 병렬 처리 장치 및 방법 | |
US10642658B2 (en) | Vehicle control apparatus | |
JP2008065713A (ja) | マルチプロセッサシステム及び割込み制御方法 | |
JP2017228029A (ja) | 並列化方法、並列化ツール、車載装置 | |
JP6464982B2 (ja) | 並列化方法、並列化ツール、車載装置 | |
JP6428557B2 (ja) | 並列化方法、並列化ツール | |
US20170052891A1 (en) | Multi-core processor system and method for managing a shared cache in the multi-core processor system | |
US20150121392A1 (en) | Scheduling in job execution | |
Casini et al. | Optimized partitioning and priority assignment of real-time applications on heterogeneous platforms with hardware acceleration | |
JP2007188523A (ja) | タスク実行方法およびマルチプロセッサシステム | |
US9740530B2 (en) | Decreasing the priority of a user based on an allocation ratio | |
US20130117757A1 (en) | Method and apparatus for scheduling application programs | |
KR102224844B1 (ko) | 선점 방식을 선택하는 방법 및 장치. | |
JP5776813B2 (ja) | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法および制御プログラム | |
JP5614699B2 (ja) | マルチコアシステムのためのタスク割り当て関連方法、その装置、そのシステム、及びそのプログラム | |
WO2021044810A1 (ja) | コア割当装置及びコア割当方法 | |
JP6617511B2 (ja) | 並列化方法、並列化ツール、車載装置 | |
JP6349837B2 (ja) | スケジューラ装置及びそのスケジューリング方法、演算処理システム、並びにコンピュータ・プログラム | |
JP6524733B2 (ja) | 並列演算装置、並列演算システム、およびジョブ制御プログラム | |
JP2020086807A (ja) | 車両制御装置およびプログラム実行方法 | |
JP6289197B2 (ja) | プラント制御装置エンジニアリングツール |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171128 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180620 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180703 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180808 |
|
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: 20181002 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181015 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6428557 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
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 |