JP4908363B2 - 情報処理装置、並列処理最適化方法およびプログラム - Google Patents

情報処理装置、並列処理最適化方法およびプログラム Download PDF

Info

Publication number
JP4908363B2
JP4908363B2 JP2007248025A JP2007248025A JP4908363B2 JP 4908363 B2 JP4908363 B2 JP 4908363B2 JP 2007248025 A JP2007248025 A JP 2007248025A JP 2007248025 A JP2007248025 A JP 2007248025A JP 4908363 B2 JP4908363 B2 JP 4908363B2
Authority
JP
Japan
Prior art keywords
execution
basic modules
program
parallel
parallelism
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
Application number
JP2007248025A
Other languages
English (en)
Other versions
JP2009080583A (ja
Inventor
隆二 境
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007248025A priority Critical patent/JP4908363B2/ja
Priority to US12/202,677 priority patent/US8196146B2/en
Publication of JP2009080583A publication Critical patent/JP2009080583A/ja
Application granted granted Critical
Publication of JP4908363B2 publication Critical patent/JP4908363B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc

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

この発明は、例えばCPUコアを複数内蔵するCPUを搭載するコンピュータや、複数のCPUを搭載するコンピュータ等に適用して好適なプログラムの並列処理制御技術に関する。
近年、ノートブックタイプやデスクトップタイプ等、様々な種類の個人向けコンピュータ(パーソナルコンピュータ)が広く普及している。この種のコンピュータでは、例えば高精細動画像データをソフトウェアによって再生する等、その情報処理能力に対する要求はCPUの性能向上の限界に迫るほどに高まる一方である。
このような事から、例えば複数のCPUを搭載したり、また、最近では、CPUコアを複数内蔵するCPUを搭載するコンピュータが登場してきている。即ち、プログラムを並列処理することで、所要時間の短縮化を図り、以て、コンピュータの性能を向上させるわけである。プログラムの並列処理を効率的に行うための仕組みについては、これまでも種々提案されている(例えば特許文献1等参照)。
特開2005−258920公報
プログラムの並列処理の1つの形態は、プログラム中の各処理単位を実行ユニットに割り当てる(複数のCPUを搭載するコンピュータにおいては、各CPUへの割り当てを行い、CPUコアを複数内蔵するCPUを搭載するコンピュータにおいては、各CPUコアへの割り当てを行う)スケジューラを含むランタイム処理と、各実行ユニット上で動作する処理単位との2つの構成要素から構成される。この時、処理単位の大きさを並列処理の粒度といい、粒度を細かくする方が、並列化の機会を増やすことが可能となるので、並列性能を向上できる。
一方で、この並列処理の粒度が細かすぎると、スケジューラが動作する回数が多くなるため、このオーバーヘッドによって、十分な性能を得られないという問題があった。
この発明は、このような事情を考慮してなされたものであり、プログラムの実行時に並列処理の粒度を適応的に最適化することを可能とする情報処理装置、並列処理最適化方法およびプログラムを提供することを目的とする。
実施形態によれば、情報処理装置は、のモジュールと非同期に実行可能な複数の基本モジュールに分割され、当該複数の基本モジュールの時系列的な実行規則が定義されるプログラムを、複数の実行ユニットによって並列実行するために、前記実行規則に基づき、前記複数の実行ユニットに対する前記複数の基本モジュールの割り当てを制御するスケジューラを具備し、前記スケジューラは、前記複数の実行ユニットによる前記プログラムの並列処理における並列化率を示す並列度を検出する並列度検出手段と、前記複数のCPUによる前記プログラムの並列処理における前記複数の基本モジュールの割り当て制御に関わる負荷を検出する負荷検出手段と、前記並列度検出手段が検出した並列度の値が予め定められた値を越え、かつ、前記負荷検出手段が検出した負荷の値が予め与えられた値を越えていた場合、前記実行規則によって前後して実行される互いに異なる2以上の基本モジュールを、同一の実行ユニットに対して一組みとして割り当てられるように結合するモジュール結合手段と、を有する。
この発明によれば、プログラムの実行時に並列処理の粒度を適応的に最適化することが可能となる。
以下、図面を参照して、この発明の一実施形態を説明する。
図1は、本実施形態に係る情報処理装置のシステム構成の一例を示す図である。この情報処理装置は、ノートブックタイプやデスクトップタイプ等のいわゆるパーソナルコンピュータとして実現されている。そして、図1に示すように、本コンピュータは、プロセッサ1、主メモリ2およびハードディスク駆動装置(HDD)3を有しており、これらは内部バスを介して相互に接続されている。
プロセッサ1は、HDD3から主メモリにロードされたプログラムを実行制御する中央演算処理装置(CPU)であり、主要部の演算回路(CPUコア)であるコア11を複数内蔵している。
主メモリ2は、プロセッサ1がアクセス可能な、例えば半導体で構成される記憶装置である。一方、HDD3は、本コンピュータにおける補助記憶としての役割を担う、(主メモリ2と比較して)低速大容量の記憶媒体である。
また、図示していないが、プロセッサ1によるプログラムの処理結果等を表示するためのディスプレイや処理データ等を入力するためのキーボードなどの入出力装置が、例えばノートブックタイプの場合はさらに備えられ、また、例えばデスクトップタイプの場合はケーブル等により外部接続される。
コア11を複数内蔵するプロセッサ1を搭載する本コンピュータは、複数のプログラムを並列実行することが可能であり、また、1つのプログラム中の複数の処理を並列実行することも可能である。ここで、図2を参照して、本コンピュータによって実行される並行処理仕様のプログラムの概略構成について説明する。
図2に示すように、本コンピュータによって実行される並行処理仕様の実行プログラム100は、複数の直列基本モジュール101と、この複数の直列基本モジュール101をどのような順序で実行すべきかを定義する並列実行制御記述102とから構成される。
いわゆるマルチスレッド処理では、一般的に、図3に示すように、他のスレッドとの間で(通信を含む)同期を取りながら、即ち、プログラム全体の整合性を保ちながら、各スレッドが処理を進行させていく。よって、同期の待ち合わせが多発すると、期待した並列性能が得られないことも考えられる。
そこで、本実施形態では、図4に示すように、他のモジュールとの同期を取る必要がない、非同期に実行可能な処理単位にプログラムを分割することで、複数の直列基本モジュール101を作成すると共に、この複数の直列基本モジュール101の時系列的な実行規則を定義する並列実行制御記述102を作成する。並列実行制御上、各直列基本モジュール101は、ノードとして表現される。このように、直列基本モジュールとは、他のモジュールと非同期に実行可能な処理単位のモジュールをいう。次に、図5を参照して、並列実行制御記述102について説明する。
図5(A)は、ある直列基本モジュール101を表現したノードの概念図である。図示のように、各直列基本モジュール101は、先行ノードへのリンクと、後続ノードへの結合子とを有するノードとして捉えることができる。並列実行制御記述102は、各直列基本モジュール101それぞれについて、先行ノードへのリンク情報を記すことにより、複数の直列基本モジュール101の実行順序を定義する。図5(B)は、ある直列基本モジュール101に関する並列実行制御記述を例示する図であり、図示のように、それぞれの識別子である直列基本モジュールIDと、その直列基本モジュール101の先行ノードへのリンク情報とが記される。また、その他に、出力バッファタイプやコスト等の情報が併せて記される。
続いて、この複数の直列基本モジュール101と並列実行制御記述102とから構成されるという独自の構成をもつ実行プログラム100を本コンピュータがどのように実行するのかについて説明する。
このような独自の構成をもつ実行プログラム100を並列処理するために、本コンピュータでは、図6に示すランタイムライブラリ200が用意される。このランタイムライブラリ200は、スケジューラとしての機能を備えており、並列実行制御記述102がグラフデータ構造生成情報201として与えられる。並列実行制御記述102は、例えば関数型言語を用いて作成され、トランスレータによってグラフデータ構造生成情報201に変換される。
何らかのデータ入力が行われると、このデータを処理するための直列基本モジュール101をいくつか実行する必要が生じるが、その都度、ランタイムライブラリ200は、グラフデータ構造生成情報201に基づき、グラフデータ構造202を動的に生成・更新していく。グラフデータ構造202は、その時々で適宜に実行されていくノード群の前後関係を示すグラフデータであり、ランタイムライブラリ200は、追加対象のノード間での前後関係は勿論、実行待ちの状態にあるノードとの間の前後関係も考慮して、それらノード群のグラフデータ構造202への追加を行っていく。
また、ランタイムライブラリ200は、あるノードの実行が完了すると、このノードをグラフデータ構造202から削除すると共に、このノードを先行ノードとし、かつ、その他に先行ノードがないか、または、その他の先行ノードがすべて完了している後続ノードの有無を調べて、この条件を満たす後続ノードが存在したら、そのノードをいずれかのコア11に割り当てる。
このランタイムライブラリ200の働きにより、並列実行制御記述102に基づく複数の直列基本モジュール101の並列実行が矛盾無く進められていく。また、このランタイムライブラリ200は、プロセッサ1が内蔵するコア11の数よりも多くの数のスレッドによって実行する(マルチスレッド)。その結果、図7に示すように、各コア11(各コア11のOS300配下の1スレッドであるランタイムライブラリ200)があたかも自律的に次に実行すべき直列基本モジュール101を見つけ出してくるかのごとく本コンピュータを動作させることができる。スレッド間の排他制御は、ランタイムライブラリ200による、グラフデータ構造202からのノードの選択と、当該グラフデータ構造の更新とのみに止まるので、図3に示した一般的なマルチスレッド処理と比較して、高い並列性能を得ることを実現する。
ところで、本コンピュータのプロセッサ1が内蔵するコア11の数に対して、直列基本モジュール101の処理単位、つまり並列処理の粒度が細かすぎると、ランタイムライブラリ200の稼働機会、いわゆるオーバヘッドが増えてしまい、実行効率を低下させることになりかねない。この点を考慮して、本実施形態のランタイムライブラリ200は、この並列処理の粒度を適応的に最適化する機能をさらに備える。
より具体的に説明すると、いま、図8(A)に示すような関係にあるノードA〜ノードEの5つのノードが存在するものと想定すると、ランタイムライブラリ200は、例えば図8(B)に示すように、ノードAとノードBとを連結し、ノードC〜ノードEの先行ノードをノードAからノードBに変更する機能を備える。この連結を動的かつ効率的に行うことを可能とするために、ランタイムライブラリ200は、各ノードについて、先行ノードへのリンク情報毎に図9に示す情報を保持する。
「リンク開放順位」は、グラフデータ構造生成情報201に基づき生成したノードに対して、当該ノードのリンク情報によってリンクされたノードが実行完了した順序を記録するフィールドである。「現ノード実行時の緊急度」は、あるノードに対応する直列基本モジュール101の実行時において、そのノードでのリンク開放順位が最後尾のノードがリンクされる(参照する)他のノードのうち、実行開始よりも進んだ状態にあるノードの数を記録するフィールドである。緊急度は、値が小さいほど高いものとする。即ち、実行開始よりも進んだ状態にあるノード数が0の場合が、最も高い緊急度ということになる。そして、「現ノード実行時の並列実行余裕度」は、現ノード実行時に実行可能状態にあるノードの数を記録するフィールドである。いずれの情報も、実行する度に変化する可能性があるため、最初の2つについては、とり得る値の配列を用意してカウントアップする。また、並列実行余裕度については、並列実行余裕度の最近N回分の平均か、期待度(たとえば、前の値×(1−α)+今回の値×α)を使う等、データを圧縮して記録する。
図10は、ランタイムライブラリ200の機能ブロック図である。
ランタイムライブラリ200は、図10に示すように、ノード生成部210、グラフ構造解釈実行エンジン220および並列粒度調整部230を有している。
前述した、本ランタイムライブラリ200による、グラフデータ構造生成情報201に基づくグラフデータ構造202の動的な生成・更新と、このグラフデータ構造202を用いたノードのコア11への割り当て制御とは、ノード生成部210およびグラフ構造解釈実行エンジン220とによって実現されている。そして、以下にその詳細に説明する並列処理の粒度の適応的な最適化は、並列粒度調整部230によって実現され、並列粒度調整部230は、プロファイル情報収集部231、並列度検出部232およびランタイム負荷測定部233を有している。
プロファイル情報収集部231は、各直列基本モジュール101の実行完了による本ランタイムライブラリ200の稼働時に、当該直列基本モジュール101に対応するノードのリンク情報における「リンク開放順位」、「緊急度」および「並列実行余裕度」の各情報を収集する。
並列度検出部232は、プロセッサ1による実行プログラム100の並列処理における並列化率を測定する。この並列化率を示す値として、並列度検出部232は、すべてのコア11での直列基本モジュール101の実行時間の総和を、実際の経過時間で割った値を算出する。
また、ランタイム負荷測定部233は、プロセッサ1による実行プログラム100の並列処理に関する(オーバーヘッドである)当該ランタイムライブラリ200の処理負荷を測定する。この負荷は、例えば各コア11の実行クロックサイクルを記録するレジスタの値をランタイムライブラリ稼働前後で測定することで測定できる。ここで、この処理負荷時間には、実行可能なノード数が0、即ち、次に実行すべき直列基本モジュール101が無くなったことにより、待ち合わせている時間を含まないものとする。
このプロファイル情報収集部231、並列度検出部232およびランタイム負荷測定部233により取得される各種情報を用いて、並列粒度調整部230は、並列処理の粒度の適応的な最適化を以下のように実行する。
即ち、並列粒度調整部230は、単位時間当たりの本ランタイムライブラリ200の処理負荷が、単位実行時間×(コア数−並列度)×αより大きいとき、性能ネックになっている可能性があると判断する。αは、予め定められる閾値である。
本ランタイムライブラリ200の処理負荷が性能ネックになっている可能性があると判断した場合、並列粒度調整部230は、その処理負荷を軽減するために、ノードの結合を実施する。より具体的には、まず、並列粒度調整部230は、グラフデータ構造生成情報201のリンク情報のうち、最も緊急度が高く、かつ、並列実行余裕度の大きいものを選択する。そして、並列粒度調整部230は、このリンク情報を含んでいるノードと、リンク開放順位が最後尾で繋がる参照ノードとを結合する。
並列粒度調整部230は、この結合に伴い、結合するノードを属性情報として持つような新たなグラフデータ構造生成情報201を生成する。新たに生成する情報は、2つの直列基本モジュール101を同一のコア11上で連続して実行させるためのノードに関する情報であり、そのリンク情報は、2つのノードのリンク情報をマージしたものとする。即ち、ここで新たに作成されるノードは、2つの直列基本モジュール101を1つのモジュールと見なす論理的な直列基本モジュール101に対応するものである。
この時、並列粒度調整部230は、これら2つのノードを参照していた別のノードのリンク情報を、新たに生成したノードに書き換える。これにより、次回以降、ノード生成部210は、この新たに生成されたグラフデータ構造生成情報201を使って、グラフデータ構造202へのノードの追加を行うことになる。
また、連結したノードに対応する直列基本モジュール101が同一のコア11上で連続実行されることになることから、並列粒度調整部230は、この範囲で、命令のスケジューリングや変数のレジスタへの再割り当て、その他のコンパイラの最適化を行い、これらが効率よく処理されるための変換を併せて実行する。
この並列粒度調整部230の働きにより、ランタイムライブラリ200は、実行プログラム100の実行時に、適応的に、並列処理の粒度を自己調整することを実現する。
図11は、本コンピュータが実行する並列処理最適化の動作の流れを示すフローチャートである。
ランタイムライブラリ200の並列粒度調整部230は、ランタイムライブラリの稼働時に、プロファイル情報収集部231、並列度検出部232およびランタイム負荷測定部233によるデータ収集を行う(ステップA1)。
並列粒度調整部230は、この収集されたデータを使って、ノードを結合する必要があるか否かを判断し(ステップA2)、ノードを結合する必要があると判断したら(ステップA2のYES)、並列粒度調整部230は、ノードの結合を行い(ステップA4)、これにより同一のコア11で連続して実行されることになる2つの直列基本モジュール101の最適化を実行する(ステップA5)。
(並列処理の粒度が実行時に自己調整される)本手法によれば、実行プログラム100の作成時には、粒度を意識することなく、各直列基本モジュール101を、ただ十分小さな処理単位に分割すれば良い。よって、コア11の数毎に実行プログラム100を作り直したり、チューニングする手間を一切無くすことができる。
なお、ここでは、十分細かく分割された直列基本モジュール101を並列実行する際のオーバーヘッド(ランタイムライブラリ200の処理)の削減について説明したが、連結によって並列性が落ちてしまうこともありうる。例えば、処理するべき入力データの性質が変化して、モジュール毎の負荷バランスが変化する場合である。
これを考慮して、並列粒度調整部230は、連結したノードの属性情報として、元の2つのノードの情報を退避しておき、連結したノードを元の2つのノードに戻す機能を更に備えておくことが好ましい。この場合、初期状態を、いくつかのノードを連結したものにしておいて、並列度が十分でなく、オーバヘッドも小さい場合に、連結してあるノードを分割することで並列度を向上させる、という最適化も行えることとなる。
この粒度を大小いずれの方向にも自己調整する機能を備えれば、コア11の使用可能状況が大きく変化する場合にも動的に対応することが可能となる。
また、ここでは、本コンピュータが、コア11を複数内蔵するプロセッサ1を搭載する場合を例に本手法を説明したが、本手法は、複数のプロセッサ1を搭載するいわゆるマルチプロセッサコンピュータにおいても当然に適用できる。
つまり、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
この発明の実施形態に係る情報処理装置のシステム構成の一例を示す図 本実施形態の情報処理装置によって実行される並行処理仕様のプログラムの概略構成を説明するための図 一般的なマルチスレッド処理を示す図 本実施形態の情報処理装置によって実行されるプログラムを構成する直列基本モジュールと並列実行制御記述との関係を示す図 本実施形態の情報処理装置によって実行されるプログラムの並列実行制御記述を説明するための図 本実施形態の情報処理装置上で動作するランタイムライブラリが行うプログラムの並列処理制御を説明するための図 本実施形態の情報処理装置上におけるランタイムライブラリの動作状態を示す図 本実施形態の情報処理装置上で動作するランタイムライブラリが実施するノードの結合を説明するための図 本実施形態の情報処理装置上で動作するランタイムライブラリがノードの結合を実施するために保持する情報を示す図 本実施形態の情報処理装置上で動作するランタイムライブラリの機能ブロックを示す図 本実施形態の情報処理装置上で動作するランタイムライブラリが実行する並列処理最適化の動作の流れを示すフローチャート
符号の説明
1…プロセッサ、2…主メモリ、3…ハードディスク駆動装置(HDD)、11…コア、100…実行プログラム、101…直列基本モジュール、102…並列実行制御記述、200…ランタイムライブラリ、201…グラフデータ構造生成情報、202…グラフデータ構造、210…ノード生成部、220…グラフ構造解釈実行エンジン、230…並列粒度調整部、231…プロファイル情報収集部、232…並列度検出部、233…ランタイム負荷測定部。

Claims (9)

  1. のモジュールと非同期に実行可能な複数の基本モジュールに分割され、当該複数の基本モジュールの時系列的な実行規則が定義されるプログラムを、複数の実行ユニットによって並列実行するために、前記実行規則に基づき、前記複数の実行ユニットに対する前記複数の基本モジュールの割り当てを制御するスケジューラを具備し、
    前記スケジューラは、
    前記複数の実行ユニットによる前記プログラムの並列処理における並列化率を示す並列度を検出する並列度検出手段と、
    前記複数のCPUによる前記プログラムの並列処理における前記複数の基本モジュールの割り当て制御に関わる負荷を検出する負荷検出手段と、
    前記並列度検出手段が検出した並列度の値が予め定められた値を越え、かつ、前記負荷検出手段が検出した負荷の値が予め与えられた値を越えていた場合、前記実行規則によって前後して実行される互いに異なる2以上の基本モジュールを、同一の実行ユニットに対して一組みとして割り当てられるように結合するモジュール結合手段と、
    を有する情報処理装置。
  2. 前記スケジューラは、前記モジュール結合手段が結合した2以上の基本モジュールを再分割するモジュール分割手段をさらに有する請求項記載の情報処理装置。
  3. 前記スケジューラの前記モジュール結合手段は、結合する2以上の基本モジュールに含まれる命令の再スケジューリングを行う請求項1記載の情報処理装置。
  4. 前記スケジューラの前記モジュール結合手段は、結合する2以上の基本モジュールに含まれる変数のレジスタへの再割り当てを行う請求項1記載の情報処理装置。
  5. 前記スケジューラの前記並列度検出手段は、前記複数の実行ユニットでの前記複数の基本モジュールの実行時間の総和を、実際の経過時間で除した値を並列度として算出する請求項1記載の情報処理装置。
  6. 前記複数の実行ユニットは、1つのCPUに内蔵されるCPUコアである請求項1記載の情報処理装置。
  7. 前記複数の実行ユニットは、それぞれが個別に構成された複数のCPUである請求項1記載の情報処理装置。
  8. 他のモジュールと非同期に実行可能な複数の基本モジュールに分割され、当該複数の基本モジュールの時系列的な実行規則が定義されるプログラムを、複数の実行ユニットによって並列実行する情報処理装置における並列処理最適化方法であって、
    前記複数の実行ユニットによる前記プログラムの並列処理における並列化率を示す並列度を検出し、
    前記複数のCPUによる前記プログラムの並列処理における前記複数の基本モジュールの割り当て制御に関わる負荷を検出し、
    前記並列度の値が予め定められた値を越え、かつ、前記負荷の値が予め与えられた値を越えていた場合、前記実行規則によって前後して実行される互いに異なる2以上の基本モジュールを、同一の実行ユニットに対して一組みとして割り当てられるように結合する、
    列処理最適化方法。
  9. 他のモジュールと非同期に実行可能な複数の基本モジュールに分割され、当該複数の基本モジュールの時系列的な実行規則が定義されるプログラムを、複数の実行ユニットによって並列実行する情報処理装置を、
    前記複数の実行ユニットによる前記プログラムの並列処理における並列化率を示す並列度を検出する並列度検出手段、
    前記複数のCPUによる前記プログラムの並列処理における前記複数の基本モジュールの割り当て制御に関わる負荷を検出する負荷検出手段、
    前記並列度検出手段が検出した並列度の値が予め定められた値を越え、かつ、前記負荷検出手段が検出した負荷の値が予め与えられた値を越えていた場合、前記実行規則によって前後して実行される互いに異なる2以上の基本モジュールを、同一の実行ユニットに対して一組みとして割り当てられるように結合するモジュール結合手段、
    として機能させるプログラム。
JP2007248025A 2007-09-25 2007-09-25 情報処理装置、並列処理最適化方法およびプログラム Expired - Fee Related JP4908363B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007248025A JP4908363B2 (ja) 2007-09-25 2007-09-25 情報処理装置、並列処理最適化方法およびプログラム
US12/202,677 US8196146B2 (en) 2007-09-25 2008-09-02 Information processing apparatus, parallel processing optimization method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007248025A JP4908363B2 (ja) 2007-09-25 2007-09-25 情報処理装置、並列処理最適化方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2009080583A JP2009080583A (ja) 2009-04-16
JP4908363B2 true JP4908363B2 (ja) 2012-04-04

Family

ID=40473115

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007248025A Expired - Fee Related JP4908363B2 (ja) 2007-09-25 2007-09-25 情報処理装置、並列処理最適化方法およびプログラム

Country Status (2)

Country Link
US (1) US8196146B2 (ja)
JP (1) JP4908363B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4621786B2 (ja) 2009-04-28 2011-01-26 株式会社東芝 情報処理装置、並列処理最適化方法およびプログラム
US9183109B2 (en) 2010-05-25 2015-11-10 Intel Corporation Method and system for analyzing the performance of multi-threaded applications
WO2013101079A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Profiling asynchronous events resulting from the execution of software at code region granularity
JP6183374B2 (ja) * 2012-10-31 2017-08-23 日本電気株式会社 データ処理システム、データ処理方法およびプログラム
US9223674B2 (en) * 2013-03-11 2015-12-29 Wisconsin Alumni Research Foundation Computer system and method for runtime control of parallelism in program execution
US9740529B1 (en) * 2013-12-05 2017-08-22 The Mathworks, Inc. High throughput synchronous resource-constrained scheduling for model-based design

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3039953B2 (ja) * 1989-04-28 2000-05-08 株式会社日立製作所 並列化装置
US5048018A (en) * 1989-06-29 1991-09-10 International Business Machines Corporation Debugging parallel programs by serialization
JP2818016B2 (ja) * 1990-08-09 1998-10-30 株式会社日立製作所 プロセス並列実行方法および装置
JPH04152465A (ja) * 1990-10-16 1992-05-26 Fujitsu Ltd データ処理システム及びデータ処理方法
GB9305263D0 (en) * 1993-03-15 1993-05-05 Univ Westminster Parrallel computation
JP2684993B2 (ja) 1994-08-10 1997-12-03 日本電気株式会社 プロセッサシステムとその制御方法
US6341371B1 (en) * 1999-02-23 2002-01-22 International Business Machines Corporation System and method for optimizing program execution in a computer system
JP2002342097A (ja) * 2001-05-17 2002-11-29 Matsushita Electric Ind Co Ltd タスク割当可能時間決定装置及びタスク割当可能時間決定方法
JP3632635B2 (ja) * 2001-07-18 2005-03-23 日本電気株式会社 マルチスレッド実行方法及び並列プロセッサシステム
JP2004038715A (ja) * 2002-07-05 2004-02-05 Hitachi Eng Co Ltd 並列計算処理方法
JP2005258920A (ja) 2004-03-12 2005-09-22 Fujitsu Ltd マルチスレッド実行方法、マルチスレッド実行プログラム、およびマルチスレッド実行装置
US7984431B2 (en) * 2007-03-31 2011-07-19 Intel Corporation Method and apparatus for exploiting thread-level parallelism
US7707390B2 (en) * 2007-04-25 2010-04-27 Arm Limited Instruction issue control within a multi-threaded in-order superscalar processor
US7730288B2 (en) * 2007-06-27 2010-06-01 International Business Machines Corporation Method and apparatus for multiple load instruction execution

Also Published As

Publication number Publication date
US8196146B2 (en) 2012-06-05
US20090083751A1 (en) 2009-03-26
JP2009080583A (ja) 2009-04-16

Similar Documents

Publication Publication Date Title
JP4621786B2 (ja) 情報処理装置、並列処理最適化方法およびプログラム
US7503039B2 (en) Preprocessor to improve the performance of message-passing-based parallel programs on virtualized multi-core processors
JP4381459B1 (ja) 情報処理装置、粒度調整方法およびプログラム
EP3037971B1 (en) Methods and apparatus to manage workload memory allocation
JP4908363B2 (ja) 情報処理装置、並列処理最適化方法およびプログラム
US20230091261A1 (en) Orchestration and scheduling of services
KR20180064922A (ko) 이종 계산 장치 기반의 질의 처리 방법 및 장치
JP2010079622A (ja) マルチコアプロセッサシステム、および、そのタスク制御方法
JP5093509B2 (ja) Cpuエミュレーションシステム、cpuエミュレーション方法及びcpuエミュレーションプログラム
JP2010009495A (ja) 情報処理装置、プログラム処理方法及びコンピュータプログラム
US20210319298A1 (en) Compute-based subgraph partitioning of deep learning models for framework integration
WO2022078400A1 (zh) 一种对多维数据进行处理的设备、方法和计算机程序产品
JP5391422B2 (ja) メモリ管理方法、計算機システム及びプログラム
US20080271041A1 (en) Program processing method and information processing apparatus
US20120137300A1 (en) Information Processor and Information Processing Method
JP7367365B2 (ja) タスク実行管理装置、タスク実行管理方法、および、タスク実行管理プログラム
JP6138701B2 (ja) 分散計算方法及び分散計算システム
JP2019113984A (ja) 計算制御プログラム、計算制御方法及び画像形成装置
US20230409379A1 (en) Information processing device and job scheduling method
WO2019188182A1 (ja) プリフェッチコントローラ
WO2024179326A1 (zh) 数据处理方法、装置、处理器、计算机设备和系统
JP7131005B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
WO2022024214A1 (ja) プログラム作成装置、遅延量更新装置、処理システム及びプログラム
WO2019188171A1 (ja) コード生成方法、コード生成装置
TW202429277A (zh) 運算資源分配方法、運算資源分配系統以及運算資源分配程式產品

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100625

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110927

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111121

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: 20111213

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: 20120112

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees