JP2019179418A - スケジューリング方法、スケジューリング装置 - Google Patents

スケジューリング方法、スケジューリング装置 Download PDF

Info

Publication number
JP2019179418A
JP2019179418A JP2018068435A JP2018068435A JP2019179418A JP 2019179418 A JP2019179418 A JP 2019179418A JP 2018068435 A JP2018068435 A JP 2018068435A JP 2018068435 A JP2018068435 A JP 2018068435A JP 2019179418 A JP2019179418 A JP 2019179418A
Authority
JP
Japan
Prior art keywords
execution
priority
position information
scheduling
processing node
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
Application number
JP2018068435A
Other languages
English (en)
Inventor
雅史 九里
Masafumi Kuri
雅史 九里
英樹 杉本
Hideki Sugimoto
英樹 杉本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
NSI Texe Inc
Original Assignee
Denso Corp
NSI Texe Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Denso Corp, NSI Texe Inc filed Critical Denso Corp
Priority to JP2018068435A priority Critical patent/JP2019179418A/ja
Priority to PCT/JP2019/009633 priority patent/WO2019188181A1/ja
Publication of JP2019179418A publication Critical patent/JP2019179418A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt

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)

Abstract

【課題】グラフ構造のプログラムにおいて、実行時の条件に依存する実行時間の揺れを吸収し、最悪実行時間を短縮する。【解決手段】予め定められている推定実行時間に基づいて個々の処理ノード中の実行済割合を、相対的な位置情報として算出する相対位置情報算出部(141)と、位置情報に基づいて個々の処理ノードの実行優先順位を変更する優先順位変更部(142)と、を設ける。【選択図】図5

Description

本開示は、複数の処理ノードで構成されるグラフ構造のプログラムを実行する際のスケジューリング方法及びスケジューリング装置に関する。
マルチコアプロセッサにおいて、スレッドの実行順序を変更するスケジューリング方法が提案されている。下記特許文献1には、マルチコアプロセッサ内の少なくとも1つのプロセッサ要素が、実行時に再構成可能である再構成可能論理を含み、再構成可能論理の構成ごとに、実行可能な状態の実行可能トランザクションをリストし、再構成可能なプロセッサ要素の個々の構成に割り振られる実行可能トランザクションの構成待ち行列を設けるステップと、現在選択されている構成インスタンスと関連付けられた構成待ち行列の内容を、実行のために再構成可能なプロセッサ要素に出力するステップと、事前定義された閾値に達したときに、現在選択されている構成インスタンスを切り換えるステップと、を備えるものが開示されている。
特開2013−239199号公報
特許文献1では、グラフ構造のプログラムにおいて、実行時の条件に依存する実行時間の揺れにより、グラフ全体の最悪実行時間が長くなるという事象に対して有効な解決手段とはならない。
本開示は、グラフ構造のプログラムにおいて、実行時の条件に依存する実行時間の揺れを吸収し、最悪実行時間を短縮することを目的とする。
本開示は、複数の処理ノードで構成されるグラフ構造のプログラムを実行する際のスケジューリング方法であって、予め定められている推定実行時間に対する個々の処理ノード中の実行済割合を、相対的な位置情報として算出する相対位置情報算出ステップと、位置情報に基づいて個々の処理ノードの実行優先順位を変更する優先順位変更ステップと、を備える。
本開示は、複数の処理ノードで構成されるグラフ構造のプログラムを実行する際のスケジューリング装置であって、予め定められている推定実行時間に対する個々の処理ノード中の実行済割合を、相対的な位置情報として算出する相対位置情報算出部(141)と、位置情報に基づいて個々の処理ノードの実行優先順位を変更する優先順位変更部(142)と、を備える。
推定実行時間に対する個々の処理ノード中の実行済割合を相対的な位置情報として算出し、その位置情報に基づいて個々の処理ノードの実行優先順位を変更するので、推定実行時間に対して処理の進みが遅くなったり早くなったりといった実行時間の揺れを吸収することができる。
尚、「課題を解決するための手段」及び「特許請求の範囲」に記載した括弧内の符号は、後述する「発明を実施するための形態」との対応関係を示すものであって、「課題を解決するための手段」及び「特許請求の範囲」が、後述する「発明を実施するための形態」に限定されることを示すものではない。
本開示によれば、グラフ構造のプログラムにおいて、実行時の条件に依存する実行時間の揺れを吸収し、最悪実行時間を短縮することができる。
図1は、本実施形態の前提となる並列処理について説明するための図である。 図2は、図1に示される並列処理を実行するためのシステム構成例を示す図である。 図3は、図2に用いられるDFPの構成例を示す図である。 図4は、コンパイラの機能的な構成例を説明するための図である。 図5は、スレッドスケジューラの機能的な構成例を説明するための図である。 図6は、位置情報算出の一例を説明するための図である。 図7は、優先順位付けの一例を説明するための図である。
以下、添付図面を参照しながら本実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
図1(A)は、グラフ構造のプログラムコードを示しており、図1(B)は、スレッドの状態を示しており、図1(C)は、並列処理の状況を示している。
図1(A)に示されるように、本実施形態が処理対象とするプログラムは、データと処理とが分割されているグラフ構造を有している。このグラフ構造は、プログラムのタスク並列性、グラフ並列性を保持している。
図1(A)に示されるプログラムコードに対して、コンパイラによる自動ベクトル化とグラフ構造の抽出を行うと、図1(B)に示されるような大量のスレッドを生成することができる。
図1(B)に示される多量のスレッドに対して、ハードウェアによる動的レジスタ配置とスレッド・スケジューリングにより、図1(C)に示されるような並列実行を行うことができる。実行中にレジスタ資源を動的配置することで、異なる命令ストリームに対しても複数のスレッドを並列実行することができる。
続いて図2を参照しながら、動的レジスタ配置及びスレッド・スケジューリングを行うアクセラレータとしてのDFP(Data Flow Processor)10を含むシステム構成例である、データ処理システム2を説明する。
データ処理システム2は、DFP10と、イベントハンドラ20と、ホストCPU21と、ROM22と、RAM23と、外部インターフェイス24と、システムバス25と、を備えている。ホストCPU21は、データ処理を主として行う演算装置である。ホストCPU21は、OSをサポートしている。イベントハンドラ20は、割り込み処理を生成する部分である。
ROM22は、読込専用のメモリである。RAM23は、読み書き用のメモリである。外部インターフェイス24は、データ処理システム2外と情報授受を行うためのインターフェイスである。システムバス25は、DFP10と、ホストCPU21と、ROM22と、RAM23と、外部インターフェイス24との間で情報の送受信を行うためのものである。
DFP10は、ホストCPU21の重い演算負荷に対処するために設けられている個別のマスタとして位置づけられている。DFP10は、イベントハンドラ20が生成した割り込みをサポートするように構成されている。
続いて図3を参照しながら、DFP10について説明する。図3に示されるように、DFP10は、コマンドユニット12と、スレッドスケジューラ14と、実行コア16と、メモリサブシステム18と、を備えている。
コマンドユニット12は、コンフィグ・インターフェイスとの間で情報通信可能なように構成されている。コマンドユニット12は、コマンドバッファとしても機能している。
スレッドスケジューラ14は、図1(B)に例示されるような多量のスレッドの処理をスケジューリングする部分である。スレッドスケジューラ14は、スレッドを跨いだスケジューリングを行うことが可能である。
実行コア16は、4つのプロセッシングエレメントである、PE#0と、PE#1と、PE#2と、PE#3と、を有している。実行コア16は、独立してスケジューリング可能な多数のパイプラインを有している。
メモリサブシステム18は、アービタ181と、L1キャッシュ18aと、L2キャッシュ18bと、を有している。メモリサブシステム18は、システム・バス・インターフェイス及びROMインターフェイスとの間で情報通信可能なように構成されている。
続いて、図4を参照しながら、コンパイラ50について説明する。コンパイラ50は、機能的な構成要素として、実行時間推定部501と、優先順位付与部502と、を備える。
実行時間推定部501は、グラフ構造を構成する個々の処理ノードの実行時間を推定する部分である。優先順位付与部502は、実行時間推定部501が推定した実行時間に基づいて、個々の処理ノードに対する初期の優先順位を付与する部分である。
続いて、図5を参照しながら、スレッドスケジューラ14の機能的な構成要素について説明する。スレッドスケジューラ14は、機能的な構成要素として、相対位置情報算出部141と、優先順位変更部142と、を備える。
相対位置情報算出部141は、予め定められている推定実行時間に対する個々の処理ノード中の実行済割合を、相対的な位置情報として算出する相対位置情報算出ステップを実行する部分である。図6に示されるように、相対的な位置情報は各ノードに対して算出される。図6に示される例の場合、Node0は、位置情報が2であるので、実行済割合は20%である。Node1は、位置情報が9であるので、実行済割合は90%である。Node2は、位置情報が5であるので、実行済割合は50%である。Node3は、位置情報が4であるので、実行済割合は40%である。
優先順位変更部142は、位置情報に基づいて個々の処理ノードの実行優先順位を変更する優先順位変更ステップを実行する部分である。より具体的には、実行済割合の少ない処理ノードの実行優先順位を高くする。
図6の例示では、実行済割合の少ない順に処理ノードを並べると、Node0(位置情報:2、実行済割合:20%)、Node3(位置情報:5、実行済割合:50%)、Node2(位置情報:5、実行済割合:50%)、Node1(位置情報:9、実行済割合:90%)となる。
ここで、Node3は、Node1の実行結果及びNode2の実行結果を用いて実行される処理ノードである。従って、Node3の実行優先順位よりも、Node1及びNode2の実行優先順位を高める必要がある。これらを考慮し、優先順位変更部142は、優先順位の高い方から、Node0、Node2、Node1、Node3となるように実行優先順位を変更する(図7参照)。
上記したように本実施形態は、複数の処理ノードで構成されるグラフ構造のプログラムを実行する際のスケジューリング方法であって、予め定められている推定実行時間に対する個々の処理ノード中の実行済割合を、相対的な位置情報として算出する相対位置情報算出ステップと、位置情報に基づいて個々の処理ノードの実行優先順位を変更する優先順位変更ステップと、を備える。
装置として捉えれば、複数の処理ノードで構成されるグラフ構造のプログラムを実行する際のスケジューリング装置としてのスレッドスケジューラ14であって、予め定められている推定実行時間に対する個々の処理ノード中の実行済割合を、相対的な位置情報として算出する相対位置情報算出部141と、位置情報に基づいて個々の処理ノードの実行優先順位を変更する優先順位変更部142と、を備える。
推定実行時間に対する個々の処理ノード中の実行済割合を相対的な位置情報として算出し、その位置情報に基づいて個々の処理ノードの実行優先順位を変更するので、推定実行時間に対して処理の進みが遅くなったり早くなったりといった実行時間の揺れを吸収することができる。
スケジューリング方法では、優先順位変更ステップにおいて、実行済割合の少ない処理ノードの実行優先順位を高くすることができる。同様に、スケジューリング装置としてのスレッドスケジューラ14において、優先順位変更部142は、実行済割合の少ない処理ノードの実行優先順位を高くする。実行済割合の少ない処理ノードの実行優先順位を高めることで、最悪実行時間をより短縮することができる。
スケジューリング方法では、優先順位変更ステップにおいて、処理ノード相互の依存関係を考慮して処理ノードの実行優先順位を変更する。同様に、スケジューリング装置としてのスレッドスケジューラ14において、優先順位変更部142は、処理ノード相互の依存関係を考慮して処理ノードの実行優先順位を変更する。依存関係を考慮することで、他の処理ノードの出力待ちを低減することができ、最悪実行時間をより短縮することができる。
以上、具体例を参照しつつ本実施形態について説明した。しかし、本開示はこれらの具体例に限定されるものではない。これら具体例に、当業者が適宜設計変更を加えたものも、本開示の特徴を備えている限り、本開示の範囲に包含される。前述した各具体例が備える各要素およびその配置、条件、形状などは、例示したものに限定されるわけではなく適宜変更することができる。前述した各具体例が備える各要素は、技術的な矛盾が生じない限り、適宜組み合わせを変えることができる。
141:相対位置情報算出部
142:優先順位変更部

