JP4621786B2 - 情報処理装置、並列処理最適化方法およびプログラム - Google Patents
情報処理装置、並列処理最適化方法およびプログラム Download PDFInfo
- Publication number
- JP4621786B2 JP4621786B2 JP2009110090A JP2009110090A JP4621786B2 JP 4621786 B2 JP4621786 B2 JP 4621786B2 JP 2009110090 A JP2009110090 A JP 2009110090A JP 2009110090 A JP2009110090 A JP 2009110090A JP 4621786 B2 JP4621786 B2 JP 4621786B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- tid
- executed
- basic module
- basic
- 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 OR CALCULATING; 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 OR CALCULATING; 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/5033—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 data affinity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Description
前記スケジューラは、前記実行ユニットによって実行済みの基本モジュールを実行したスレッドの識別子を管理する手段と、前記実行ユニットによって実行可能な基本モジュールを実行可能集合として管理する手段と、前記実行可能集合中の各基本モジュールについて、前記基本モジュールがデータを参照する前記実行済みの基本モジュールの計算結果のデータサイズおよび当該実行済みの基本モジュールを実行したスレッドの識別子に基づいて、実行済みの基本モジュールを実行したスレッドから複数のスレッドから選ばれる一つのスレッドtidにデータを転送した場合の転送コストをそれぞれ計算するコスト計算手段と、前記転送コストが最小の基本モジュールを前記スレッドtidに割り当てる基本モジュールとして選択する選択手段とを具備し、
前記転送コストは、
ここで、Pred(c)は前記実行可能集合中の基本モジュールから選ばれる一つの基本モジュールcがデータを参照する基本モジュールnの集合を示し、size(n)は前記基本モジュールnによる計算結果のデータサイズ、trCost(n→tid,tid)は前記基本モジュールnを実行したスレッドn→tidからスレッドtidへのデータ転送コストである、
ことを特徴とする。
まず、ノード(基本モジュール)の処理が終了したらノードを実行していた転送コスト計算部223は、ノードを実行していたスレッドのスレッドid(=スレッドtid)を取得する(ステップS11)。そして、転送コスト計算部223は、グラフデータ構造202からReady集合に含まれるノードを検出し、検出された各ノードに対してCost(tid, c)を計算する。転送コスト計算部223は、計算結果をノード割り当て部224に通知する。ノード選択部225は、計算結果に基づいてCost(tid, c)が最小になるノードcをスレッドtidに割り当てるべきノードとして選択する(ステップS12)。ノード割り当て部224は、選択されたノードcをスレッドtidに割り当てる。
スレッド毎にReady集合を管理する場合のReady集合からスレッドに割り当てるノード(基本モジュール)を選択する処理の手順を説明する。
先ず、図13のフローチャートを参照して、新たにReadyとなったノードをReady集合に登録する処理を説明する。先ず、転送コスト計算部223は、グラフデータ構造202から新たにReady集合に登録されたノードcの情報を取得する(ステップS21)。次ぎに、転送コスト計算部223は、実行中の全てのスレッドidに対して、Cost(tid, c)を計算する。転送コスト演算/選択部223は、Cost(tid, c)が最小となるスレッドtidを選択する(ステップS22)。なお、Cost(tid, c)を計算する場合、すべてのスレッドidについて最小値を計算する代わりに、ノードcが参照しているノードを計算したスレッドidのみについて計算することで代用することができる。次に、Ready集合管理部222は、ステップS22において選択されたスレッドtidのReady集合にノードcを登録する(ステップS23)。
Claims (7)
- それぞれ識別子が与えられた複数のスレッドを実行する複数の実行ユニットと、
他のモジュールと非同期に実行可能な複数の基本モジュールに分割され、当該複数の基本モジュールの時系列的な実行規則が定義されるプログラムを、前記複数の実行ユニットによって並列実行するために、前記実行規則に基づき、前記複数の実行ユニットが実行するスレッドに対する前記複数の基本モジュールの動的な割り当てを制御するスケジューラと、
を具備し、
前記スケジューラは、
前記実行ユニットによって実行済みの基本モジュールを実行したスレッドの識別子を管理する手段と、
前記実行ユニットによって実行可能な基本モジュールを実行可能集合として管理する手段と、
前記実行可能集合中の各基本モジュールについて、前記基本モジュールがデータを参照する前記実行済みの基本モジュールの計算結果のデータサイズおよび当該実行済みの基本モジュールを実行したスレッドの識別子に基づいて、実行済みの基本モジュールを実行したスレッドから複数のスレッドから選ばれる一つのスレッドtidにデータを転送した場合の転送コストをそれぞれ計算するコスト計算手段と、
前記転送コストが最小の基本モジュールを前記スレッドtidに割り当てる基本モジュールとして選択する選択手段と
を具備し、
前記転送コストは、
によって演算される、
ここで、Pred(c)は前記実行可能集合中の基本モジュールから選ばれる一つの基本モジュールcがデータを参照する基本モジュールnの集合を示し、size(n)は前記基本モジュールnによる計算結果のデータサイズ、trCost(n→tid,tid)は前記基本モジュールnを実行したスレッドn→tidからスレッドtidへのデータ転送コストである、
ことを特徴とする情報処理装置。 - 前記スレッドn→tidと前記スレッドtidとが同じスレッドである場合、前記trCost(n→tid,tid)は0であることを特徴とする請求項1に記載の情報処理装置。
- 前記スレッドn→tidと前記スレッドtidとが異なるスレッドである場合、前記trCost(n→tid,tid)は0より大きい値であることを特徴とする請求項1に記載の情報処理装置。
- 前記複数の実行ユニットは、1つのCPUに内蔵されるCPUコアであることを特徴とする請求項1記載の情報処理装置。
- 前記複数の実行ユニットは、それぞれが個別に構成された複数のCPUであることを特徴とする請求項1記載の情報処理装置。
- 他のモジュールと非同期に実行可能な複数の基本モジュールに分割され、当該複数の基本モジュールの時系列的な実行規則が定義されるプログラムから複数の基本モジュールをそれぞれ識別子が与えられた複数のスレッドに動的に割り当て、当該複数のスレッドを複数の実行ユニットによって並列実行する情報処理装置によって実行される並列処理最適化方法であって、
前記情報処理装置が、前記実行ユニットによって実行済みの基本モジュールを実行したスレッドの識別子を管理し、
前記情報処理装置が、前記実行ユニットによって実行可能な基本モジュールを実行可能集合として管理し、
前記情報処理装置が、前記実行可能集合中の各基本モジュールについて、前記基本モジュールがデータを参照する前記実行済みの基本モジュールの計算結果のデータサイズおよび当該実行済みの基本モジュールを実行したスレッドの識別子に基づいて、実行済みの基本モジュールを実行したスレッドから複数のスレッドから選ばれる一つのスレッドtidにデータを転送した場合の転送コストをそれぞれ計算し、
前記情報処理装置が、前記転送コストが最小の基本モジュールを前記スレッドtidに割り当て、
前記転送コストは、
によって演算される、
ここで、nPred(c)は前記実行可能集合中の基本モジュールから選ばれる一つの基本モジュールcがデータを参照する基本モジュールnの集合を示し、size(n)は前記基本モジュールnによる計算結果のデータサイズ、trCost(n→tid,tid)は前記基本モジュールnを実行したスレッドn→tidからスレッドtidへのデータ転送コストである、
ことを特徴とする並列処理最適化方法。 - 他のモジュールと非同期に実行可能な複数の基本モジュールに分割され、当該複数の基本モジュールの時系列的な実行規則が定義されるプログラムから複数の基本モジュールをそれぞれ識別子が与えられた複数のスレッドに動的に割り当て、当該複数のスレッドを複数の実行ユニットによって並列実行する情報処理装置情報処理装置を、
前記実行ユニットによって実行済みの基本モジュールを実行したスレッドの識別子を管理する手段と、
前記実行ユニットによって実行可能な基本モジュールを実行可能集合として管理する手段と、
前記実行可能集合中の各基本モジュールについて、前記基本モジュールがデータを参照する前記実行済みの基本モジュールの計算結果のデータサイズおよび当該実行済みの基本モジュールを実行したスレッドの識別子に基づいて、実行済みの基本モジュールを実行したスレッドから複数のスレッドから選ばれる一つのスレッドtidにデータを転送した場合の転送コストをそれぞれ計算するコスト計算手段と、
前記転送コストが最小の基本モジュールを前記スレッドtidに割り当てる基本モジュールとして選択する選択手段と
として機能させ、
前記転送コストは、
によって演算される、
ここで、nPred(c)は前記実行可能集合中の基本モジュールから選ばれる一つの基本モジュールcがデータを参照する基本モジュールnの集合を示し、size(n)は前記基本モジュールnによる計算結果のデータサイズ、trCost(n→tid,tid)は前記基本モジュールnを実行したスレッドn→tidからスレッドtidへのデータ転送コストである、
プログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009110090A JP4621786B2 (ja) | 2009-04-28 | 2009-04-28 | 情報処理装置、並列処理最適化方法およびプログラム |
| US12/768,538 US8255911B2 (en) | 2009-04-28 | 2010-04-27 | System and method for selecting and assigning a basic module with a minimum transfer cost to thread |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009110090A JP4621786B2 (ja) | 2009-04-28 | 2009-04-28 | 情報処理装置、並列処理最適化方法およびプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2010257428A JP2010257428A (ja) | 2010-11-11 |
| JP4621786B2 true JP4621786B2 (ja) | 2011-01-26 |
Family
ID=42993266
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009110090A Expired - Fee Related JP4621786B2 (ja) | 2009-04-28 | 2009-04-28 | 情報処理装置、並列処理最適化方法およびプログラム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US8255911B2 (ja) |
| JP (1) | JP4621786B2 (ja) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8566801B2 (en) * | 2009-05-22 | 2013-10-22 | International Business Machines Corporation | Concurrent static single assignment for general barrier synchronized parallel programs |
| KR101710910B1 (ko) * | 2010-09-27 | 2017-03-13 | 삼성전자 주식회사 | 프로세싱 유닛의 동적 자원 할당을 위한 방법 및 장치 |
| KR101177059B1 (ko) | 2011-01-17 | 2012-08-28 | 전자부품연구원 | 병렬 제어 모듈을 동적으로 할당하는 방법 |
| US9996394B2 (en) * | 2012-03-01 | 2018-06-12 | Microsoft Technology Licensing, Llc | Scheduling accelerator tasks on accelerators using graphs |
| US9740529B1 (en) * | 2013-12-05 | 2017-08-22 | The Mathworks, Inc. | High throughput synchronous resource-constrained scheduling for model-based design |
| US9389848B2 (en) * | 2014-06-28 | 2016-07-12 | Vmware, Inc. | Scheduling a plan of operations in a datacenter |
| US9223767B1 (en) | 2014-06-28 | 2015-12-29 | Vmware, Inc. | Unified graphical user interface for displaying a plan of operations in a datacenter |
| US9442714B2 (en) | 2014-06-28 | 2016-09-13 | Vmware, Inc. | Unified visualization of a plan of operations in a datacenter |
| US9529980B2 (en) | 2014-06-28 | 2016-12-27 | Vmware, Inc. | Deduplication of end user license agreements |
| US9389847B2 (en) | 2014-06-28 | 2016-07-12 | Vmware, Inc. | Selection of relevant software bundles |
| US9495217B2 (en) * | 2014-07-29 | 2016-11-15 | International Business Machines Corporation | Empirical determination of adapter affinity in high performance computing (HPC) environment |
| US9658855B2 (en) | 2014-10-10 | 2017-05-23 | Fujitsu Limited | Compile method and compiler apparatus |
| EP3208712B1 (en) * | 2016-02-22 | 2020-02-19 | Karlsruher Institut für Technologie | Computer system and method for parallel program code optimization and deployment |
| CN113259482B (zh) * | 2021-06-21 | 2021-12-07 | 北京卡普拉科技有限公司 | 多对多通信模式的优化方法、装置、存储介质及电子设备 |
| CN116737346B (zh) * | 2023-08-14 | 2023-10-24 | 南京翼辉信息技术有限公司 | 一种大小核处理器调度配置系统及其实现方法 |
| US20250173189A1 (en) * | 2023-11-29 | 2025-05-29 | Informatica Llc | Method, system, and computer readable media for efficient cloud resource management |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3047998B2 (ja) * | 1991-02-13 | 2000-06-05 | 株式会社日立製作所 | 並列計算機におけるプロセッサ割り当て方法、及び装置 |
| JP3576437B2 (ja) * | 1999-11-30 | 2004-10-13 | 松下電器産業株式会社 | マルチプロセッサタスク制御方法及びタスク制御装置 |
| JP2005258920A (ja) | 2004-03-12 | 2005-09-22 | Fujitsu Ltd | マルチスレッド実行方法、マルチスレッド実行プログラム、およびマルチスレッド実行装置 |
| JP4190455B2 (ja) * | 2004-05-11 | 2008-12-03 | 富士通株式会社 | 負荷分散装置及びプログラム |
| JP4082706B2 (ja) * | 2005-04-12 | 2008-04-30 | 学校法人早稲田大学 | マルチプロセッサシステム及びマルチグレイン並列化コンパイラ |
| JP4936517B2 (ja) | 2006-06-06 | 2012-05-23 | 学校法人早稲田大学 | ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ |
| JP4784827B2 (ja) * | 2006-06-06 | 2011-10-05 | 学校法人早稲田大学 | ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ |
| JP2008276547A (ja) * | 2007-04-27 | 2008-11-13 | Toshiba Corp | プログラム処理方法及び情報処理装置 |
| JP4908363B2 (ja) * | 2007-09-25 | 2012-04-04 | 株式会社東芝 | 情報処理装置、並列処理最適化方法およびプログラム |
-
2009
- 2009-04-28 JP JP2009110090A patent/JP4621786B2/ja not_active Expired - Fee Related
-
2010
- 2010-04-27 US US12/768,538 patent/US8255911B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US20100275213A1 (en) | 2010-10-28 |
| JP2010257428A (ja) | 2010-11-11 |
| US8255911B2 (en) | 2012-08-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4621786B2 (ja) | 情報処理装置、並列処理最適化方法およびプログラム | |
| US8074211B2 (en) | Computer program, multiprocessor system, and grouping method | |
| US9996394B2 (en) | Scheduling accelerator tasks on accelerators using graphs | |
| EP4160405A1 (en) | Task execution method and storage device | |
| US9430353B2 (en) | Analysis and visualization of concurrent thread execution on processor cores | |
| US20230091261A1 (en) | Orchestration and scheduling of services | |
| JP4381459B1 (ja) | 情報処理装置、粒度調整方法およびプログラム | |
| JP2011070256A (ja) | デバッガおよびプログラム | |
| JP4491026B2 (ja) | 情報処理装置、プログラム処理方法及びコンピュータプログラム | |
| JP2010079622A (ja) | マルチコアプロセッサシステム、および、そのタスク制御方法 | |
| US20210319298A1 (en) | Compute-based subgraph partitioning of deep learning models for framework integration | |
| CN102713846A (zh) | 处理器可执行的代码的生成方法、存储区域管理方法以及保存代码生成程序的存储介质 | |
| JP4908363B2 (ja) | 情報処理装置、並列処理最適化方法およびプログラム | |
| Cheng et al. | {PipeThreader}:{Software-Defined} Pipelining for Efficient {DNN} Execution | |
| US11226798B2 (en) | Information processing device and information processing method | |
| JP2025542316A (ja) | ワークスケジューリングの動的制御 | |
| Bian et al. | Tokencake: A KV-Cache-centric Serving Framework for LLM-based Multi-Agent Applications | |
| US20120137300A1 (en) | Information Processor and Information Processing Method | |
| US20080271041A1 (en) | Program processing method and information processing apparatus | |
| US9588817B2 (en) | Scheduling method and scheduling system for assigning application to processor | |
| WO2018198745A1 (ja) | 計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体 | |
| CN120821580B (zh) | 应用于gpu的任务处理方法、gpu、设备及存储介质 | |
| Yang et al. | Demonstration on unblocking checkpoint for fault-tolerance in pregel-like systems | |
| Meng et al. | Parallel scheduling of data-intensive tasks | |
| Ranawaka et al. | BATCH-DNN: Adaptive and Dynamic Batching for Multi-DNN Accelerators |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100913 |
|
| 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: 20101005 |
|
| 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: 20101101 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131105 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131105 Year of fee payment: 3 |
|
| LAPS | Cancellation because of no payment of annual fees |