JP2006004009A - 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム - Google Patents

処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム Download PDF

Info

Publication number
JP2006004009A
JP2006004009A JP2004177461A JP2004177461A JP2006004009A JP 2006004009 A JP2006004009 A JP 2006004009A JP 2004177461 A JP2004177461 A JP 2004177461A JP 2004177461 A JP2004177461 A JP 2004177461A JP 2006004009 A JP2006004009 A JP 2006004009A
Authority
JP
Japan
Prior art keywords
task
cluster
processing
spu
request
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.)
Granted
Application number
JP2004177461A
Other languages
English (en)
Other versions
JP4855655B2 (ja
Inventor
Hiroki Kato
裕樹 加藤
Hirotoshi Maekawa
博俊 前川
Takayuki Ishida
隆行 石田
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment 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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2004177461A priority Critical patent/JP4855655B2/ja
Priority to US11/629,489 priority patent/US7689694B2/en
Priority to KR1020077000777A priority patent/KR101142733B1/ko
Priority to CNB2005800277460A priority patent/CN100489790C/zh
Priority to EP05751238A priority patent/EP1783609A4/en
Priority to PCT/JP2005/010987 priority patent/WO2005124549A1/ja
Publication of JP2006004009A publication Critical patent/JP2006004009A/ja
Application granted granted Critical
Publication of JP4855655B2 publication Critical patent/JP4855655B2/ja
Active 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5044Allocation 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 hardware capabilities
    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]

Abstract

【課題】 ネットワークに接続されている複数の処理装置とこれらの処理装置を管理する処理管理装置とで分散処理を行う際の処理管理装置のオーバーヘッドを回避する。
【解決手段】 傘下の複数の処理装置(SPU)207等を管理する処理管理装置(PU)203が、いずれかのSPUからタスク要求を受け付けたときに当該タスクのサイズ又は種類に適合するクラスタを所定のメモリにリストアップされているクラスタリストより特定し、特定したクラスタに対して当該タスクを割り当てるとともに、そのクラスタとタスクの要求元SPUの少なくとも一方に他方の通信設定情報(通信アドレス等)を伝達することにより、当該クラスタと要求元SPUとの間のネットワーク通信によるダイレクトな実行結果の受け渡しを可能にする。
【選択図】 図2

Description

本発明は、広帯域環境のネットワークに接続される複数のコンピュータによって効率的なタスクの実行を可能にするためのコンピュータ・システム、分散処理方法及びこのような分散処理を可能にするためのコンピュータ装置のアーキテクチャに関する。
今日、ネットワークに接続された複数のコンピュータ装置が協働して一つのタスクを分散処理することが一般的になっている。タスクを分散処理する場合、従来は、どのコンピュータ装置にどのタスクを割り当てるかを決めるために、予めネットワークに接続可能なすべてのコンピュータ装置の処理能力を把握しているサーバ装置の存在が不可欠となる。サーバ装置は、タスクの負荷の大きさと、分散処理を行おうとするときにネットワークに接続されている各コンピュータ装置の余剰処理能力(計算資源)とを特定し、負荷に応じた余剰処理能力を有するコンピュータ装置を逐次割り当てていき、その割り当てたコンピュータ装置からタスクの実行結果を受け取る。
サーバ装置を必要とする従来の分散処理方法では、任意の時点でネットワークに接続されたり、非接続になったりするコンピュータ装置の余剰処理能力を、サーバ装置において、迅速に把握し、タスクのサイズまたは種類に応じて必要な処理能力を動的に確保することは、非常に困難である。また、サーバ装置が、タスクの分散処理を依頼したコンピュータ装置からその実行結果を受け取って、タスクの依頼元に転送しなければならないため、サーバ装置のオーバーヘッドが大きくなる。そのため、タスクの実行に必要な時間と、ネットワークを介するデータ伝送に必要な時間とが実質的に増加してしまうという問題がしばしば生じていた。
本発明は、このような従来の問題点を解決する分散処理の仕組みを提供することを、主たる課題とする。
本発明は、特徴的な処理管理装置、コンピュータ・システム、分散処理管理用のデバイス及びコンピュータプログラムによって上記の課題を解決する。
本発明の処理管理装置は、それぞれ依頼されたタスクを実行し、その実行結果を依頼元の指定先へ送信する機能を備えた複数の処理装置が接続可能なネットワークに接続される処理管理装置であって;予め想定されるタスクのサイズ又は種類に応じた数の処理装置を単一又は複数種類のクラスタとして分類したクラスタリストと、個々のクラスタとのネットワーク通信を可能にするための通信設定情報とがリストアップされている所定のメモリへのアクセスを可能にする第1管理手段と;ネットワーク通信によりいずれかの前記処理装置からタスク要求を受け付けたときに当該タスクのサイズ又は種類に適合するクラスタを前記クラスタリストを参照することにより特定し、特定したクラスタに対して当該タスクを割り当てる割当手段と;この割当手段でタスクを割り当てたクラスタと前記タスク要求を行った要求元処理装置の少なくとも一方に他方の前記通信設定情報を伝達することにより、当該クラスタと前記要求元処理装置との間のネットワーク通信によるダイレクトな前記実行結果の受け渡しを可能にする第2管理手段と;を有するものである。
前記メモリと、このメモリへの前記クラスタリストおよび個々のクラスタについての前記通信設定情報の登録を行うクラスタ管理手段を備えて処理管理装置を構成することができる。また、タスクは、当該タスクの実行に続く後続タスクの実行依頼とその後続タスクの実行結果の指定先の情報を含むものとすることができる。
前記第2管理手段は、例えば、前記特定したクラスタに対して前記受け付けたタスクの実行結果の指定先を含む当該タスクの実行を依頼するように動作する。あるいは、前記要求元処理装置に、前記特定したクラスタへのダイレクトなタスクの実行を依頼させるように動作するようにしてもよい。
本発明のコンピュータ・システムは、それぞれ依頼されたタスクを実行し、その実行結果を依頼元の指定先へ送信する機能を備えた処理装置と、この処理装置と内部バスを介して接続された処理管理装置とを含む。前記処理装置及び前記処理管理装置は、それぞれ前記内部バスを介してネットワークに接続されている。
前記処理管理装置は;予め想定されるタスクのサイズ又は種類に応じた数の処理装置を単一又は複数種類のクラスタとして分類したクラスタリストと、個々のクラスタとのネットワーク通信を可能にするための通信設定情報とがリストアップされている所定のメモリへのアクセスを可能にする第1管理手段と;ネットワーク通信によりいずれかの前記処理装置からタスク要求を受け付けたときに当該タスクのサイズ又は種類に適合するクラスタを前記クラスタリストを参照することにより特定し、特定したクラスタに対して当該タスクを割り当てる割当手段と;この割当手段でタスクを割り当てたクラスタと前記タスク要求を行った要求元処理装置の少なくとも一方に他方の前記通信設定情報を送信することにより、当該クラスタと前記要求元処理装置との間のネットワーク通信によるダイレクトな前記実行結果の受け渡しを可能にする第2管理手段と;を有するものである。
本発明の分散処理管理用のデバイスは、それぞれ依頼されたタスクを実行し、その実行結果を依頼元の指定先へ送信する機能を備えた複数の処理装置が接続可能なネットワークに接続されるコンピュータ・システムに搭載されるデバイスであって;所定のコンピュータプログラムを実行することにより、前記コンピュータ・システムを;予め想定されるタスクのサイズ又は種類に応じた数の処理装置を単一又は複数種類のクラスタとして分類したクラスタリストと、個々のクラスタとのネットワーク通信を可能にするための通信設定情報とがリストアップされている所定のメモリへのアクセスを可能にする第1管理手段;ネットワーク通信によりいずれかの前記処理装置からタスク要求を受け付けたときに当該タスクのサイズ又は種類に適合するクラスタを前記クラスタリストを参照することにより特定し、特定したクラスタに対して当該タスクを割り当てる割当手段;この割当手段でタスクを割り当てたクラスタと前記タスク要求を行った要求元処理装置の少なくとも一方に他方の前記通信設定情報を伝達することにより、当該クラスタと前記要求元処理装置との間のネットワーク通信によるダイレクトな前記実行結果の受け渡しを可能にする第2管理手段;として動作させるものである。
本発明の分散処理方法は、それぞれ依頼されたタスクを実行し、実行結果を依頼元の指定先へ送信する機能を備えた複数の処理装置と、各処理装置との間でネットワークを通じて通信を行う処理管理装置との協働で行う分散処理方法であって、前記処理管理装置が、通信可能な複数の処理装置のうち、依頼されることが想定されるタスクのサイズ又は種類に応じた数の処理装置を予め単一又は複数種類のクラスタとして分類し、分類したクラスタリストを所定のメモリ領域に格納する段階と;ネットワーク通信によりいずれかの前記処理装置からタスク要求を受け付けたときに、そのタスクのサイズ又は種類に適合するクラスタを前記クラスタリストより特定し、特定したクラスタに対して当該タスクを割り当てる段階と;タスクを割り当てたクラスタと前記要求元処理装置の少なくとも一方に他方の前記通信設定情報を伝達することにより、当該クラスタと前記要求元処理装置との間のネットワーク通信によるダイレクトな前記実行結果の受け渡しを可能にする段階と;を有し、これにより、自己を介在させないダイレクトな前記タスクの実行結果の受け渡しを可能にする方法である。
本発明が提供するコンピュータプログラムは、コンピュータを、それぞれ依頼されたタスクを実行し、その実行結果を依頼元の指定先へ送信する機能を備えた複数の処理装置が接続可能なネットワークに接続される処理管理装置として動作させるためのプログラムであって;前記コンピュータを;予め想定されるタスクのサイズ又は種類に応じた数の処理装置を単一又は複数種類のクラスタとして分類したクラスタリストと、個々のクラスタとのネットワーク通信を可能にするための通信設定情報とがリストアップされている所定のメモリへのアクセスを可能にする第1管理手段;ネットワーク通信によりいずれかの前記処理装置からタスク要求を受け付けたときに当該タスクのサイズ又は種類に適合するクラスタを前記クラスタリストを参照することにより特定し、特定したクラスタに対して当該タスクを割り当てる割当手段;この割当手段でタスクを割り当てたクラスタと前記タスク要求を行った要求元処理装置の少なくとも一方に他方の前記通信設定情報を伝達することにより、当該クラスタと前記要求元処理装置との間のネットワーク通信によるダイレクトな前記実行結果の受け渡しを可能にする第2管理手段;として機能させるためのコンピュータプログラムである。
本発明によれば、処理管理装置が、タスク要求を受け取ったときに、そのタスクに適合するクラスタをクラスタリストを参照することで特定し、特定したクラスタに属する処理装置とタスク要求元との間のダイレクトなタスクの実行結果の受け渡しを可能にするので、処理管理装置の計算資源割り当てにおけるオーバーヘッドを回避することができる。これにより、複数の処理装置による分散処理を効率的に行うことができる。
まず、本発明が適用されるコンピュータ・システムの概要を説明する。
<ネットワーク型コンピュータ・システムの概要>
図1は、本発明が適用されるコンピュータ・システム101の全体図が示されている。このコンピュータ・システム101は、ネットワーク104を含んでいる。ネットワーク104の例としては、ローカル・エリア・ネットワーク(LAN)、インターネットのようなグローバルネットワーク、あるいは他のコンピュータ・ネットワークが挙げられる。
ネットワーク104には、複数のコンピュータ装置の各々がそれぞれ任意のタイミングで接続して、他のコンピュータ装置と双方向の通信を行うことができる。コンピュータ装置の例としては、パーソナルコンピュータ106、サーバコンピュータ108、通信機能付のゲームコンソール110、PDA112及びその他の有線または無線コンピュータとコンピューティング・デバイスなどが含まれる。
各コンピュータ装置は、それぞれ、共通の構造を持つプロセッサ・エレメント(以下、「PE」)を有している。これらのPEは、命令セット・アーキテクチャ(ISA)がすべて同じで、同じ命令セットに従って所要の処理を実行できるものである。個々のコンピュータ装置に含まれるPEの数は、そのコンピュータ装置がタスクを実行する上で必要な処理能力によって決められる。
コンピュータ装置のPEがこのように均質な構成を有することから、コンピュータ・システム101におけるアダプタビリティを改善することができる。また、各コンピュータ装置が、各々のPEのうち1つまたはそれ以上、またはPEの一部を用いて、他から依頼されたタスクを実行できるようにすることにより、タスクをどのコンピュータ装置で実行するかはさほど重要ではなくなる。依頼されたタスクの実行結果を、タスクを依頼したコンピュータ装置あるいは後続タスクを実行するコンピュータ装置を指定先として伝達するだけで足りる。そのため、個々のタスクは、ネットワーク104に接続されている複数のコンピュータ装置の間で分散実行することが容易になる。
各コンピュータ装置が、共通の構造のPEと共通のISAとを有するので、コンピュータ装置間の互換性を達成するためのソフトウェアの追加層の計算上の負担が回避される。また、異質なネットワークの混在という問題の多くを防ぐことができる。したがって、このシステム101は、広帯域処理の実現が可能となる。
<コンピュータ装置のアーキテクチャ>
次に、コンピュータ装置のアーキテクチャを明らかにする。まず、各コンピュータ装置が有するPEの構造例を図2を参照して説明する。
図2に示されるように、PE201は、プロセッサ・ユニット(PU)203、ダイレクト・メモリ・アクセス・コントローラ(DMAC)205、PUとは異なる複数のプロセッサ・ユニット(SPU)、すなわち、SPU207、SPU209、SPU211、SPU213、SPU215、SPU217、SPU219、SPU221を含んでいる。PEバス223は、SPU、DMAC205、PU203を相互に接続する。このPEバス223は、従来型のアーキテクチャなどを備えていても良いし、あるいは、パケット交換式ネットワークとして実現されても良い。パケット交換式ネットワークとして実現される場合、より多くのハードウェアが必要となり、その一方で、利用可能な帯域幅が増加する。
PE201は、デジタル論理回路を実現する様々な方法を用いて構成可能であるが、単一の集積回路として構成されることが望ましい。PE201は、高帯域メモリ接続部227を介して、ダイナミック・ランダム・アクセス・メモリ(DRAM)225に接続される。DRAM225は、PE201のメイン・メモリとして機能する。なお、メインメモリは、DRAM225であることが望ましいが、他の種類のメモリ、例えばスタティック・ランダム・アクセス・メモリ(SRAM)としての磁気ランダム・アクセス・メモリ(MRAM)、光メモリまたはホログラフィ・メモリなどをメインメモリとして用いることもできる。DMAC205は、PU203及びSPU207等によるDRAM225へのダイレクト・メモリ・アクセス(DMA)を実現する。DMAの実現手法の例としては、クロスバー・スイッチをその前段に設けることなどが挙げられる。
PU203は、DMAC205に対してDMAコマンドを出すことによりSPU207等の制御を行う。その際、PUは、独立したプロセッサとしてSPU207等を扱う。したがって、SPU207等による処理を制御するために、PUは、遠隔手順呼出しに類似したコマンドを使用する。これらのコマンドは“遠隔手順呼出し(RPC)”と呼ばれる。PU203は、一連のDMAコマンドをDMAC205へ出すことによりRPCを実行する。DMAC205は、依頼されたタスクの実行に対してSPUが必要とするプログラム(以下、「SPUプログラム」)とそれに関連するデータとをSPUのローカル・ストレージへロードする。PU203は、その後、SPUへ最初のキック・コマンドを出し、SPUプログラムを実行させる。
PU203は、必ずしもネットワーク型のプロセッサである必要はなく、スタンド・アローン型の処理が可能な標準的なプロセッサを主たるエレメントとして含むものであって良い。このプロセッサがDRAM225あるいは図示しない読み出し専用メモリに記録されている本発明のコンピュータプログラムを読み込んで実行することにより、通信モジュールを形成するとともに、自己が管理可能なSPU207,209,211,213,215,217,219,221、他のPEあるいは後述するBEのPEが管理するSPUの管理を行うための各種機能を形成する。これらの機能については、後で詳しく述べる。
図2に示したPE201のようないくつかのPEを結合して処理能力を向上させることもできる。例えば、図3に示されるように、1以上のチップ・パッケージなどの中に複数のPEを結合してパッケージ化し、これにより単一のコンピュータ装置を形成しても良い。このような構成のコンピュータ装置は、広帯域エンジン(BE)と呼ばれる。
図3の例では、BE301には、4つのPE(PE303、PE305、PE307、PE309)が含まれる。これらのPE間の通信は、BEバス311を介して行われる。また、これらのPEと共用DRAM315とが、広帯域メモリ接続部313によって接続されている。BEバス311の代わりに、BE301のPE間の通信は、共用DRAM315とこの広帯域メモリ接続部313とを介して行うことができる。BE301において、1つのPEが有する複数のSPUのすべては、それぞれ独立に、但し、一定の制限下で、共用DRAM315内のデータへアクセスすることができる。
入力/出力インターフェース(I/O)317と外部バス319とは、BE301と、ネットワーク104に接続されている他のコンピュータ装置との間の通信インタフェースとなるものである。I/O317は、例えばプロセッサ等の能動素子を含んで構成され、ネットワーク104とBE301内の各PE303,305,307,309との間の通信を制御するほか、ネットワーク104からの種々の割込をも受け付け、これを該当するPEに伝達する。そこで、以後の説明では、これらを総称して「ネットワークインタフェース」と称する場合がある。このようなネットワークインタフェースは、必ずしもBE301に内蔵されていなくても良く、ネットワーク104上に設けられていても良い。
なお、図2及び図3では図示していないが、画像処理を行うためのピクセル・エンジン、画像用キャッシュ、ディスプレイへの表示コントローラ等を含んで、PE201あるいはBE301を構成することもできる。このような付加的な機能は、後述するリソース管理において重要となる。
PE又はBEに含まれるSPUは、単一命令、複数データ(SIMD)プロセッサであることが望ましい。PU203の制御によって、SPUは、並列的かつ独立に、PEを通じて依頼されたタスクを実行し、その実行結果を依頼元が指定するSPUに向けて出力する機能を実現する。図2の例では、1つのPE201が8個のSPUを有するが、SPUの数は、必要とする処理能力に応じて任意であって良い。
次に、SPUの構造を詳しく説明する。SPUは、図4に例示される構造を有する。SPU402には、SPU内で処理されるデータ及びSPU内で実行される各種スレッドなどを格納するためのローカル・ストレージとなるローカル・メモリ406、レジスタ410、複数の浮動小数点演算ユニット412及び複数の整数演算ユニット414が含まれる。浮動小数点演算ユニット412と整数演算ユニット414の数は、予め必要となる処理能力に応じて、任意に決めることができる。
ローカル・メモリ406は、好適にはSRAMとして構成される。SPU402には、さらに、各種スレッドの実行結果、タスク依頼あるいはタスクの実行結果の受け渡しを行うためのバス404が含まれる。SPU402にはさらに内部バス408、420、418が含まれる。内部バス408は、ローカル・メモリ406とレジスタ410とを接続する。内部バス420、418は、それぞれ、レジスタ410と浮動小数点演算ユニット412との間、及び、レジスタ410と整数演算ユニット414と間を接続する。ある好ましい実施の態様では、レジスタ410から浮動小数点演算ユニット412または整数演算ユニット414へのバス418と420の幅は、浮動小数点演算ユニット412または整数演算ユニット414からレジスタ410へのバス418と420の幅よりも広い。レジスタ410から浮動小数点演算ユニットまたは整数演算ユニットへの上記バスの広い幅によって、レジスタ410からのより広いデータ・フローが可能になる。
なお、図示を省略したが、コンピュータ装置は、絶対タイマを使用する。絶対タイマはSPUとPEの他のすべてのエレメントへクロック信号を出力する。このクロック信号はこれらのエレメントを駆動するクロック信号に依存せず、かつ、このクロック信号より高速である。この絶対タイマによって、SPUによるタスク・パフォーマンスのためのタイム・バジェット(割り当て時間)が決定される。このタイム・バジェットによって、これらのタスクの完了時間が設定されるが、この時間は、SPUによるタスク処理に必要な時間よりも長い時間になる。その結果、個々のタスクについて、タイム・バジェットの範囲内に、ビジーな時間とスタンバイ時間とが存在することになる。SPUプログラムは、SPUの実際の処理時間にかかわらず、このタイム・バジェットに基づいて処理を行うように作成される。
<通信データ>
以上のように構成されるコンピュータ装置は、ネットワーク104に接続されている任意のタイミングで、ネットワーク104上の他のコンピュータ装置に対してタスクを依頼したり、あるいは、依頼されて自己が行ったタスクの実行結果等を伝達するための通信データを生成する。この通信データには、タスクの依頼内容、タスクを実行するための処理プログラム、データ、実行結果あるいは後続タスクの内容を伝達する指定先の通信設定情報など、様々な種類の情報が含まれる。この実施形態では、これらの様々な種類の情報を所定のデータ構造のもとでパケット化し、このパケットをコンピュータ装置相互で受け渡しするようにする。
パケットの受け渡しは、通常は、DRAMを介して行われる。例えば、コンピュータ装置が図2のようなPEを一つだけ有する場合はDRAM225、コンピュータ装置が図3のようなBEを有する場合は共用DRAM315から、それぞれ、図4に示した各SPUのローカル・メモリ406に読み出され、そのSPUによって直接処理される。
なお、上記の場合、SPUのローカル・メモリ406に、プログラム・カウンタと、スタックと、処理プログラムを実行するために必要な他のソフトウェア・エレメントとが含まれるようにしても良い。
パケットの受け渡しに際しては、常にDRAMを介さなければならないというものでもない。すなわち、コンピュータ装置が図2のようなPEを一つだけ有する場合はSPUのローカル・メモリ406に直接ロードされるようにし、他方、コンピュータ装置が図3のようなBEを有する場合は、I/O317から各SPUのローカル・メモリ406に直接ロードされるようにして、それぞれのSPUによって処理されるようにしても良い。
図5は、パケットの構造例を示している。パケット2302の中には、ルート選定情報セクション2304と本体部分2306とが含まれる。ルート選定情報セクション2304に含まれる情報は、ネットワーク104のプロトコルに依って決められる。ルート選定情報セクション2304の中には、ヘッダ2308、宛先ID2310、ソースID2312及び応答ID2314が含まれる。宛先ID2310には、タスクの実行結果又は後続タスクを実行させるための当該パケットの伝送先となるSPUの識別子が含まれる。
SPUの識別子は、それが図2に示される一つのPEに所属する場合にはPE及びSPUのセットから成るネットワーク・アドレス、それが図3に示されるBEの一つのPEに所属する場合にはBE、PE及びSPUのセットから成るネットワーク・アドレスが含まれる。TCP/IPプロトコルの下でのネットワーク・アドレスはインターネット・プロトコル(IP)アドレスである。ソースID2312には、当該パケットの伝送元となるSPUの識別子が含まれる。このソースID2314により識別されるSPUとからパケットが生成され、ネットワーク104に向けて発信される。応答ID2314には、当該パケットに関するクエリとタスク実行結果又は後続タスクを伝送する指定先のSPUの識別子が含まれる。
パケットの本体部分2306には、ネットワークのプロトコルとは無関係の情報が含まれる。図5の破線で示した分解部分は、本体部分2306の細部を示している。本体部分2306のヘッダ2318によってパケット本体の開始領域が識別される。パケットインターフェース2322には、当該パケットを利用する上で必要となる各種情報が含まれる。これらの情報の中には、グローバルな一意的ID2324と、タスク実行のために指定されるSPU2326と、専有メモリサイズ2328と、前回処理されたSPUで付されたパケットID2330とが含まれる。SPUは、依頼されたタスクを実行した際に、このパケットID2330を更新してネットワーク104に発信することになる。グローバルな一意的ID2324は、ネットワーク104全体を通じて当該パケット2302を一意的に識別するための情報である。このグローバルな一意的ID2324は、ソースID2312(ソースID2312内のSPUの一意的識別子など)と、パケット2302の作成または伝送の時刻と日付とに基づいて作成される。
専有メモリサイズ2328によって、タスクの実行に必要なDRAMと関連する必要なSPU内に、他の処理から保護されたメモリサイズが確保される。なお、専有メモリサイズ2328は、必要なデータ構造としては不可欠なものではなく、予めメモリサイズが指定されている場合には、不要となる。前回のパケットID2330によって、シーケンシャルな実行を要求する1グループのタスクにおける前回のタスクを実行したSPUの識別子を事後的に把握可能になる。
実行セクション2332の中には、当該パケットのコア情報が含まれる。このコア情報の中には、DMAコマンド・リスト2334と、タスクの実行に必要な処理プログラム2336と、データ2338とが含まれる。処理プログラム2336には、SPUプログラム2360、2362などの、このパケット2302を受け取ったSPUによって実行されるプログラムが含まれ、データ2338にはこれらのSPUプログラムにより処理される各種データが含まれる。
なお、タスク依頼先のSPUにタスク実行に必要な処理プログラムが存在する場合には、処理プログラム2336は不要となる。
DMAコマンド・リスト2334には、プログラムの起動に必要な一連のDMAコマンドが含まれる。これらのDMAコマンドにはDMAコマンド2340、2350、2355、2358が含まれる。
これらのDMAコマンド2340、2350、2355、2358は、例えば、図6に示されるようなものである。
すなわち、図6(a)に示されるように、DMAコマンド2340には、VIDコマンド2342が含まれる。VIDコマンド2342は、DMAコマンドが出されたときに、DRAM225の物理IDに対して対応づけられるSPUのバーチャルIDである。DMAコマンド2340にはロード・コマンド2344とアドレス2346も含まれる。ロード・コマンド2344は、SPUにDRAM225から特定の情報を読み出してローカル・メモリ406へ記録するように命令するためのものである。アドレス2346によってこの特定情報を含むDRAM225内のバーチャル・アドレスが与えられる。この特定情報は、処理プログラム2336、データ2338、あるいはその他のデータなどであって良い。DMAコマンド2340には、また、ローカル・メモリ406のアドレス2348が含まれる。このアドレスによって、パケットに記録されているすべての情報をロードできそうなローカル・メモリ406のアドレスが識別される。DMAコマンド2350についても同様となる。
図6(b)に例示されるDMAコマンド2355は、キック・コマンドを含むものである。「キック・コマンド」とは、上述したように、PUから指定先となるSPUに出される当該パケット内のSPUプログラムによる実行を開始させるためのコマンドである。このDMAコマンド2355には、VIDコマンド2352と、上述したキック・コマンド2354と、プログラムカウンタ2356とが含まれる。ここにいうVIDコマンド2352は、キックすべき対象SPUを識別するためのものであり、キック・コマンド2354は関連するキック・コマンドを与えるものであり、プログラムカウンタ2356は、SPUプログラムの実行用プログラムカウンタのためのアドレスを与えるものである。DMAコマンド2358についても同様の内容となる。
<運用形態>
次に、図1に示したコンピュータ・システム101の運用形態の一例を説明する。
上述したように、ネットワーク104に接続される各コンピュータ装置は、共通構造のPEと共通のISAとを有する。そのため、ネットワーク104に接続されているコンピュータ装置間のアーキテクチャの相違は吸収され、ネットワーク104には、図7に示されるように、各PEに含まれる多数のSPUの各々があたかも情報処理の細胞(Cell)のように機能する大規模情報処理統合体WOが形成される。
大規模情報処理統合体WOにおける個々のSPU512は、物理的には自己が所属するPU501,502,503,504,50n,50mによって管理され、単独のSPUとして動作したり、そのPU内の他のSPUとグループ化されて協働で動作したりするが、論理的には、PUによる壁はなく、異なるPUのもとで管理される他のSPUとの間でグループ化が可能である。このような形態でグループ化される場合、一つのタスクをグループに属する複数のSPUで分散処理することにより実行することができる。
分散処理の一形態として、グループ間で共通にアクセス可能な共有空間を構築し、あるコンピュータ装置を操作するユーザが、そのコンピュータ装置のいくつかのSPUのリソースを通じて、共有空間にアクセスすることができる。図7において、G01〜G04は、それぞれ、大規模情報処理統合体WOにおける複数のSPUのグループを示している。
このような大規模情報処理統合体WOにおける効率的な分散処理を可能にするため、PUには、種々の機能が形成される。図8は、本発明のプログラムとの協働によりPUに形成される機能及び各種リスト並びにテーブルの説明図である。
PUには、タスクマネージャ601と、リソースアロケータ603と、クラスタマネージャ605と、スケジューラ607と、共有空間モジュールの一例となる共有空間マネージャ609と、通信モジュール611とが形成される。通信モジュール611は、内部のSPUとの間でPEバス233(図2)を介して双方向通信を行うとともに、PEバス233及びネットワーク104を介して他のPU(PE/BE)のSPUとの間での双方向通信の手順を制御する。通信モジュール611は、ルーティングデータ及びプロトコルデータを記録したテーブル711を参照することにより、上記制御を行う。
クラスタマネージャ605は、通信モジュール611及びタスクマネージャ601を介して通信可能なすべてのSPUをクラスタ化するための処理を行う。この処理の内容を具体的に説明すると、まず、各SPUが処理可能なタスクの種類と現在の処理能力値(処理能力を数値化したデータ)を、例えばSPUにおいて実行されるモニタリング・スレッドと、タスクマネージャ601により実行されるモニタリング・スレッドとを通じて取得する。そして、各SPUにおいて実行可能なタスクの種類と各々のSPUの処理能力値の組み合わせを、その実行が想定されるタスクの種類又はサイズ毎にクラスタ化してクラスタリスト705にリストアップする。
クラスタリスト705の内容は、例えば図9の上段に示されたものとなる。クラスタの最低単位は、1つのSPU7050となる。図9の例では、それぞれ1つの特定のSPUからなる複数種類のSPUクラスタ7051と、複数のSPUの組み合わせからなるSPUクラスタ7053、7055、7057、7059、7061、7063がリスト化されている。それぞれ、1クラスタ毎に、SPUを識別するためのSPU_idとそのSPUが所属するPUの識別子(PU−ref)と、割当の可否を表す識別情報(valid/invalid)とが記録される。「valid」は割当可、「invalid」は割当不可を表す。
図10の上段を参照すると、4つのSPUの組み合わせからなるSPUクラスタの具体例が示されている。SPUクラスタは、SPUの数(size)、タスクサイズ(length)に応じて予め定められているテーブル7031に基づいて作成される。図10上段の例では、SPUが4つなので、テーブル7031の「SIZE」が「4」のデータに基づいてSPUクラスタが生成されている。クラスタリスト705の記録内容は、随時、更新される。テーブル7031におけるSPUの数(size)は、任意の数値ではなく、全体のクラスタ数に対する割合を表す関数等で表現されていても良い。
SPUステータステーブル701は、例えば図10後段に示される内容のものである。すなわち、あるクラスタの「PU−ref」によって識別されるPU3302におけるSPU_id毎にそのステータス情報(status)がSPUステータステーブル7011に記録される。ステータス情報は、そのSPUが現在クラスタ化されているかどうか、稼働状態にあるかなどを表す情報である。「busy」は稼働状態であり「none」はそれ故にバックポインタが不要であることが示されている。
タスクマネージャ601は、図11の手順で処理を行う。すなわち、SPUからタスク依頼(タスク要求)があったときに(TS1001:Yes)、依頼されたタスクを実行可能なSPUクラスタの割当をリソースアロケータ603に依頼する(TS1002)。リソースアロケータ603から、割り当てられたSPUクラスタに属するSPUの情報が通知されると(TS1003:Yes)、割り当てられたすべてのSPUのSPU_idをスケジューラ607に通知して、そのSPUをリザーブさせる(TS1004)。これは、SPUの動作を他の処理用と競合させないようにするためである。
タスクに記述された1個以上の処理プログラム間の呼び出し関数をつなぐデータパスと割当されたSPUの位置情報から生成された関数テーブル707を参照して、SPUに実行させるタスクの種類に応じた実行結果の指定先となるデータパスを検索する(TS1005)。そして、最初のタスクを実行するSPUに向けて、当該タスクの依頼内容とデータパスとを送信する(TS1006)。ここにいうタスクの記述例としては、以下のようなものがある。
<映像処理>
<program="ビデオ用プログラム" name="video" />
<program="オーディオ用プログラム" name="audio" />
<program="パケット化プログラム" name="packet" />
<sub from="video.Video_OUT" to="packet.Video_IN" />
<sub from="auido.AUdio_OUT" to="packet.Autdio_IN" />
<data file="video_data" to="video.Data_IN" />
<data file="audio_data" to="audio.DATA_IN" />
<data file="packet_data" from="packet.DATA_OUT" />
</映像処理>
この際のタスクの依頼内容とデータパスの送信は、PU、すなわちタスクマネージャ601からダイレクトに行ってもよく、データパス等をタスク要求を行ったSPUのローカル・メモリに記録して、そのSPUにてパケットを作成し、このパケットをPEバスを介してネットワークに送信するようにしても良い。
また、変形例として、割り当てられたSPUのSPU_idより特定されるSPUに向けて、タスク要求を行ったSPUのデータパスとタスク依頼の内容とを伝達し、当該特定されるSPUからタスク要求を行ったSPUにダイレクトに通信路を確立するようにしても良い。
タスクマネージャ601は、また、通信モジュール611を通じて、自己に属するSPUについてのリソース情報、ステータス情報、スケジュール情報を他のBE、PEあるいはPEに伝達するとともに、他のBE、PEあるいはPEに所属するSPUについてのこれらの情報を取得する。取得したステータス情報はリソースアロケータ603を介して、あるいは、タスクマネージャがダイレクトに、SPUステータステーブル701に記録する。リソース情報も同様にしてリソースリスト703に記録する。
リソース情報は、個々のSPUが現在どのような種類の処理を行うことができ、且つ、その処理能力値がどの程度かを表す情報である。リソースリスト703には、このリソース情報が、SPU_id毎に記録される。上述したように、SPUは、すべてのコンピュータ装置において共通構造であるが、SPUが所属するPEに付加されている処理エンジンの有無、及び、そのような処理エンジンの種類により、SPUが可能となる処理の種類が異なる場合がある。SPUプログラムさえロードすれば、どのような種類の処理あっても可能な場合、処理の種類は、図9に示されるように「all」となる。「all」以外の特定の処理の種類がある場合は、画像処理のみ、音声処理のみ、パッケージングのみ・・・のように記述される。処理能力値がすべてのSPUにおいて共通で、その値が既知の場合には、処理能力値については、リストアップを省略することができる。
スケジュール情報は、上述したように、SPUをリザーブするための情報である。スケジューラ607は、このスケジュール情報をSPU毎に図示しないタイムテーブル等に記録し、必要に応じてタスクマネージャ601に記録情報を通知する。
リソースアロケータ603は、図12に示した手順で処理を行う。すなわち、タスクマネージャ601を通じて割当依頼があると(AL1001:Yes)、リソースアロケータ603は、タスクサイズ及びタスクの種類を解析する(AL1002)。そして、クラスタリスト705にリストアップされているSPUクラスタから、タスクの実行に最適なSPUクラスタを検索する(AL1003)。
最適なSPUクラスタの検索基準としては、例えば、以下のようなものがある。
(1)検索の引数がタスクサイズのみとなる場合、すなわち、処理能力値がすべてのSPUで共通の場合、ごく簡易な例としては、タスクサイズが一致するクラスタリストを選択し、クラスタリスト内で識別情報がvalidである先頭のクラスタを割り当てる。ネットワーク距離に基づいて最適かどうかを判定することもできる。この場合は、クラスタを構成するSPU間のすべての組み合わせについて、ネットワーク距離(相手のSPUに到達するまでに経由しなければならないホストの数)を算出し、ネットワーク距離の最大値が小さい順にクラスタリストを作成し、クラスタリスト内で識別情報がvalidである先頭のクラスタを割り当てる。
(2)検索の引数がタスクサイズとタスクの種類になる場合は、例えば、タスクサイズに基づいて、クラスタリストを選択し、次いで、識別情報がvalidである各クラスタについてクラスタリストの先頭から、必要なタスク処理を備えたSPUが存在するかを順にチェックする。そして、最初に必要なタスク処理を実行できるSPU群を有するクラスタを返す。
以上のようにして最適なSPUクラスタを特定すると、リソースアロケータ603は、SPUステータステーブル701を参照して、特定したSPUクラスタに属するSPUのステータスを確認する(AL1004)。ステータスが「busy」等のために割当可能でなかった場合は(AL1005:No)、クラスタリスト705から他のSPUクラスタを特定し(AL1006)、AL1004の処理に戻る。割当可能であった場合は(AL1005:Yes)、割当可能なすべてのSPUをタスクマネージャ601に通知する(AL1007)。
共有空間マネージャ609は、共有空間管理データをもとに、複数のSPUが任意に参加し、任意に脱退することができる共有空間を、図7に示した大規模情報処理統合体WOの一部の領域に形成する。共有空間管理データは、例えば、複数のSPUが同時期にアクセス可能な領域のアドレス等である。共有空間を形成したときは、上記のステータス情報、リソース情報、スケジュール情報を共有する必要がある。そこで、共有空間マネージャ609は、SPUステータステーブル701及びリソースリスト703を、参加しているSPUを管理しているPUに伝達し、記録内容の更新時期を同期させるようにする。クラスタリスト705をもPU間で相互に受け渡すようにしても良い。
PUは、共有空間に参加しているSPUの識別情報、各SPUの通信設定情報、各SPUの現在のリソース情報等を所定のメモリ領域にSPUの識別情報毎にリストアップして使用可能状態(valid)とする。他方、共有空間から脱退したSPUについては、リストアップされている情報を使用不能状態(invalid)に変更する。
図13は、上記の全体的な処理の例を示した図である。この図において、網掛部分は、クラスタ化されたSPUを表している。リソースアロケータ5007は、本来、各PUに備えられるものであるが、複数のPUに跨る共有空間での処理なので、便宜上、共通の1つのリソースアロケータとして、便宜上、PUの外部において説明する。
この例では、大規模情報処理統合体WOを構成する、ある1つのSPU4001から、PU(#B)5003に、ビデオデータとオーディオデータとを合成してパッケージングして、自己の元に返して欲しいという内容のタスク要求が、パケットにより発信された場合の流れの例が示されている。
このタスク要求がPU(#B)5003に渡されると(”1”)、PU(#B)5003は、リソースアロケータ5007にそのタスクの実行に最適なSPUクラスタの割当を依頼する(”2”)。リソースアロケータ5007は、リソースリスト703のリソース情報に照らせば、ビデオデータについてはSPU4003,オーディオデータについてはSPU4005、パケット化プログラムはSPU4007が適していると判定し、その旨をPU(#B)5003に通知する(”3”)。PU(#B)5003は、そのSPUを管理するPUのネットワークアドレス宛に、最初のタスクの依頼内容とタスクの実行結果の伝達すべき指定先であるSPU4007の通信設定情報を含むパケットを各SPU4003,4005に送信するための準備を行う。
すなわち、ビデオ用プログラムはPU(#A)のSPU4003、オーディオ用プログラムはPU(#C)5005のSPU4005、パケット化プログラムはPU#AのSPU4007に配置する。その後、データパスを、各プログラム内に設定する。
データパスは、タスク中に記述されたデータフローに基づき、各SPUに割り当てられた処理プログラムをキーとして、関数テーブル707の検索により取得する。例えば、ビデオ用プログラムであれば、以下のようになる。
「video.VIDEO_OUT -> packet.VIDEO_IN」
SPUの割当情報に基づきこの結果は、以下のように変換される。
「PU#A:SPU#●:VIDEO_OUT -> PU#B:SPU#○:VIDEO_IN」
その後、指定先の識別子を付加する。指定先の識別子の形態としては、例えば、TCP、UDPなどの既存のプロトコルを利用するのであれば、PUとIPアドレスを対応付け、さらに、SPUと通信ポート番号とを対応付ける。あるいは、各SPU又はPUに個別のIPアドレスを割り当てる。あるいは、IPアドレスによって指定先のPE、BEあるいはコンピュータ装置を指定し、これをローカル・ストレージに記録することで、既存のプロトコルを利用する。なお、これに限らず、IP以外のアドレス指定方法、例えばSPU毎のプロセッサ識別子でデータ送信が可能なネットワークのアドレスを指定するようにしても良い。以上の処理によって、例えばビデオデータの指定先を含むパケットのデータ部分は、以下のようなものとなる。
「192.168:0.1:10001:VIDEO_OUT -> 192.168.0.2:10002:VIDEO_IN」
このようなデータ部と、それがSPU4003,4005に到達するようなヘッダと利用するプロトコルに応じたパケットを生成し、これを上述した(図3)ネットワークインタフェースを通じてネットワーク104に送信する(”4”)。
SPU4003を管理するPU(#A)5001及びSPU4005を管理するPU(#C)5003は、それぞれ、ネットワークインタフェースからの割込を受けて、パケットを受け取り、SPU4003,4005のローカル・メモリに、そのパケットの内容を書き込む。SPU4003,4005は、これにより、自己に依頼されたタスクを実行する。SPU4003,4005によるタスクの実行結果はパケット用プログラムと共にパケット化され、指定先であるSPU4007に伝達されるようにする(”5”)。SPU4007は、パッケージ用プログラムで、ビデオデータとオーディオデータとをパッケージ化し、その結果を各SPU4003、4005が指定した指定先であるSPU4001に向けて送信する(”6”)。これにより、SPU4001は、タスク要求に対応した実行結果を得ることができる。
なお、それぞれのPUは、パケットのヘッダ情報だけを解析することでパケットを受け取るべきSPUを特定し、PUは各SPUに対して必要なパケットデータをネットワークインタフェース或いはDRAM上から取得するように依頼する実施の形態を採用することもできる。
また、上記の例では、パケット化プログラムが、SPU4003あるいはSPU4005の実行結果と共にパケット化され、そのパケットがSPU4007に送信されることでプログラムが実行される。そして、SPU4003,4005のうち先に処理が終わった方のプログラムをSPU4007で実行し、一方(オーディオまたはビデオ)からの実行結果を待つという形態例であるが、このような形態以外にも以下の形態が可能である。
すなわち、ビデオプログラム、オーディオプログラムと同様に”4”のメッセージによってパケット化プログラムをSPU4007で実行し、SPU4003,SPU4005からの実行結果パケットの待ち受け状態にする。SPU4003,SPU4005は、実行結果をパケット化し、これをSPU4007に送信する。このように、予めすべてのプログラムをSPU4003,4005,4007に配置して、データのフローをつなぐタイプと、処理の進展に応じて先行するSPUで実行結果と後続のプログラムを共にパケット化するタイプの2種類の実施が可能である。
図14は、図13の例において、SPU4005が、SPU4003からのパケットによって動作可能になる場合の例を示している((”1”)〜(”5”))。また、SPU4005からSPU4007に送られた実行結果とSPUプログラムは、SPU4007に送られる(”6”)。そして、SPU4007でパッケージ化した後、タスク要求を行ったSPU4001ではなく、そのSPU4001と同じグループにクラスタ化された他のSPU4009に送信する(”7”)。
これらの例から判るように、PUは、リソースアロケータ5007に依頼して、最適なSPUを特定し、特定したSPUにタスクの依頼内容と指定先とを送信することにより、自己を介在させることなく、SPUだけで、以後のタスクの依頼、及びその実行結果の受け渡しが行われるので、タスク要求に際してのPUのオーバーヘッドが回避される。
また、予め想定されるタスクサイズ毎にクラスタ化しておき、タスク要求時に最適なSPUクラスタを割り当てるようにしたので、SPU割当に要する時間も短縮化される。このような効果は、リアルタイム性が要求される用途では、極めて意義の大きなものとなる。
なお、図13および図14の例において、PUの機能を当該PUの外部、例えば上述したネットワークインタフェースの一機能として内蔵させることで、PUを介さずに直接SPUがネットワークインタフェースからの割り込みを受けて処理を行う実施形態をとることも可能である。
また、PU相当のインタフェースネットワークあるいは処理装置をネットワーク104上に配備し、あるSPUが、目的のSPUにダイレクトにアクセスするための通信設定情報等を、PUを介さずに、ネットワークインタフェースあるいは上記の処理装置に、能動的に取りに行くという構成も可能である。この場合、ネットワークインタフェースないし処理装置には、PUとほぼ同様のアーキテクチャ(プロセッサ等)と所定のプログラムとの協働によって、以下のような機能の全部又は一部の機能を形成するようにする。
(a)リソースアロケータ603、5007、クラスタマネージャ605又はこれらと同様の機能。SPUステータステーブル701、リソースリスト703、クラスタリスト705については、自ら備えていても良いし、これらを管理するサーバないしPUにアクセスするようにしても良い。
(b)リソースアロケータ603又は同様の機能実現体に、ネットワーク通信により、タスクの実行に最適なSPUクラスタの割当を依頼し、あるいは自ら割り当てる機能。
(c)クラスタマネージャ605又は同様の機能実現体に、ネットワーク通信により、いずれかのSPUからタスク要求を受け付けたときに当該タスクのサイズ又は種類に適合するクラスタをクラスタリストを参照することにより特定し、特定したクラスタに対して当該タスクの割当を依頼し、あるいは自ら割り当てる機能。
(d)SPU又はSPUを管理するPUのネットワークアドレスを管理(自ら記録/更新するか、あるいは、記録されているサーバ等へのアクセスを行う)機能。
(e)最初のタスクの依頼内容とタスクの実行結果の伝達すべき指定先であるSPUの通信設定情報を含むパケットを、目的のSPUへ送信するための準備を行う機能、あるいは、実際にパケットをSPUへ送信する機能。
本発明が適用されるコンピュータ・システムの全体図。 すべてのコンピュータ装置に共通となるPEの構造説明図。 複数のPEを有するBEの構造説明図。 SPUの構造説明図。 ネットワークを伝送するパケットの構造説明図。 パケットに含まれるDMAコマンドの例を示した図であり、(a)はSPUのローカル・メモリへのプログラム等のロードを指示するためのコマンドを含むDMAコマンド、(b)はプログラムをキックさせるためのキックコマンドを含むDMAコマンドの例を示す。 多数のSPUから構成される情報統合体の説明図。 PUに形成される機能及びテーブル等の説明図。 クラスタテーブル及びリソースリストの利用形態の説明図。 リソースリスト、SPUステータステーブル及びクラスタリストの関係を示した説明図。 PUに形成されるタスクマネージャにおける処理手順図。 PUに形成されるリソースアロケータにおける処理手順図。 タスクマネージャを用いた全体的な処理概要の説明図。 タスクマネージャを用いた処理概要の他の説明図。
符号の説明
101・・・コンピュータ・システム
104・・・ネットワーク
106〜112・・・コンピュータ装置
203・・・PU
205・・・DMAC
207〜221・・・SPU
225・・・DRAM
301・・・BE
303〜309・・・PE
315・・・共用DRAM
2302・・・ネットワークを伝送するパケット

Claims (11)

  1. それぞれ依頼されたタスクを実行し、その実行結果を依頼元の指定先へ送信する機能を備えた複数の処理装置が接続可能なネットワークに接続される処理管理装置であって;
    予め想定されるタスクのサイズ又は種類に応じた数の処理装置を単一又は複数種類のクラスタとして分類したクラスタリストと、個々のクラスタとのネットワーク通信を可能にするための通信設定情報とがリストアップされている所定のメモリへのアクセスを可能にする第1管理手段と;
    ネットワーク通信によりいずれかの前記処理装置からタスク要求を受け付けたときに当該タスクのサイズ又は種類に適合するクラスタを前記クラスタリストを参照することにより特定し、特定したクラスタに対して当該タスクを割り当てる割当手段と;
    この割当手段でタスクを割り当てたクラスタと前記タスク要求を行った要求元処理装置の少なくとも一方に他方の前記通信設定情報を伝達することにより、当該クラスタと前記要求元処理装置との間のネットワーク通信によるダイレクトな前記実行結果の受け渡しを可能にする第2管理手段と;
    を有する処理管理装置。
  2. 前記メモリと、このメモリへの前記クラスタリストおよび個々のクラスタについての前記通信設定情報の登録を行うクラスタ管理手段を有する、
    請求項1記載の処理管理装置。
  3. 前記タスクは、当該タスクの実行に続く後続タスクの実行依頼とその後続タスクの実行結果の指定先の情報を含む、
    請求項1記載の処理管理装置。
  4. 前記第2管理手段は、前記特定したクラスタに対して前記受け付けたタスクの実行結果の指定先を含む当該タスクの実行を依頼する、
    請求項3記載の処理管理装置。
  5. 前記第2管理手段は、前記要求元処理装置に、前記特定したクラスタへのダイレクトなタスクの実行を依頼させる、
    請求項3記載の処理管理装置。
  6. それぞれ依頼されたタスクを実行し、その実行結果を依頼元の指定先へ送信する機能を備えた処理装置と、この処理装置と内部バスを介して接続された処理管理装置とを含み;
    前記処理装置及び前記処理管理装置は、それぞれ前記内部バスを介してネットワークに接続されており;
    前記処理管理装置は;
    予め想定されるタスクのサイズ又は種類に応じた数の処理装置を単一又は複数種類のクラスタとして分類したクラスタリストと、個々のクラスタとのネットワーク通信を可能にするための通信設定情報とがリストアップされている所定のメモリへのアクセスを可能にする第1管理手段と;
    ネットワーク通信によりいずれかの前記処理装置からタスク要求を受け付けたときに当該タスクのサイズ又は種類に適合するクラスタを前記クラスタリストを参照することにより特定し、特定したクラスタに対して当該タスクを割り当てる割当手段と;
    この割当手段でタスクを割り当てたクラスタと前記タスク要求を行った要求元処理装置の少なくとも一方に他方の前記通信設定情報を送信することにより、当該クラスタと前記要求元処理装置との間のネットワーク通信によるダイレクトな前記実行結果の受け渡しを可能にする第2管理手段と;を有するものである、
    コンピュータ・システム。
  7. それぞれ依頼されたタスクを実行し、その実行結果を依頼元の指定先へ送信する機能を備えた複数の処理装置が接続可能なネットワークに接続されるコンピュータ・システムに搭載されるデバイスであって;
    所定のコンピュータプログラムを実行することにより、前記コンピュータ・システムを;
    予め想定されるタスクのサイズ又は種類に応じた数の処理装置を単一又は複数種類のクラスタとして分類したクラスタリストと、個々のクラスタとのネットワーク通信を可能にするための通信設定情報とがリストアップされている所定のメモリへのアクセスを可能にする第1管理手段;
    ネットワーク通信によりいずれかの前記処理装置からタスク要求を受け付けたときに当該タスクのサイズ又は種類に適合するクラスタを前記クラスタリストを参照することにより特定し、特定したクラスタに対して当該タスクを割り当てる割当手段;
    この割当手段でタスクを割り当てたクラスタと前記タスク要求を行った要求元処理装置の少なくとも一方に他方の前記通信設定情報を伝達することにより、当該クラスタと前記要求元処理装置との間のネットワーク通信によるダイレクトな前記実行結果の受け渡しを可能にする第2管理手段;として動作させる、分散処理管理用のデバイス。
  8. それぞれ依頼されたタスクを実行し、実行結果を依頼元の指定先へ送信する機能を備えた複数の処理装置と、各処理装置との間でネットワークを通じて通信を行う処理管理装置との協働で行う分散処理方法であって、
    前記処理管理装置が、
    通信可能な複数の処理装置のうち、依頼されることが想定されるタスクのサイズ又は種類に応じた数の処理装置を予め単一又は複数種類のクラスタとして分類し、分類したクラスタリストを所定のメモリ領域に格納する段階と;
    ネットワーク通信によりいずれかの前記処理装置からタスク要求を受け付けたときに、そのタスクのサイズ又は種類に適合するクラスタを前記クラスタリストより特定し、特定したクラスタに対して当該タスクを割り当てる段階と;
    タスクを割り当てたクラスタと前記要求元処理装置の少なくとも一方に他方の前記通信設定情報を伝達することにより、当該クラスタと前記要求元処理装置との間のネットワーク通信によるダイレクトな前記実行結果の受け渡しを可能にする段階と;を有し、これにより、自己を介在させないダイレクトな前記タスクの実行結果の受け渡しを可能にする、
    分散処理方法。
  9. 前記複数の処理装置のすべてが共通の構造のプロセッサ・エレメントを有する、
    請求項8記載の分散処理方法。
  10. 前記複数の処理装置が有するプロセッサエレメントは、命令セット・アーキテクチャ(ISA)がすべて同じで、同じ命令セットに従って所要の処理を実行できるものである、
    請求項9記載の分散処理方法。
  11. コンピュータを、それぞれ依頼されたタスクを実行し、その実行結果を依頼元の指定先へ送信する機能を備えた複数の処理装置が接続可能なネットワークに接続される処理管理装置として動作させるためのプログラムであって;
    前記コンピュータを;
    予め想定されるタスクのサイズ又は種類に応じた数の処理装置を単一又は複数種類のクラスタとして分類したクラスタリストと、個々のクラスタとのネットワーク通信を可能にするための通信設定情報とがリストアップされている所定のメモリへのアクセスを可能にする第1管理手段;
    ネットワーク通信によりいずれかの前記処理装置からタスク要求を受け付けたときに当該タスクのサイズ又は種類に適合するクラスタを前記クラスタリストを参照することにより特定し、特定したクラスタに対して当該タスクを割り当てる割当手段;
    この割当手段でタスクを割り当てたクラスタと前記タスク要求を行った要求元処理装置の少なくとも一方に他方の前記通信設定情報を伝達することにより、当該クラスタと前記要求元処理装置との間のネットワーク通信によるダイレクトな前記実行結果の受け渡しを可能にする第2管理手段;として機能させるためのコンピュータプログラム。
JP2004177461A 2004-06-15 2004-06-15 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム Active JP4855655B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2004177461A JP4855655B2 (ja) 2004-06-15 2004-06-15 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム
US11/629,489 US7689694B2 (en) 2004-06-15 2005-06-09 Process management apparatus, computer systems, distributed processing method, and computer program for avoiding overhead in a process management device
KR1020077000777A KR101142733B1 (ko) 2004-06-15 2005-06-09 처리관리장치, 컴퓨터 시스템, 분산처리방법 및 컴퓨터프로그램
CNB2005800277460A CN100489790C (zh) 2004-06-15 2005-06-09 处理管理装置、计算机系统、分布式处理方法
EP05751238A EP1783609A4 (en) 2004-06-15 2005-06-09 PROCESSING MANAGEMENT DEVICE, COMPUTER SYSTEM, DISTRIBUTED PROCESSING METHOD AND COMPUTER PROGRAM
PCT/JP2005/010987 WO2005124549A1 (ja) 2004-06-15 2005-06-09 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004177461A JP4855655B2 (ja) 2004-06-15 2004-06-15 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2006004009A true JP2006004009A (ja) 2006-01-05
JP4855655B2 JP4855655B2 (ja) 2012-01-18

Family

ID=35509890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004177461A Active JP4855655B2 (ja) 2004-06-15 2004-06-15 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム

Country Status (6)

Country Link
US (1) US7689694B2 (ja)
EP (1) EP1783609A4 (ja)
JP (1) JP4855655B2 (ja)
KR (1) KR101142733B1 (ja)
CN (1) CN100489790C (ja)
WO (1) WO2005124549A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007293683A (ja) * 2006-04-26 2007-11-08 Tokyo Electron Ltd 群管理システム、プロセス情報管理装置、およびプログラム
JP2010170245A (ja) * 2009-01-21 2010-08-05 Toshiba Corp 医用端末選択装置
JP2017126238A (ja) * 2016-01-15 2017-07-20 日本電気株式会社 システム管理装置、情報処理システム、システム管理方法及びプログラム
JP2021108510A (ja) * 2019-12-27 2021-07-29 京セラ株式会社 電力管理システム及び電力管理方法

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200841189A (en) * 2006-12-27 2008-10-16 Ibm Technique for accurately detecting system failure
JP4414447B2 (ja) * 2007-04-25 2010-02-10 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理システムおよび情報処理方法
US8427670B2 (en) * 2007-05-18 2013-04-23 Xerox Corporation System and method for improving throughput in a print production environment
US8134743B2 (en) 2007-07-18 2012-03-13 Xerox Corporation Methods and systems for routing and processing jobs in a production environment
US8127012B2 (en) * 2007-07-18 2012-02-28 Xerox Corporation System and methods for efficient and adequate data collection in document production environments
US8145517B2 (en) * 2007-07-18 2012-03-27 Xerox Corporation Methods and systems for scheduling job sets in a production environment
US20090025002A1 (en) * 2007-07-18 2009-01-22 Xerox Corporation Methods and systems for routing large, high-volume, high-variability print jobs in a document production environment
US8725546B2 (en) * 2007-07-18 2014-05-13 Xerox Corporation Workflow scheduling method and system
US8144364B2 (en) 2007-07-18 2012-03-27 Xerox Corporation Methods and systems for processing heavy-tailed job distributions in a document production environment
BRPI0819170A8 (pt) * 2007-11-08 2015-11-24 Genetic Finance Holdings Ltd Método para executar uma tarefa computacional, e, sistema de computador em rede configurado para executar uma tarefa computacional
US20090327033A1 (en) * 2008-06-26 2009-12-31 Xerox Corporation Methods and systems for forecasting inventory levels in a production environment
GB2462825A (en) * 2008-08-19 2010-02-24 Howler Technologies Ltd Processing packetised data using a Cell Broadband Engine architecture
US8392496B2 (en) * 2008-12-19 2013-03-05 Watchguard Technologies, Inc. Cluster architecture for network security processing
US8640137B1 (en) * 2010-08-30 2014-01-28 Adobe Systems Incorporated Methods and apparatus for resource management in cluster computing
US8954700B2 (en) * 2011-08-02 2015-02-10 Cavium, Inc. Method and apparatus for managing processing thread migration between clusters within a processor
US8923306B2 (en) 2011-08-02 2014-12-30 Cavium, Inc. Phased bucket pre-fetch in a network processor
FR2982386B1 (fr) * 2011-11-08 2016-05-27 Bull Sas Procede, programme d'ordinateur et dispositif d'allocation de ressources informatiques d'un cluster pour l'execution d'un travail soumis audit cluster
US9477529B2 (en) 2012-06-20 2016-10-25 International Business Machines Corporation Job distributed within a grid environment using mega-host groupings of execution hosts based on resource attributes
CN103581225A (zh) * 2012-07-25 2014-02-12 中国银联股份有限公司 分布式系统中的节点处理任务的方法
CN104216684B (zh) * 2013-06-04 2017-05-31 阿里巴巴集团控股有限公司 一种多核并行系统及其数据处理方法
WO2015139164A1 (zh) * 2014-03-17 2015-09-24 华为技术有限公司 一种任务调度的方法、装置及设备
EP3329429A4 (en) * 2015-07-31 2019-04-03 Cisco Technology, Inc. QUORUM-BASED DISTRIBUTED ANOMALY AND REPAIR
US10698737B2 (en) * 2018-04-26 2020-06-30 Hewlett Packard Enterprise Development Lp Interoperable neural network operation scheduler
CN110750341B (zh) * 2018-07-24 2022-08-02 深圳市优必选科技有限公司 任务调度方法、装置、系统、终端设备及存储介质
CN110012062B (zh) * 2019-02-22 2022-02-08 北京奇艺世纪科技有限公司 一种多机房任务调度方法、装置及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57146367A (en) * 1982-02-05 1982-09-09 Hitachi Ltd Decentralized processing system
JPH06348662A (ja) * 1993-06-14 1994-12-22 Fuji Xerox Co Ltd ネットワーク用サーバ
JPH0756754A (ja) * 1993-08-03 1995-03-03 Internatl Business Mach Corp <Ibm> マルチメディア・グループ資源割当て装置及び方法
JPH07141302A (ja) * 1993-11-17 1995-06-02 Agency Of Ind Science & Technol 並列計算機における負荷分散方法
JPH08305671A (ja) * 1995-04-28 1996-11-22 Nec Corp ジョブスケジューリング方式
JP2001147908A (ja) * 1999-11-19 2001-05-29 Fujitsu Ltd 負荷分散システム
JP2003143179A (ja) * 2001-11-07 2003-05-16 Casio Comput Co Ltd 情報処理装置および情報処理システム
JP2003271570A (ja) * 2001-03-22 2003-09-26 Sony Computer Entertainment Inc データ処理方法
JP2005148911A (ja) * 2003-11-12 2005-06-09 Nec Corp 負荷分散方法及び装置とシステム並びにプログラム
JP2005228229A (ja) * 2004-02-16 2005-08-25 Hitachi Ltd Webサービス委譲処理方法及び実施装置並びに処理プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844677A (ja) * 1994-07-29 1996-02-16 Toshiba Corp 分散処理システム
US6112243A (en) * 1996-12-30 2000-08-29 Intel Corporation Method and apparatus for allocating tasks to remote networked processors
US6112225A (en) * 1998-03-30 2000-08-29 International Business Machines Corporation Task distribution processing system and the method for subscribing computers to perform computing tasks during idle time
US6009455A (en) * 1998-04-20 1999-12-28 Doyle; John F. Distributed computation utilizing idle networked computers
CA2378088A1 (en) * 1999-06-25 2001-01-04 Massively Parallel Computing, Inc. Massive collective network processing system and methods
US6938256B2 (en) * 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
US6725261B1 (en) * 2000-05-31 2004-04-20 International Business Machines Corporation Method, system and program products for automatically configuring clusters of a computing environment
US6959372B1 (en) * 2002-02-19 2005-10-25 Cogent Chipware Inc. Processor cluster architecture and associated parallel processing methods
US7080379B2 (en) * 2002-06-20 2006-07-18 International Business Machines Corporation Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue
US7395536B2 (en) * 2002-11-14 2008-07-01 Sun Microsystems, Inc. System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment
JP2004287801A (ja) * 2003-03-20 2004-10-14 Sony Computer Entertainment Inc 情報処理システム、情報処理装置、分散情報処理方法及びコンピュータプログラム

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57146367A (en) * 1982-02-05 1982-09-09 Hitachi Ltd Decentralized processing system
JPH06348662A (ja) * 1993-06-14 1994-12-22 Fuji Xerox Co Ltd ネットワーク用サーバ
JPH0756754A (ja) * 1993-08-03 1995-03-03 Internatl Business Mach Corp <Ibm> マルチメディア・グループ資源割当て装置及び方法
JPH07141302A (ja) * 1993-11-17 1995-06-02 Agency Of Ind Science & Technol 並列計算機における負荷分散方法
JPH08305671A (ja) * 1995-04-28 1996-11-22 Nec Corp ジョブスケジューリング方式
JP2001147908A (ja) * 1999-11-19 2001-05-29 Fujitsu Ltd 負荷分散システム
JP2003271570A (ja) * 2001-03-22 2003-09-26 Sony Computer Entertainment Inc データ処理方法
JP2003143179A (ja) * 2001-11-07 2003-05-16 Casio Comput Co Ltd 情報処理装置および情報処理システム
JP2005148911A (ja) * 2003-11-12 2005-06-09 Nec Corp 負荷分散方法及び装置とシステム並びにプログラム
JP2005228229A (ja) * 2004-02-16 2005-08-25 Hitachi Ltd Webサービス委譲処理方法及び実施装置並びに処理プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007293683A (ja) * 2006-04-26 2007-11-08 Tokyo Electron Ltd 群管理システム、プロセス情報管理装置、およびプログラム
WO2007125884A1 (ja) * 2006-04-26 2007-11-08 Tokyo Electron Limited 群管理システム、プロセス情報管理装置、およびプログラム
JP2010170245A (ja) * 2009-01-21 2010-08-05 Toshiba Corp 医用端末選択装置
JP2017126238A (ja) * 2016-01-15 2017-07-20 日本電気株式会社 システム管理装置、情報処理システム、システム管理方法及びプログラム
JP2021108510A (ja) * 2019-12-27 2021-07-29 京セラ株式会社 電力管理システム及び電力管理方法
JP6995825B2 (ja) 2019-12-27 2022-01-17 京セラ株式会社 電力管理システム及び電力管理方法

Also Published As

Publication number Publication date
KR20070034582A (ko) 2007-03-28
EP1783609A1 (en) 2007-05-09
US7689694B2 (en) 2010-03-30
CN101006427A (zh) 2007-07-25
EP1783609A4 (en) 2009-06-03
US20080046500A1 (en) 2008-02-21
JP4855655B2 (ja) 2012-01-18
KR101142733B1 (ko) 2012-05-15
CN100489790C (zh) 2009-05-20
WO2005124549A1 (ja) 2005-12-29

Similar Documents

Publication Publication Date Title
JP4855655B2 (ja) 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム
WO2018035856A1 (zh) 实现硬件加速处理的方法、设备和系统
JP4489399B2 (ja) プロセッサでのデータ処理方法及びデータ処理システム
US7389508B2 (en) System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
TWI543073B (zh) 用於多晶片系統中的工作調度的方法和系統
JP4455822B2 (ja) データ処理方法
JP3515985B2 (ja) プロセッサ装置内で一時的に専用パイプラインを設定する方法及びシステム
JP3696563B2 (ja) コンピュータ・プロセッサ及び処理装置
JP4334901B2 (ja) コンピュータ処理システム及びコンピュータで実行される処理方法
EP1768024B1 (en) Processing management device, computer system, distributed processing method, and computer program
CN106104501B (zh) 用于在多节点系统中的存储器分配的方法和装置
TWI547870B (zh) 用於在多節點環境中對i/o 存取排序的方法和系統
JP2009251708A (ja) I/oノード制御方式及び方法
JP2006107514A (ja) 外部デバイスとデータ通信可能なインターフェイスデバイスを有するシステム及び装置
US9158713B1 (en) Packet processing with dynamic load balancing
US20140068625A1 (en) Data processing systems
JP2005209206A (ja) マルチプロセッサシステムにおけるデータ転送方法、マルチプロセッサシステム、及び、この方法を実施するプロセッサ
KR101201593B1 (ko) 처리관리장치, 컴퓨터 시스템, 분산처리방법 및 컴퓨터프로그램
JP4414447B2 (ja) 情報処理装置、情報処理システムおよび情報処理方法
JP4833911B2 (ja) プロセッサユニットおよび情報処理方法
JP2003030164A (ja) 計算機システムおよび計算ノード
GB2484707A (en) Data processing systems
GB2484708A (en) Data processing systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100112

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100714

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100818

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110106

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110303

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

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

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

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4855655

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250