Claims (6)

  1. 複数の処理ノードで構成されるグラフ構造のプログラムを実行する際のスケジューリング方法であって、
    予め定められている推定実行時間に対する個々の処理ノード中の実行済割合を、相対的な位置情報として算出する相対位置情報算出ステップと、
    前記位置情報に基づいて個々の処理ノードの実行優先順位を変更する優先順位変更ステップと、を備えるスケジューリング方法。
  2. 請求項1に記載のスケジューリング方法であって、
    前記優先順位変更ステップにおいて、実行済割合の少ない処理ノードの実行優先順位を高くする、スケジューリング方法。
  3. 請求項1に記載のスケジューリング方法であって、
    前記優先順位変更ステップにおいて、処理ノード相互の依存関係を考慮して処理ノードの実行優先順位を変更する、スケジューリング方法。
  4. 複数の処理ノードで構成されるグラフ構造のプログラムを実行する際のスケジューリング装置であって、
    予め定められている推定実行時間に対する個々の処理ノード中の実行済割合を、相対的な位置情報として算出する相対位置情報算出部(141)と、
    前記位置情報に基づいて個々の処理ノードの実行優先順位を変更する優先順位変更部(142)と、を備えるスケジューリング装置。
  5. 請求項4に記載のスケジューリング装置であって、
    前記優先順位変更部は、実行済割合の少ない処理ノードの実行優先順位を高くする、スケジューリング装置。
  6. 請求項4に記載のスケジューリング装置であって、
    前記優先順位変更部は、処理ノード相互の依存関係を考慮して処理ノードの実行優先順位を変更する、スケジューリング装置。
JP2018068435A 2018-03-30 2018-03-30 スケジューリング方法、スケジューリング装置 Pending JP2019179418A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018068435A JP2019179418A (ja) 2018-03-30 2018-03-30 スケジューリング方法、スケジューリング装置
PCT/JP2019/009633 WO2019188181A1 (ja) 2018-03-30 2019-03-11 スケジューリング方法、スケジューリング装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018068435A JP2019179418A (ja) 2018-03-30 2018-03-30 スケジューリング方法、スケジューリング装置

Publications (1)

Publication Number Publication Date
JP2019179418A true JP2019179418A (ja) 2019-10-17

Family

ID=68061579

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018068435A Pending JP2019179418A (ja) 2018-03-30 2018-03-30 スケジューリング方法、スケジューリング装置

Country Status (2)

Country Link
JP (1) JP2019179418A (ja)
WO (1) WO2019188181A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293768A (ja) * 2005-04-12 2006-10-26 Univ Waseda マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
JP2007287085A (ja) * 2006-04-20 2007-11-01 Fuji Xerox Co Ltd 画像処理装置及びプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009069921A (ja) * 2007-09-11 2009-04-02 Hitachi Ltd マルチプロセッサシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293768A (ja) * 2005-04-12 2006-10-26 Univ Waseda マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
JP2007287085A (ja) * 2006-04-20 2007-11-01 Fuji Xerox Co Ltd 画像処理装置及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杉木 章義: "Hadoop/Sparkにおける第2階層スケジューラ導入によるタスク進捗度平準化の検討", 研究報告システムソフトウェアとオペレーティング・システム(OS), vol. 2017−OS−141巻,第17号, JPN6021051999, 19 July 2017 (2017-07-19), JP, pages 1 - 7, ISSN: 0004994617 *

Also Published As

Publication number Publication date
WO2019188181A1 (ja) 2019-10-03

Similar Documents

Publication Publication Date Title
CN109997112B (zh) 数据处理
JP5770721B2 (ja) 情報処理システム
KR101834195B1 (ko) 다중코어 시스템 및 로드 밸런싱 방법
JP6296678B2 (ja) ソフトリアルタイムオペレーティングシステムの実時間性を確保する方法及び装置
JP2009528610A (ja) タスクの実行フェーズに基づいてキャッシュパーティションを動的にリサイズする方法及び装置
US9471387B2 (en) Scheduling in job execution
JP2008152470A (ja) データ処理システム及び半導体集積回路
KR20210084620A (ko) 프로세서에서의 여유시간 인식, 동적 우선순위 변경
JP5945617B2 (ja) マルチコアプロセッサの制御プログラム、電子機器及び制御方法
WO2019188181A1 (ja) スケジューリング方法、スケジューリング装置
JP7064367B2 (ja) デッドロック回避方法、デッドロック回避装置
WO2019188177A1 (ja) 情報処理装置
JP4017005B2 (ja) 演算装置
US9632834B2 (en) Assigning priorities to computational work streams by mapping desired execution priorities to device priorities
WO2019188182A1 (ja) プリフェッチコントローラ
JP7039365B2 (ja) デッドロック回避方法、デッドロック回避装置
JP2015041199A (ja) 情報処理装置
JP5734941B2 (ja) マルチコアプロセッサの制御プログラム、電子機器及び制御方法
WO2019188180A1 (ja) スケジューリング方法、スケジューリング装置
JP6364827B2 (ja) 情報処理装置、及び、そのリソースアクセス方法、並びに、リソースアクセスプログラム
WO2022141297A1 (zh) 事件处理方法和装置
WO2019188171A1 (ja) コード生成方法、コード生成装置
JP2010020683A (ja) スレッド制御方法およびスレッド制御装置ならびにリアルタイムシステム
WO2019188178A1 (ja) マルチコアシステム
KR20240099743A (ko) 가상머신 운영 방법 및 장치

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20190326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20190327

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220830

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221021

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230221