JPWO2008072334A1 - コンパイル方法及びコンパイラ - Google Patents
コンパイル方法及びコンパイラ Download PDFInfo
- Publication number
- JPWO2008072334A1 JPWO2008072334A1 JP2008549167A JP2008549167A JPWO2008072334A1 JP WO2008072334 A1 JPWO2008072334 A1 JP WO2008072334A1 JP 2008549167 A JP2008549167 A JP 2008549167A JP 2008549167 A JP2008549167 A JP 2008549167A JP WO2008072334 A1 JPWO2008072334 A1 JP WO2008072334A1
- Authority
- JP
- Japan
- Prior art keywords
- processing block
- processing
- scheduler
- stage
- statements
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 104
- 238000012545 processing Methods 0.000 claims abstract description 305
- 238000000605 extraction Methods 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 66
- 230000006870 function Effects 0.000 claims description 22
- 238000006467 substitution reaction Methods 0.000 claims description 19
- 230000007246 mechanism Effects 0.000 claims description 16
- 230000001419 dependent effect Effects 0.000 claims description 8
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 20
- 238000007796 conventional method Methods 0.000 description 11
- 238000005457 optimization Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000013519 translation Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000009291 secondary effect Effects 0.000 description 1
- 238000012916 structural analysis 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
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/458—Synchronisation, e.g. post-wait, barriers, locks
-
- 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
- G06F8/456—Parallelism detection
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
32 フロントエンド
33−1,33−2 中間言語
34 ミドルパス
35 バックエンド
36 実行コード
81 タスク又はスレッド
83 動的スケジューラ
84 コンテキストスイッチ・プロセス管理機能
86 OS
88 タイマ機能
Use(Sx) (式1)
Def(Sx) (式2)
(式1)及び(式2)は、集合化されたステートメントグループSGにも適用され、y番目のステートメントグループSGyに対して同様に(式3)及び(式4)を定義する。
Use(SGx) (式3)
Def(SGx) (式4)
又、定義及び参照される変数が存在しない場合の表現として、空集合をΦ用いる。
Def(Sx) = Φ、Use(Sx) ≠ Φ (式5)
ステートメントSxがサブルーチンコールに因る無条件ジャンプ文の場合、(式6)が成立する。
Def(Sx) = Use(Sy) = Φ (式6)
ステートメント間の依存関係は、互いに定義及び参照する変数集合に対して同一の要素が含まれるか否かで定義される。m番目及びn番目のステートメントに関して、(式1)及び(式2)から導かれる変数の集合体において、m<nの関係で(式7)が成立する場合、正方向依存が存在する。
Def(Sm) ∩ Use(Sn) ≠ Φ (式7)
ここで、SmとSnが正方向依存δであることを表現する式として(式8)を定義する。
Sm δ Sn (式8)
m>nの関係で(式7)が成立する場合、逆方向依存が存在する。SmとSnが逆方向依存δiであることを表現する式として、(式9)を定義する。
Sm δi Sn (式9)
又、(式10)が成立する場合、出力依存が存在する。
Def(Sm) = Def(Sn) (式10)
SmとSnが出力依存δoであることを表現する式として、(式11)を定義する。
Sm δo Sn (式11)
(式11)が成立するSm, Sn について、m<k<nの関係を満たす任意のkに対して(式12)が成り立つ場合、Smで定義される変数はどこでも参照されることなく、Snにおいて上書きされることから、Smを削除することが可能である。
(Def(Sm) = Def(Sn)) ∩ Use(Sk) = Φ (式12)
(式8)、(式9)及び(式11)を一般的には依存方程式と呼び、全てのステートメントに対して(式1)及び(式2)を導くことで、各ステートメントの依存関係を表現した依存グラフを作成することができる。
SGx = (Sa, Sd), SGy = (Sc, Se) (式13)
つまり、
Def(SGx) = Def(Sa) ∪ Def(Sd), Use(SGx) = Use(Sa) ∪ Use(Sd)
Def(SGy) = Def(Sc) ∪ Def(Se), Use(SGy) = Use(Sc) ∪ Use(Se)
且つ、
(Def(Sa)或いはDef(Sd) ∩ (Use(Se) 或いは Use(Se)) = Φ
(Use(Sa)或いはUse(Sd) ∩ (Def(Se) 或いは Def(Se)) = Φ
(Def(Sa)或いはDef(Sd) ∩ (Def(Se) 或いは Def(Se)) = Φ
が成立するため、(式14)が得られる。
SGx ¬δ SGy (式14)
図9は、ソフトウェアのフロー構成例を示す図である。図9中、ps1〜ps4は、夫々図6に示す処理区分ps1〜ps4の処理に対応する処理ブロックを示す。中間言語に展開されたステートメントの列は、図9で示すように、複数代入処理の処理ブロックps1の間に条件分岐の処理ブロックps3或いは無条件ジャンプの処理ブロックps4が挟まった形態を取る。条件分岐の処理ブロックps3及び無条件ジャンプの処理ブロックps4は、データ依存ではなく制御構造を示すものであり、処理フローが一旦途切れるとみなされるため、図5に示すミドルパス34の処理単位を、条件分岐の処理ブロックps3及び無条件ジャンプの処理ブロックps4のステートメントで区切られた演算代入処理の処理ブロックps1、即ち、代入ステートメントの集合と考える。
Claims (20)
- コンピュータにより、予め決められたタイミングで途中結果を出力すると共に時系列的に処理されるソフトウェアのコンパイルを行うコンパイル方法であって、
該コンピュータにより、該ソフトウェアのソースコードに含まれる処理シーケンスから並列性及び条件分岐に関する処理ブロックを抽出する抽出ステップと、
該コンピュータにより、抽出された処理ブロックのリストラクチャリングを行い実行コードを自動的に生成する生成ステップとを含むことを特徴とする、コンパイル方法。 - 該抽出ステップは、演算及び該コンピュータのメモリ及びレジスタに演算結果の代入を行う演算代入処理の処理ブロックに対して、ステートメント間の依存方程式に基づく並べ替えを行い中間言語レベルで整理されたステートメント列を求める第一段階と、該整理されたステートメント列に対してステートメントのグループの結合及び再定義を行う第二段階を有することを特徴とする、請求項1記載のコンパイル方法。
- 該生成ステップは、該第二段階でグループ化を行ったスケジューラ化処理ブロック及びスレッド化処理ブロックに制御ステートメントを付加し、スレッドとスケジューラとして最終的な中間言語を生成する第三段階を有し、
該スケジューラ化処理ブロックは、後続の処理ブロックが条件分岐処理であると処理ブロックと結合されて再定義されたものであり、
該スレッド化処理ブロックは、呼び出し元の処理ブロックが条件分岐処理であると条件分岐の従属節が再定義されたものであることを特徴とする、請求項2記載のコンパイル方法。 - 該第一段階は、全ての制御ステートメントで区切られた演算代入ステートメントのグループに対して行われ、定義及び参照される変数の抽出、各ステートメントの依存関係を表現した依存グラフの定義、不要なステートメントの削除、及び該依存グラフに基づくステートメントのソートからなることを特徴とする、請求項2又は3記載のコンパイル方法。
- 該第二段階は、ネスト又は入れ子構造にある最も内側の階層の処理ブロックから順に該ステートメントのグループの結合及び再定義を行うことを特徴とする、請求項2〜4のいずれか1項記載のコンパイル方法。
- 該第二段階は、該第一段階のソートの結果に対して行われ、処理ブロック化を対象とするプログラムのコードに対して、呼び出し元の処理ブロックが条件分岐処理であると条件分岐の従属節をスレッド化処理ブロックとして再定義し、該条件分岐処理ではなく、且つ、後続の処理ブロックが条件分岐処理に続くものであるとこれらの処理ブロックを結合してスケジューラ化処理ブロックとして再定義することを特徴とする、請求項5記載のコンパイル方法。
- 該第三段階は、該第二段階でグループ化を行ったスケジューラ化処理ブロック及びスレッド化処理ブロックに対して行われ、
処理の対象となる処理ブロックがスレッド化処理ブロックの場合はスレッド化処理ブロックへステートメントを追加する処理を行い、
処理対象となる処理ブロックがスケジュール化処理ブロックの場合はスケジューラ化処理ブロックへステートメントを追加する処理を行うことを特徴とする、請求項3〜6のいずれか1項記載のコンパイル方法。 - 該スケジューラ化処理ブロックはスレッドのコンテキストスイッチ機能を有し、該スレッド化処理ブロックはスケジューラの要求時にのみ動作する仕組みを有することを特徴とする、請求項3記載のコンパイル方法。
- 該第三段階は、最外郭ループに囲まれたスケジューラ化処理ブロックについては、該コンピュータのOSのタイマ機能を用いて周期的にシグナルを送信して自動起動させるタイマハンドラの仕組みを組み込むことを特徴とする、請求項3記載のコンパイル方法。
- 該第三段階は、演算処理が不要な期間において該コンピュータを解放する機構を有する制御ステートメントを付加することを特徴とする、請求項3記載のコンパイル方法。
- コンピュータにより、予め決められたタイミングで途中結果を出力すると共に時系列的に処理されるソフトウェアのコンパイルを行うコンパイラであって、
該コンピュータにより、該ソフトウェアのソースコードを第1の中間言語に翻訳して記憶部に保存するフロントエンドと、
該コンピュータにより、該記憶部に保存された該第1の中間言語に基づいて該ソースコードに含まれる処理シーケンスから並列性及び条件分岐に関する処理ブロックを抽出し、抽出された処理ブロックのリストラクチャリングを行い第2の中間言語を生成して記憶部に保存するミドルパスと、
該コンピュータにより、該記憶部に保存された該第2の中間言語に基づいて実行コードを自動的に生成するバックエンドとを備えたことを特徴とする、コンパイラ。 - 該ミドルパスは、演算及び該記憶部に演算結果の代入を行う演算代入処理の処理ブロックに対して、ステートメント間の依存方程式に基づく並べ替えを行い該第1の中間言語レベルで整理されたステートメント列を求める第一段階と、該整理されたステートメント列に対してステートメントのグループの結合及び再定義を行う第二段階を有することを特徴とする、請求項11記載のコンパイラ。
- 該ミドルパスは、該第二段階でグループ化を行ったスケジューラ化処理ブロック及びスレッド化処理ブロックに制御ステートメントを付加し、スレッドとスケジューラとして該第2の中間言語を生成する第三段階を有し、
該スケジューラ化処理ブロックは、後続の処理ブロックが条件分岐処理であると処理ブロックと結合されて再定義されたものであり、
該スレッド化処理ブロックは、呼び出し元の処理ブロックが条件分岐処理であると条件分岐の従属節が再定義されたものであることを特徴とする、請求項12記載のコンパイラ。 - 該第一段階は、全ての制御ステートメントで区切られた演算代入ステートメントのグループに対して行われ、定義及び参照される変数の抽出、各ステートメントの依存関係を表現した依存グラフの定義、不要なステートメントの削除、及び該依存グラフに基づくステートメントのソートからなることを特徴とする、請求項12又は13記載のコンパイラ。
- 該第二段階は、ネスト又は入れ子構造にある最も内側の階層の処理ブロックから順に該ステートメントのグループの結合及び再定義を行うことを特徴とする、請求項12〜14のいずれか1項記載のコンパイラ。
- 該第二段階は、該第一段階のソートの結果に対して行われ、処理ブロック化を対象とするプログラムのコードに対して、呼び出し元の処理ブロックが条件分岐処理であると条件分岐の従属節をスレッド化処理ブロックとして再定義し、該条件分岐処理ではなく、且つ、後続の処理ブロックが条件分岐処理に続くものであるとこれらの処理ブロックを結合してスケジューラ化処理ブロックとして再定義することを特徴とする、請求項15記載のコンパイラ。
- 該第三段階は、該第二段階でグループ化を行ったスケジューラ化処理ブロック及びスレッド化処理ブロックに対して行われ、
処理の対象となる処理ブロックがスレッド化処理ブロックの場合はスレッド化処理ブロックへステートメントを追加する処理を行い、
処理対象となる処理ブロックがスケジュール化処理ブロックの場合はスケジューラ化処理ブロックへステートメントを追加する処理を行うことを特徴とする、請求項13〜16のいずれか1項記載のコンパイラ。 - 該スケジューラ化処理ブロックはスレッドのコンテキストスイッチ機能を有し、該スレッド化処理ブロックはスケジューラの要求時にのみ動作する仕組みを有することを特徴とする、請求項13記載のコンパイラ。
- 該第三段階は、最外郭ループに囲まれたスケジューラ化処理ブロックについては、該コンピュータのOSのタイマ機能を用いて周期的にシグナルを送信して自動起動させるタイマハンドラの仕組みを組み込むことを特徴とする、請求項13記載のコンパイラ。
- 該第三段階は、演算処理が不要な期間において該コンピュータを解放する機構を有する制御ステートメントを付加することを特徴とする、請求項13記載のコンパイラ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2006/324966 WO2008072334A1 (ja) | 2006-12-14 | 2006-12-14 | コンパイル方法及びコンパイラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2008072334A1 true JPWO2008072334A1 (ja) | 2010-03-25 |
Family
ID=39511366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008549167A Pending JPWO2008072334A1 (ja) | 2006-12-14 | 2006-12-14 | コンパイル方法及びコンパイラ |
Country Status (6)
Country | Link |
---|---|
US (1) | US20090254892A1 (ja) |
EP (1) | EP2093667A4 (ja) |
JP (1) | JPWO2008072334A1 (ja) |
KR (1) | KR101085330B1 (ja) |
CN (1) | CN101563673A (ja) |
WO (1) | WO2008072334A1 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101522444B1 (ko) * | 2008-10-24 | 2015-05-21 | 인터내셔널 비지네스 머신즈 코포레이션 | 소스 코드 처리 방법, 시스템, 및 프로그램 |
US8875111B2 (en) * | 2009-04-23 | 2014-10-28 | Microsoft Corporation | Intermediate language representation and modification |
US8689191B2 (en) * | 2010-03-05 | 2014-04-01 | International Business Machines Corporation | Correct refactoring of concurrent software |
US8863128B2 (en) * | 2010-09-30 | 2014-10-14 | Autodesk, Inc | System and method for optimizing the evaluation of task dependency graphs |
US9430204B2 (en) | 2010-11-19 | 2016-08-30 | Microsoft Technology Licensing, Llc | Read-only communication operator |
US9507568B2 (en) | 2010-12-09 | 2016-11-29 | Microsoft Technology Licensing, Llc | Nested communication operator |
US9395957B2 (en) * | 2010-12-22 | 2016-07-19 | Microsoft Technology Licensing, Llc | Agile communication operator |
US8464232B2 (en) * | 2010-12-27 | 2013-06-11 | Aleksandr F. Urakhchin | Compiler compiler system with syntax-controlled runtime and binary application programming interfaces |
US9239732B2 (en) * | 2011-02-16 | 2016-01-19 | Microsoft Technology Licensing Llc | Unrolling aggregation operations in asynchronous programming code having multiple levels in hierarchy |
CN102193812B (zh) * | 2011-06-03 | 2014-03-26 | 深圳市茁壮网络股份有限公司 | 一种代码编译方法、主机及系统 |
KR101277145B1 (ko) * | 2011-12-07 | 2013-06-20 | 한국과학기술연구원 | 공통 표현을 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체 |
US9286040B2 (en) * | 2012-01-18 | 2016-03-15 | Mobilesmith, Inc. | Software builder |
US9251554B2 (en) | 2012-12-26 | 2016-02-02 | Analog Devices, Inc. | Block-based signal processing |
KR101449657B1 (ko) * | 2013-03-05 | 2014-10-13 | 한국과학기술연구원 | 연산자의 값의 범위를 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체 |
US9298433B2 (en) * | 2013-05-02 | 2016-03-29 | Facebook, Inc. | Optimizing intermediate representation of script code for fast path execution |
JP6287018B2 (ja) * | 2013-10-04 | 2018-03-07 | 富士通株式会社 | 可視化方法、表示方法、情報処理装置、可視化プログラム及び表示プログラム |
CN103699377B (zh) * | 2013-12-04 | 2017-02-01 | 国家电网公司 | 一种对程序代码进行重构操作组合的方法 |
US8978010B1 (en) * | 2013-12-18 | 2015-03-10 | Sap Ag | Pruning compilation dependency graphs |
US20150193358A1 (en) * | 2014-01-06 | 2015-07-09 | Nvidia Corporation | Prioritized Memory Reads |
CN104391733B (zh) * | 2014-12-10 | 2017-11-24 | 华中科技大学 | 一种依据依赖关系动态编译软件包的方法 |
US9830134B2 (en) * | 2015-06-15 | 2017-11-28 | Qualcomm Incorporated | Generating object code from intermediate code that includes hierarchical sub-routine information |
JP6500626B2 (ja) | 2015-06-16 | 2019-04-17 | 富士通株式会社 | 計算機、コンパイラプログラム、リンクプログラムおよびコンパイル方法 |
JP2017228029A (ja) | 2016-06-21 | 2017-12-28 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
US10558441B2 (en) * | 2018-03-12 | 2020-02-11 | International Business Machines Corporation | Compiler for restructuring code using iteration-point algebraic difference analysis |
US11416228B2 (en) | 2018-09-13 | 2022-08-16 | The University Of Chicago | System and method of optimizing instructions for quantum computers |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0736680A (ja) | 1993-07-23 | 1995-02-07 | Omron Corp | 並列化プログラム開発支援装置 |
JPH1027108A (ja) * | 1996-07-12 | 1998-01-27 | Nec Corp | スレッド実行方法 |
JP2001282549A (ja) * | 2000-03-30 | 2001-10-12 | Nec Corp | プログラム変換装置及び方法並びに記録媒体 |
JP2006154971A (ja) * | 2004-11-25 | 2006-06-15 | Matsushita Electric Ind Co Ltd | プログラム変換装置、プログラム変換実行装置およびプログラム変換方法、プログラム変換実行方法。 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5255385A (en) * | 1990-02-26 | 1993-10-19 | Hitachi, Ltd. | Method of testing program, and compiler and program testing tool for the method |
JPH06110688A (ja) | 1991-06-13 | 1994-04-22 | Internatl Business Mach Corp <Ibm> | 複数の順序外れ命令を並行処理するためのコンピュータ・システム |
US5347654A (en) * | 1992-02-03 | 1994-09-13 | Thinking Machines Corporation | System and method for optimizing and generating computer-based code in a parallel processing environment |
US5592679A (en) * | 1994-11-14 | 1997-01-07 | Sun Microsystems, Inc. | Apparatus and method for distributed control in a processor architecture |
JPH10228382A (ja) * | 1997-02-14 | 1998-08-25 | Nec Corp | コンパイル方式 |
JPH11259437A (ja) * | 1998-03-12 | 1999-09-24 | Hitachi Ltd | 不要バリア命令の削減方式 |
JP2000207223A (ja) * | 1999-01-12 | 2000-07-28 | Matsushita Electric Ind Co Ltd | 並列処理向けのプログラム処理方法および装置、並びに並列処理向けのプログラム処理を実行するプログラムを記録した記録媒体および並列処理向けの命令列を記録した記録媒体 |
JP2002007364A (ja) * | 2000-06-22 | 2002-01-11 | Fujitsu Ltd | 並列計算機システムのジョブスケジューリングを行うスケジューリング装置 |
JP3664473B2 (ja) * | 2000-10-04 | 2005-06-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムの最適化方法及びこれを用いたコンパイラ |
US7089557B2 (en) * | 2001-04-10 | 2006-08-08 | Rusty Shawn Lee | Data processing system and method for high-efficiency multitasking |
JP3772713B2 (ja) | 2001-09-12 | 2006-05-10 | 日本電気株式会社 | プライオリティ動的制御方式、プライオリティ動的制御方法およびプライオリティ動的制御用プログラム |
US8010956B1 (en) * | 2005-01-28 | 2011-08-30 | Oracle America, Inc. | Control transfer table structuring |
US7613595B2 (en) * | 2005-03-01 | 2009-11-03 | The Math Works, Inc. | Execution and real-time implementation of a temporary overrun scheduler |
US7966610B2 (en) * | 2005-11-17 | 2011-06-21 | The Mathworks, Inc. | Application of optimization techniques to intermediate representations for code generation |
JP4923240B2 (ja) * | 2006-01-17 | 2012-04-25 | 国立大学法人東京工業大学 | プログラム処理装置、並列処理プログラム、プログラム処理方法、並列処理コンパイラ、並列処理コンパイラを格納した記録媒体およびマルチプロセッサシステム |
US8146066B2 (en) * | 2006-06-20 | 2012-03-27 | Google Inc. | Systems and methods for caching compute kernels for an application running on a parallel-processing computer system |
JP2009048252A (ja) * | 2007-08-14 | 2009-03-05 | Oki Electric Ind Co Ltd | プログラム変換装置及びコンパイラプログラム |
-
2006
- 2006-12-14 JP JP2008549167A patent/JPWO2008072334A1/ja active Pending
- 2006-12-14 EP EP06834720A patent/EP2093667A4/en not_active Withdrawn
- 2006-12-14 WO PCT/JP2006/324966 patent/WO2008072334A1/ja active Application Filing
- 2006-12-14 CN CNA2006800566376A patent/CN101563673A/zh active Pending
- 2006-12-14 KR KR1020097011902A patent/KR101085330B1/ko not_active IP Right Cessation
-
2009
- 2009-06-10 US US12/457,441 patent/US20090254892A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0736680A (ja) | 1993-07-23 | 1995-02-07 | Omron Corp | 並列化プログラム開発支援装置 |
JPH1027108A (ja) * | 1996-07-12 | 1998-01-27 | Nec Corp | スレッド実行方法 |
JP2001282549A (ja) * | 2000-03-30 | 2001-10-12 | Nec Corp | プログラム変換装置及び方法並びに記録媒体 |
JP2006154971A (ja) * | 2004-11-25 | 2006-06-15 | Matsushita Electric Ind Co Ltd | プログラム変換装置、プログラム変換実行装置およびプログラム変換方法、プログラム変換実行方法。 |
Non-Patent Citations (13)
Title |
---|
CSND199800157005; リック・ナロー著,野口修男訳: '「特集 米国コンパイラ事情 Part3 「最適化チェック」より速く、より小さなコードを求めて」' C MAGAZINE 1990年9月号(Vol.2, No.9), 19900901, 第39〜49頁, ソフトバンク株式会社 * |
CSND199800199009; 尾形三喜雄(外2名): '「MIPSコンパイラの最適化」' インターフェース 1991年1月号(Vol.17, No.1), 19910101, 第253〜270頁, CQ出版株式会社 * |
CSND199900633004; 松岡恭正外2名: 'コンパイラにおける最適化の技法' インターフェース 第15巻、第3号, 19890301, p.196-210, CQ出版株式会社 * |
CSNG200100414012; 飯塚大介(外3名): '「Cコンパイラにおけるループ最適化の検討」' 情報処理学会研究報告 Vol.99, No.66(99-HPC-77), 19990804, 第65〜70頁, 社団法人情報処理学会 * |
CSNG200202412019; 小野徹行外2名: 'マクロデータフロープリプロセッサの実装' 情報処理学会研究報告 第2001巻、第22号, 20010309, p.109-114, 社団法人情報処理学会 * |
CSNG200300001025; 笠原博徳(外2名): '「共有メモリマルチプロセッサシステム上での粗粒度タスク並列処理」' 情報処理学会論文誌 第42巻,第4号, 20010415, 第910〜920頁, 社団法人情報処理学会 * |
JPN6012027172; 笠原博徳(外2名): '「共有メモリマルチプロセッサシステム上での粗粒度タスク並列処理」' 情報処理学会論文誌 第42巻,第4号, 20010415, 第910〜920頁, 社団法人情報処理学会 * |
JPN6012058204; 飯塚大介(外3名): '「Cコンパイラにおけるループ最適化の検討」' 情報処理学会研究報告 Vol.99, No.66(99-HPC-77), 19990804, 第65〜70頁, 社団法人情報処理学会 |
JPN6012058206; リック・ナロー著,野口修男訳: '「特集 米国コンパイラ事情 Part3 「最適化チェック」より速く、より小さなコードを求めて」' C MAGAZINE 1990年9月号(Vol.2, No.9), 19900901, 第39〜49頁, ソフトバンク株式会社 |
JPN6012058207; 尾形三喜雄(外2名): '「MIPSコンパイラの最適化」' インターフェース 1991年1月号(Vol.17, No.1), 19910101, 第253〜270頁, CQ出版株式会社 |
JPN6012058209; ジョン・L・ヘネシー(外1名)著、成田光彰訳: 「コンピュータの構成と設計 第2版[上]-ハードウェアとソフトウェアのインタフェース-」 第2版第1刷, 19990517, 第149〜156頁, 日経BP社 |
JPN6013045977; 小野徹行外2名: 'マクロデータフロープリプロセッサの実装' 情報処理学会研究報告 第2001巻、第22号, 20010309, p.109-114, 社団法人情報処理学会 |
JPN6013045978; 松岡恭正外2名: 'コンパイラにおける最適化の技法' インターフェース 第15巻、第3号, 19890301, p.196-210, CQ出版株式会社 |
Also Published As
Publication number | Publication date |
---|---|
WO2008072334A1 (ja) | 2008-06-19 |
CN101563673A (zh) | 2009-10-21 |
KR20090089382A (ko) | 2009-08-21 |
EP2093667A4 (en) | 2012-03-28 |
EP2093667A1 (en) | 2009-08-26 |
KR101085330B1 (ko) | 2011-11-23 |
US20090254892A1 (en) | 2009-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPWO2008072334A1 (ja) | コンパイル方法及びコンパイラ | |
US20110119660A1 (en) | Program conversion apparatus and program conversion method | |
JP5036523B2 (ja) | プログラム並列化装置 | |
US20060130012A1 (en) | Program conversion device, program conversion and execution device, program conversion method, and program conversion and execution method | |
US20100070958A1 (en) | Program parallelizing method and program parallelizing apparatus | |
JP4965995B2 (ja) | プログラム処理方法、処理プログラム及び情報処理装置 | |
KR102402584B1 (ko) | 사용자 어플리케이션의 특성에 따른 연산 디바이스 동적 제어 기법 | |
Packirisamy et al. | Exploring speculative parallelism in SPEC2006 | |
JP2010009495A (ja) | 情報処理装置、プログラム処理方法及びコンピュータプログラム | |
US11669366B2 (en) | Reduction of a number of stages of a graph streaming processor | |
JP6427053B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
JP6488739B2 (ja) | 並列化コンパイル方法、及び、並列化コンパイラ | |
JPWO2007105309A1 (ja) | 並列化プログラム生成プログラム、並列化プログラム生成装置、及び並列化プログラム生成方法 | |
Benkner et al. | High-level support for pipeline parallelism on many-core architectures | |
JP2008276547A (ja) | プログラム処理方法及び情報処理装置 | |
US20150089149A1 (en) | Arithmetic processing device and control method for arithmetic processing device | |
JP2005129001A (ja) | プログラム実行装置、マイクロプロセッサ及びプログラム実行方法 | |
JP6488738B2 (ja) | 並列化コンパイル方法、及び、並列化コンパイラ | |
KR20080066402A (ko) | 공통중간코드를 이용한 병렬 임베디드 소프트웨어의 설계방법 | |
Wang et al. | Code transformations for enhancing the performance of speculatively parallel threads | |
So et al. | Procedure cloning and integration for converting parallelism from coarse to fine grain | |
Agathos et al. | Compiler-assisted, adaptive runtime system for the support of OpenMP in embedded multicores | |
Limberg et al. | A real-time programming model for heterogeneous MPSoCs | |
Cedersjö et al. | Finding fast action selectors for dataflow actors | |
Badia et al. | Impact of the memory hierarchy on shared memory architectures in multicore programming models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120130 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120529 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120829 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20120905 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20121109 |