JP6291209B2 - マルチコアプロセッサで行われるプログラムのコンパイル方法、マルチコアプロセッサのタスクマッピング方法及びタスクスケジューリング方法 - Google Patents
マルチコアプロセッサで行われるプログラムのコンパイル方法、マルチコアプロセッサのタスクマッピング方法及びタスクスケジューリング方法 Download PDFInfo
- Publication number
- JP6291209B2 JP6291209B2 JP2013214187A JP2013214187A JP6291209B2 JP 6291209 B2 JP6291209 B2 JP 6291209B2 JP 2013214187 A JP2013214187 A JP 2013214187A JP 2013214187 A JP2013214187 A JP 2013214187A JP 6291209 B2 JP6291209 B2 JP 6291209B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- processing element
- communication method
- scheduling
- communication
- 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 149
- 238000013507 mapping Methods 0.000 title claims description 36
- 238000004891 communication Methods 0.000 claims description 98
- 238000012545 processing Methods 0.000 claims description 88
- 230000008859 change Effects 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 9
- 238000002922 simulated annealing Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000005457 optimization Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 6
- 230000008707 rearrangement Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000003252 repetitive effect Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 125000002015 acyclic group Chemical group 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- 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
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Description
(1)ソースPE112aが共有メモリにデータを記録する。
(2)共有メモリがソースPE112aにACKを伝送する。
(3)ソースPE112aが記録を完了した場合、ソースPE112aが宛先PE112bに同期パケット(sync packet)を伝送する。
(4)宛先PE112bが共有メモリに読み取り要請を伝送する。
(5)共有メモリが宛先PE112bにデータを伝送する。
(1)初期解を生成する。
(2)初期解をランダムに変化させて新規解を得る。
(3)新規解が初期解よりもさらに良ければ、新規解で初期解を代替するが、新規解が初期解よりもさらに良くなければ、所定の確率r(rは、0よりも大きく、1よりも小さい)に従って新規解で初期解を代替する。
この際、Lは、ソースPEから宛先PEまでの通信距離、Aは、ソースPEと宛先PEとの間の通信量、Bは、SPM使用量の合計を示す。
Claims (17)
- マルチコアプロセッサで実行されるプログラムをコンパイルする方法であって、前記方法は、再構成可能なプロセッサが、
前記マルチコアプロセッサでタスクを実行するとき、該タスクのデータを伝送するときのソースプロセッシングエレメントと宛先プロセッシングエレメントとをマッピングする初期解を生成する段階であって、前記初期解は、前記ソースプロセッシングエレメントから前記宛先プロセッシングエレメントへ前記タスクのデータを伝送する方式を表すタスクの通信方式を含む、段階と、
前記ソースプロセッシングエレメントと前記宛先プロセッシングエレメントとのそれぞれにマッピングされたそれぞれのタスクの通信方式を変更する段階と、
前記タスクをスケジューリングする段階と、を含み、
前記通信方式は、コンパイルのときに指定される、方法。 - 前記初期解は、確率的アルゴリズムを用いて生成する、請求項1に記載の方法。
- 前記確率的アルゴリズムは、シミュレーティドアニーリングアルゴリズムである、請求項2に記載の方法。
- 前記初期解を生成する段階で、
前記通信方式は、共有メモリを利用した第1通信方式と前記ソースプロセッシングエレメントと前記宛先プロセッシングエレメントとのそれぞれに含まれたスクラッチパッドメモリを利用した第2通信方式とのうちから選択的に指定される、
請求項1乃至3のいずれか一項に記載の方法。 - 前記タスクの通信方式を変更する段階は、
前記ソースプロセッシングエレメントと前記宛先プロセッシングエレメントとにマッピングされたタスクを、0と1との間の第1確率で、他のプロセッシングエレメントに再びマッピングする段階をさらに含む、請求項4に記載の方法。 - 前記再びマッピングする段階は、
前記他のプロセッシングエレメントにマッピングされた前記タスクを、0と1との間の第2確率で、第2タスクと代替してソースプロセッシングエレメント及び宛先プロセッシングエレメントに再びマッピングする段階をさらに含む、請求項5に記載の方法。 - 前記第2タスクは、前記ソースプロセッシングエレメントと前記宛先プロセッシングエレメントとが反対となるようにマッピングされることによって、前記第2タスクが最初にマッピングされた前記タスクを代替可能にし、
前記第2通信方式は、前記宛先プロセッシングエレメントから前記ソースプロセッシングエレメントへの前記第2タスクの伝送のために選択される請求項6に記載の方法。 - 前記再びマッピングする段階は、
前記タスクに対して前記第1通信方式と前記第2通信方式とのうちから選択的に指定された前記通信方式を、0と1との間の第3確率で、他の通信方式に変更する段階をさらに含む、請求項5乃至7のいずれか一項に記載の方法。 - 前記タスクの通信方式を変更する段階は、
貪欲アルゴリズムヒューリスティックを用いて行われる、請求項4乃至8のいずれか一項に記載の方法。 - 前記タスクの通信方式を変更する段階は、
前記ソースプロセッシングエレメント及び前記宛先プロセッシングエレメントにマッピングされた前記タスクに関するデータのサイズの和がスクラッチパッドメモリの容量を超過しないようにタスクの通信方式を変更することにより、前記ソースプロセッシングエレメント及び前記宛先プロセッシングエレメントの違法性を除去する段階をさらに含む、請求項4乃至9のいずれか一項に記載の方法。 - 前記違法性を除去する段階は、
前記ソースプロセッシングエレメント及び前記宛先プロセッシングエレメントにマッピングされた前記第2通信方式が指定されたタスクに対して通信方式を前記第1通信方式に変更する段階をさらに含む、請求項10に記載の方法。 - 前記違法性を除去する段階は、
少なくとも前記ソースプロセッシングエレメント及び前記宛先プロセッシングエレメントに対して違法性が除去されるように行われる請求項10又は11に記載の方法。 - 前記違法性を除去する段階は、
少なくとも前記ソースプロセッシングエレメント及び前記宛先プロセッシングエレメントを含むスクラッチパッドメモリの容量超過が多いプロセッシングエレメントから順に、前記タスクに関するデータのサイズの和がスクラッチパッドメモリの容量を超過しないようにタスクの通信方式を変更することにより、プロセッシングエレメントの違法性の除去が行われる、請求項10乃至12のいずれか一項に記載の方法。 - 前記タスクの通信方式を変更する段階は、
スクラッチパッドメモリに残余空間が存在するプロセッシングエレメントに対して、タスクの通信方式を変更することにより、前記スクラッチパッドメモリの活用度を向上させる段階をさらに含む、請求項4乃至13いずれか一項に記載の方法。 - 前記活用度を向上させる段階は、
特定のプロセッシングエレメントにマッピングされた前記第1通信方式が指定されたタスクに対して、通信方式を前記第2通信方式に変更する段階をさらに含む、請求項14に記載の方法。 - 前記タスクをスケジューリングする段階は、
前記タスクのスケジューリングのための第1時間区間内でスケジューリングを試みる段階と、
前記スケジューリングを試みる段階で、1つのタスクと他のタスクとが重なってスケジューリングが失敗した場合、前記他のタスクとの重なった時間長を求める段階と、
前記第1時間区間と前記重なった時間長の和に相当する第2時間区間内でスケジューリングを再試みる段階と、
をさらに含む請求項1乃至15いずれか一項に記載の方法。 - 前記タスクをスケジューリングする段階は、
少なくとも1つの前記タスクのうち少なくとも一部が、第1反復遂行間隔をおいて繰り返し行われる場合、少なくとも1つの前記重なった時間長の最小値を求める段階と、
前記第1反復遂行間隔と前記重なった時間長の最小値の和に相当する第2反復遂行間隔とをおいて繰り返し行われるようにスケジューリングを再度試みる段階と、
をさらに含む、請求項16に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2012-0113103 | 2012-10-11 | ||
KR1020120113103A KR101926464B1 (ko) | 2012-10-11 | 2012-10-11 | 멀티코어 프로세서에서 수행되는 프로그램의 컴파일 방법, 멀티코어 프로세서의 태스크 매핑 방법 및 태스크 스케줄링 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014078239A JP2014078239A (ja) | 2014-05-01 |
JP6291209B2 true JP6291209B2 (ja) | 2018-03-14 |
Family
ID=49382262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013214187A Active JP6291209B2 (ja) | 2012-10-11 | 2013-10-11 | マルチコアプロセッサで行われるプログラムのコンパイル方法、マルチコアプロセッサのタスクマッピング方法及びタスクスケジューリング方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9298430B2 (ja) |
EP (1) | EP2720147B1 (ja) |
JP (1) | JP6291209B2 (ja) |
KR (1) | KR101926464B1 (ja) |
CN (1) | CN103729228B (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2880531B1 (en) * | 2012-08-02 | 2017-11-08 | Siemens Corporation | Pipelining for cyclic control systems |
CN103995744B (zh) * | 2014-05-22 | 2017-04-26 | 西安交通大学 | 一种用于消除存储访问拥塞的同构计算任务分组方法 |
CN104572266B (zh) * | 2015-01-04 | 2018-03-06 | 华东师范大学 | 制程变异下基于UPPAAL‑SMC的MPSoC任务调度建模与评估方法 |
CN107291548B (zh) * | 2016-03-31 | 2021-04-13 | 阿里巴巴集团控股有限公司 | 任务的资源调度方法及装置 |
WO2019065302A1 (ja) * | 2017-09-27 | 2019-04-04 | 日立オートモティブシステムズ株式会社 | 車載マルチコア制御用データ伝達装置および電子制御装置 |
CN108108237B (zh) * | 2017-12-27 | 2021-09-28 | 电子科技大学 | 一种基于milp的周期关联任务异构多核映射调度方法 |
US11128531B2 (en) * | 2018-04-30 | 2021-09-21 | Hewlett Packard Enterprise Development Lp | Systems and methods for aggregate bandwidth and latency optimization |
CN110514982B (zh) * | 2019-08-22 | 2022-03-22 | 上海兆芯集成电路有限公司 | 性能分析系统与方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3364274B2 (ja) * | 1993-05-21 | 2003-01-08 | 松下電器産業株式会社 | タスク割り当て装置 |
JP3016359B2 (ja) * | 1995-07-21 | 2000-03-06 | 日本電気株式会社 | マルチプロセッサシステムにおけるプロセッサ割り当て装置、プロセッサ割り当て方法、およびプロセッサ割り当てプログラムを記憶する媒体 |
CA2275826A1 (en) * | 1999-06-18 | 2000-12-18 | Jia Xu | A method of scheduling executions of periodic and asynchronous real-time processes having hard or soft deadlines |
US8020163B2 (en) | 2003-06-02 | 2011-09-13 | Interuniversitair Microelektronica Centrum (Imec) | Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof |
US7564847B2 (en) * | 2004-12-13 | 2009-07-21 | Intel Corporation | Flow assignment |
US20060161755A1 (en) * | 2005-01-20 | 2006-07-20 | Toshiba America Electronic Components | Systems and methods for evaluation and re-allocation of local memory space |
US8826228B2 (en) * | 2006-03-27 | 2014-09-02 | Coherent Logix, Incorporated | Programming a multi-processor system |
CN101165655A (zh) * | 2006-10-20 | 2008-04-23 | 国际商业机器公司 | 多处理器计算系统及其任务分配方法 |
JP2007188523A (ja) * | 2007-03-15 | 2007-07-26 | Toshiba Corp | タスク実行方法およびマルチプロセッサシステム |
US20090213755A1 (en) | 2008-02-26 | 2009-08-27 | Yinghai Lu | Method for establishing a routing map in a computer system including multiple processing nodes |
CN102089752B (zh) * | 2008-07-10 | 2014-05-07 | 洛克泰克科技有限公司 | 依赖性问题的有效率的并行计算 |
US8161127B2 (en) | 2009-02-23 | 2012-04-17 | International Business Machines Corporation | Process mapping in parallel computing |
US8255644B2 (en) | 2009-05-18 | 2012-08-28 | Lsi Corporation | Network communications processor architecture with memory load balancing |
CN101620526B (zh) * | 2009-07-03 | 2011-06-15 | 中国人民解放军国防科学技术大学 | 一种减少流处理器片上指令存储器资源消耗的方法 |
KR101612780B1 (ko) * | 2009-11-13 | 2016-04-18 | 삼성전자주식회사 | 컴퓨팅 시스템 및 컴퓨팅 시스템의 메모리 관리 방법 |
KR101565172B1 (ko) * | 2010-01-15 | 2015-11-02 | 삼성전자주식회사 | 대규모 병렬 프로세서 어레이 시스템의 데이터 처리 장치 및 방법 |
KR101647817B1 (ko) * | 2010-03-31 | 2016-08-24 | 삼성전자주식회사 | 재구성 가능한 프로세서의 시뮬레이션 장치 및 방법 |
US8490112B2 (en) * | 2010-12-03 | 2013-07-16 | International Business Machines Corporation | Data communications for a collective operation in a parallel active messaging interface of a parallel computer |
CN102087609B (zh) * | 2011-02-23 | 2013-06-05 | 中国人民解放军国防科学技术大学 | 多处理器平台下的动态二进制翻译方法 |
-
2012
- 2012-10-11 KR KR1020120113103A patent/KR101926464B1/ko active IP Right Grant
-
2013
- 2013-10-11 EP EP13188361.3A patent/EP2720147B1/en active Active
- 2013-10-11 CN CN201310473475.8A patent/CN103729228B/zh active Active
- 2013-10-11 JP JP2013214187A patent/JP6291209B2/ja active Active
- 2013-10-11 US US14/051,910 patent/US9298430B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20140109069A1 (en) | 2014-04-17 |
EP2720147A2 (en) | 2014-04-16 |
JP2014078239A (ja) | 2014-05-01 |
CN103729228A (zh) | 2014-04-16 |
EP2720147A3 (en) | 2014-10-29 |
CN103729228B (zh) | 2018-05-11 |
KR20140046897A (ko) | 2014-04-21 |
EP2720147B1 (en) | 2020-06-17 |
US9298430B2 (en) | 2016-03-29 |
KR101926464B1 (ko) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6291209B2 (ja) | マルチコアプロセッサで行われるプログラムのコンパイル方法、マルチコアプロセッサのタスクマッピング方法及びタスクスケジューリング方法 | |
Arabnejad et al. | List scheduling algorithm for heterogeneous systems by an optimistic cost table | |
US20200133735A1 (en) | Method, device, and computer program product for assigning tasks to dedicated processing resources | |
JP4339907B2 (ja) | マルチプロセッサ向け最適コード生成方法及びコンパイル装置 | |
US8543993B2 (en) | Compiler, compile method, and processor core control method and processor | |
EP2281236B1 (en) | Just-ahead-of-time compilation | |
US8819653B2 (en) | Automated improvement of executable applications based on evaluating independent execution heuristics | |
KR101645035B1 (ko) | 병렬 프로그래밍 조절 장치 및 방법 | |
US20060038811A1 (en) | Fast multi-pass partitioning via priority based scheduling | |
US20040268335A1 (en) | Modulo scheduling of multiple instruction chains | |
US10007495B2 (en) | Code generation method for scheduling processors using hook function and exception handling function | |
KR20110105615A (ko) | 단말 적합성 애플리케이션 최적화장치 및 방법 | |
JP6464982B2 (ja) | 並列化方法、並列化ツール、車載装置 | |
Hong et al. | GPU code optimization using abstract kernel emulation and sensitivity analysis | |
KR102062208B1 (ko) | 멀티스레드 프로그램 코드의 변환 장치 및 방법 | |
US9043582B2 (en) | Enhanced instruction scheduling during compilation of high level source code for improved executable code | |
JP5504879B2 (ja) | マルチスレッド処理方法及びマルチスレッド処理装置 | |
JP2014164664A (ja) | タスク並列処理方法、装置及びプログラム | |
Lumpp et al. | Task mapping and scheduling for OpenVX applications on heterogeneous multi/many-core architectures | |
WO2022166480A1 (zh) | 任务调度方法、装置及系统 | |
Dietze et al. | The search‐based scheduling algorithm HP* for parallel tasks on heterogeneous platforms | |
Zaki et al. | Partial expansion graphs: Exposing parallelism and dynamic scheduling opportunities for DSP applications | |
Meyer et al. | Implementation techniques for SPMD kernels on CPUs | |
De Landtsheer et al. | Optimal mapping of task-based computation models over heterogeneous hardware using placer | |
Garibay-Martínez et al. | A framework for the development of parallel and distributed real-time embedded systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161005 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170830 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170912 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171212 |
|
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: 20180116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180209 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6291209 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 |