JP4635082B2 - マルチプロセッサシステム及びグルーピング方法 - Google Patents
マルチプロセッサシステム及びグルーピング方法 Download PDFInfo
- Publication number
- JP4635082B2 JP4635082B2 JP2008255295A JP2008255295A JP4635082B2 JP 4635082 B2 JP4635082 B2 JP 4635082B2 JP 2008255295 A JP2008255295 A JP 2008255295A JP 2008255295 A JP2008255295 A JP 2008255295A JP 4635082 B2 JP4635082 B2 JP 4635082B2
- Authority
- JP
- Japan
- Prior art keywords
- basic module
- data
- parallel
- grouping
- program
- 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.)
- Expired - Fee Related
Links
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/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Description
前記プログラムを実行する多数のプロセッサと、を具備し、前記プログラムは基本モジュールとデータとからなり、前記多数のプロセッサに割り当てられる処理単位をグルーピングすることを具備し、該グルーピングすることは、プログラム実行時に前記並列記述に基づきデータと基本モジュールとの並列関係を示すデータフローグラフを表示することと、ユーザ入力により前記データフローグラフ上でノードが表す基本モジュールをグルーピングする時の基本モジュールグループをグルーピングを実行する時の優先順位とともに指定することと、前記データフローグラフを表示するためのグラフデータ構成生成情報を前記基本モジュールグループの指定に応じて変更することと、前記変更されたグラフデータ構成生成情報に基づいて前記基本モジュールグループを前記並列記述に反映させることと、を具備し、前記データフローグラフはデータの複数のエントリと、基本モジュールの複数のノードと、データの複数のエントリと基本モジュールの複数のノードとを繋ぐエッジとを含むものである。
local b[100];
local c[100];
local宣言されたメモ化用のデータ配列a,b,c(それぞれエントリ個数は100とする)を生成する(領域を確保し初期化する)。
b[i]:=g(in1[i]);
c[i]:=f(a[i],b[i]);
ステップ#3:for文を実行し、変数jを0に初期化する。jが100以下の場合は、ループ本体を実行する。
ステップ#4:ループ本体で、out[0]を計算するために関数kを呼び出そうとするが、引数c[0]が未定義なので、関数kのノードを作成し、データ依存として関数kのノードとc[0]のエントリをつなぐエッジを生成する。
b[i]:=g(in1[i]);conn(g,0);
c[i]:=f(a[i],b[i]);conn(f,1);
図8はタスク並列方向にグルーピングする例を示している。タスクとは関数と対応し、図8は関数hと関数gをランタイムの介在なく纏めて処理を行いたい指示を示す。タスク並列のグルーピングの場合は、並列実行制御記述上では、グルーピングしたタスクがconn(x){…}というスコープで括られる。関数定義の順序も自動的に入れ替えられる場合がある。
a[i]:=h(in0[i]);
b[i]:=g(in1[i]);
}
図9はタスク並列方向のグルーピングに階層構造をもたせる例を示している。関数fとgとのグルーピング全体と関数fとをさらにグルーピングする2階層のグルーピングの例を示す。関数fとgとのグルーピングが下位の階層であり、下位の階層の優先順位は自動的に高く設定される。階層構造を持たせ、下位ほど優先順位を高くすることにより、試行錯誤により最適なグルーピングを決定する際に、容易に最適解を求めることが出来る。
conn(1){
a[i]:=h(in0[i]);
b[i]:=g(in1[i])
}
c[i]:=f(a[i],b[i]);
}
なお、グルーピングには、図7に示すデータ並列方向のグルーピングと、図8、図9に示すタスク並列方向のグルーピング以外に、その両者を組み合わせた第3のグルーピングもある。
Claims (9)
- マルチプロセッサシステム用のプログラムであって、基本モジュールと、基本モジュールの並列処理の関係を記述した並列記述とからなるプログラムにおける、基本モジュールとデータとからなる処理単位をプロセッサに割当てる処理単位のグルーピング方法において、
プログラム実行時に前記並列記述に基づきデータと基本モジュールとの並列関係を示すデータフローグラフを表示することと、
ユーザ入力により前記データフローグラフ上でノードが表す基本モジュールをグルーピングする時の基本モジュールグループをグルーピングを実行する時の優先順位とともに指定することと、
前記データフローグラフを表示するためのグラフデータ構成生成情報を前記基本モジュールグループの指定に応じて変更することと、
前記変更されたグラフデータ構成生成情報に基づいて前記基本モジュールグループを前記並列記述に反映させることと、
を具備し、
前記データフローグラフはデータの複数のエントリと、基本モジュールの複数のノードと、データの複数のエントリと基本モジュールの複数のノードとをそれぞれを繋ぐエッジとを含むグルーピング方法。 - 前記並列記述をテキスト表示することと、
前記テキスト表示された並列記述をユーザ入力により編集することにより基本モジュールグループを指定することと、をさらに具備する請求項1記載のグルーピング方法。 - 前記基本モジュールグループを指定することは、前記データフローグラフ上でノードを指定することを具備する請求項1記載のグルーピング方法。
- 前記基本モジュールグループを指定することは、同一のデータ配列内の異なるエントリに関する複数の基本モジュール、あるいは異なるデータ配列に関する複数の基本モジュールをグループとして指定することを具備する請求項1記載のグルーピング方法。
- 前記基本モジュールグループの前記並列記述への反映によりデータフローグラフにサイクルが出来る場合は、警告を発生し、基本モジュールグループの指定を無効化することをさらに具備する請求項2記載のグルーピング方法。
- 前記基本モジュールグループの前記並列記述への反映によりデータフローグラフのクリティカルパスが悪化する場合は、警告を発生することをさらに具備する請求項2記載のグルーピング方法。
- 前記データフローグラフを表示することは、ノード間で転送されるデータの量に応じてエッジの太さを変えることを具備する請求項1記載のグルーピング方法。
- 基本モジュールと、基本モジュールの並列処理の関係を記述した並列記述とからなるプログラムを実行して並列計算を行なうマルチプロセッサシステムであって、
前記プログラムを格納する格納システムと、
前記プログラムを実行する多数のプロセッサと、を具備し、
前記プログラムは基本モジュールとデータとからなり、前記多数のプロセッサに割り当てられる処理単位をグルーピングすることを具備し、該グルーピングすることは、
プログラム実行時に前記並列記述に基づきデータと基本モジュールとの並列関係を示すデータフローグラフを表示することと、
ユーザ入力により前記データフローグラフ上でノードが表す基本モジュールをグルーピングする時の基本モジュールグループをグルーピングを実行する時の優先順位とともに指定することと、
前記データフローグラフを表示するためのグラフデータ構成生成情報を前記基本モジュールグループの指定に応じて変更することと、
前記変更されたグラフデータ構成生成情報に基づいて前記基本モジュールグループを前記並列記述に反映させることと、
を具備し、前記データフローグラフはデータの複数のエントリと、基本モジュールの複数のノードと、データの複数のエントリと基本モジュールの複数のノードとを繋ぐエッジとを含むマルチプロセッサシステム。 - 前記プログラムは、前記並列記述をテキスト表示することと、前記テキスト表示された並列記述をユーザ入力により編集することにより基本モジュールグループを指定することと、をさらに具備する請求項8記載のマルチプロセッサシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008255295A JP4635082B2 (ja) | 2008-09-30 | 2008-09-30 | マルチプロセッサシステム及びグルーピング方法 |
US12/571,064 US8074211B2 (en) | 2008-09-30 | 2009-09-30 | Computer program, multiprocessor system, and grouping method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008255295A JP4635082B2 (ja) | 2008-09-30 | 2008-09-30 | マルチプロセッサシステム及びグルーピング方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010086319A JP2010086319A (ja) | 2010-04-15 |
JP4635082B2 true JP4635082B2 (ja) | 2011-02-16 |
Family
ID=42059033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008255295A Expired - Fee Related JP4635082B2 (ja) | 2008-09-30 | 2008-09-30 | マルチプロセッサシステム及びグルーピング方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8074211B2 (ja) |
JP (1) | JP4635082B2 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8561041B1 (en) * | 2009-06-22 | 2013-10-15 | The Mathworks, Inc. | Parallel execution of function calls in a graphical model |
US8555265B2 (en) * | 2010-05-04 | 2013-10-08 | Google Inc. | Parallel processing of data |
WO2012011145A1 (ja) * | 2010-07-20 | 2012-01-26 | 株式会社 日立製作所 | ソフトウェア保守支援装置及びそれにより検証した電子制御装置 |
US8707275B2 (en) * | 2010-09-14 | 2014-04-22 | Microsoft Corporation | Simulation environment for distributed programs |
US9489183B2 (en) | 2010-10-12 | 2016-11-08 | Microsoft Technology Licensing, Llc | Tile communication operator |
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 |
US9003383B2 (en) * | 2011-09-15 | 2015-04-07 | You Know Solutions, LLC | Analytic engine to parallelize serial code |
US8856766B2 (en) | 2012-05-11 | 2014-10-07 | International Business Machines Corporation | Generating layouts for graphs of data flow applications |
US9734040B2 (en) | 2013-05-21 | 2017-08-15 | Microsoft Technology Licensing, Llc | Animated highlights in a graph representing an application |
US8990777B2 (en) | 2013-05-21 | 2015-03-24 | Concurix Corporation | Interactive graph for navigating and monitoring execution of application code |
US20140189650A1 (en) * | 2013-05-21 | 2014-07-03 | Concurix Corporation | Setting Breakpoints Using an Interactive Graph Representing an Application |
US9280841B2 (en) | 2013-07-24 | 2016-03-08 | Microsoft Technology Licensing, Llc | Event chain visualization of performance data |
US9292415B2 (en) | 2013-09-04 | 2016-03-22 | Microsoft Technology Licensing, Llc | Module specific tracing in a shared module environment |
US10346292B2 (en) | 2013-11-13 | 2019-07-09 | Microsoft Technology Licensing, Llc | Software component recommendation based on multiple trace runs |
JP6743568B2 (ja) * | 2016-08-09 | 2020-08-19 | 富士通株式会社 | 制御装置、情報処理システム、プログラム及び情報処理方法 |
US10025566B1 (en) * | 2016-10-07 | 2018-07-17 | The Mathworks, Inc. | Scheduling technique to transform dataflow graph into efficient schedule |
WO2018221175A1 (ja) * | 2017-05-30 | 2018-12-06 | 日本電気株式会社 | 半順序手順計画装置、半順序手順計画方法および半順序手順計画プログラム |
US11308109B2 (en) * | 2018-10-12 | 2022-04-19 | International Business Machines Corporation | Transfer between different combinations of source and destination nodes |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05113885A (ja) * | 1991-10-23 | 1993-05-07 | Nitto Seiko Co Ltd | 並列処理プログラム開発装置 |
JPH05257709A (ja) * | 1992-03-16 | 1993-10-08 | Hitachi Ltd | 並列化判別方法およびそれを用いた並列化支援方法 |
JPH09171503A (ja) * | 1995-07-14 | 1997-06-30 | Lucent Technol Inc | 並列処理方法および並列処理装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06332689A (ja) | 1993-05-21 | 1994-12-02 | Hitachi Ltd | プログラムの表示方法およびプログラムの編集受付け方法 |
JP3921367B2 (ja) * | 2001-09-26 | 2007-05-30 | 日本電気株式会社 | データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム |
US20030131345A1 (en) * | 2002-01-09 | 2003-07-10 | Chris Wilkerson | Employing value prediction with the compiler |
US6964029B2 (en) * | 2002-10-31 | 2005-11-08 | Src Computers, Inc. | System and method for partitioning control-dataflow graph representations |
US7392514B2 (en) * | 2003-06-26 | 2008-06-24 | Microsoft Corporation | Data flow chasing |
US7685587B2 (en) * | 2003-11-19 | 2010-03-23 | Ecole Polytechnique Federal De Lausanne | Automated instruction-set extension |
US7797691B2 (en) * | 2004-01-09 | 2010-09-14 | Imec | System and method for automatic parallelization of sequential code |
JP2005258920A (ja) | 2004-03-12 | 2005-09-22 | Fujitsu Ltd | マルチスレッド実行方法、マルチスレッド実行プログラム、およびマルチスレッド実行装置 |
JP4275013B2 (ja) * | 2004-06-21 | 2009-06-10 | 三洋電機株式会社 | データフローグラフ処理装置、処理装置、リコンフィギュラブル回路。 |
US7941794B2 (en) * | 2004-08-30 | 2011-05-10 | Sanyo Electric Co., Ltd. | Data flow graph processing method and processing apparatus provided with reconfigurable circuit |
JP2006338507A (ja) | 2005-06-03 | 2006-12-14 | Fujifilm Holdings Corp | 処理装置及び処理方法 |
US7873953B1 (en) * | 2006-01-20 | 2011-01-18 | Altera Corporation | High-level language code sequence optimization for implementing programmable chip designs |
-
2008
- 2008-09-30 JP JP2008255295A patent/JP4635082B2/ja not_active Expired - Fee Related
-
2009
- 2009-09-30 US US12/571,064 patent/US8074211B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05113885A (ja) * | 1991-10-23 | 1993-05-07 | Nitto Seiko Co Ltd | 並列処理プログラム開発装置 |
JPH05257709A (ja) * | 1992-03-16 | 1993-10-08 | Hitachi Ltd | 並列化判別方法およびそれを用いた並列化支援方法 |
JPH09171503A (ja) * | 1995-07-14 | 1997-06-30 | Lucent Technol Inc | 並列処理方法および並列処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2010086319A (ja) | 2010-04-15 |
US8074211B2 (en) | 2011-12-06 |
US20100083185A1 (en) | 2010-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4635082B2 (ja) | マルチプロセッサシステム及びグルーピング方法 | |
Ma et al. | Rammer: Enabling holistic deep learning compiler optimizations with {rTasks} | |
US9898292B2 (en) | Hardware instruction generation unit for specialized processors | |
Owaida et al. | Synthesis of platform architectures from OpenCL programs | |
JP4621786B2 (ja) | 情報処理装置、並列処理最適化方法およびプログラム | |
CN103858099A (zh) | 用于在异构计算机上编译和运行高级程序的技术 | |
US20210342184A1 (en) | Method, electronic device, and computer program product for processing computing job | |
Filgueras et al. | Ompss@ zynq all-programmable soc ecosystem | |
JP4381459B1 (ja) | 情報処理装置、粒度調整方法およびプログラム | |
JP2010009495A (ja) | 情報処理装置、プログラム処理方法及びコンピュータプログラム | |
Xiang et al. | Heteroflow: An accelerator programming model with decoupled data placement for software-defined fpgas | |
Sabne et al. | Scaling large-data computations on multi-GPU accelerators | |
Neelima et al. | Recent trends in software and hardware for GPGPU computing: a comprehensive survey | |
Vinas et al. | Improving OpenCL programmability with the heterogeneous programming library | |
US9665354B2 (en) | Apparatus and method for translating multithread program code | |
Owaida et al. | Massively parallel programming models used as hardware description languages: The OpenCL case | |
Diehl et al. | Integration of CUDA Processing within the C++ Library for Parallelism and Concurrency (HPX) | |
Varbanescu et al. | Towards an effective unified programming model for many-cores | |
Parashar et al. | Hardware abstractions for targeting EDDO Architectures with the Polyhedral Model | |
Rafique et al. | Generating efficient parallel code from the rvc-cal dataflow language | |
JP5360506B2 (ja) | マルチコアにおけるプログラミングシステム、その方法及びそのプログラム | |
Tarakji et al. | The development of a scheduling system GPUSched for graphics processing units | |
Cartwright et al. | Automating the design of mlut mpsopc fpgas in the cloud | |
US20120137300A1 (en) | Information Processor and Information Processing Method | |
Ivutin et al. | The Automatic Algorithms' Adaptation Method for Embedded Multi-Core Configurations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100119 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100323 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100427 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100628 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100727 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100927 |
|
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: 20101026 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101119 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131126 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |