JP4168281B2 - 並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム - Google Patents

並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム Download PDF

Info

Publication number
JP4168281B2
JP4168281B2 JP2004269495A JP2004269495A JP4168281B2 JP 4168281 B2 JP4168281 B2 JP 4168281B2 JP 2004269495 A JP2004269495 A JP 2004269495A JP 2004269495 A JP2004269495 A JP 2004269495A JP 4168281 B2 JP4168281 B2 JP 4168281B2
Authority
JP
Japan
Prior art keywords
child
child process
node
processes
processing
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
JP2004269495A
Other languages
English (en)
Other versions
JP2006085428A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2004269495A priority Critical patent/JP4168281B2/ja
Priority to US11/227,107 priority patent/US20060059489A1/en
Publication of JP2006085428A publication Critical patent/JP2006085428A/ja
Application granted granted Critical
Publication of JP4168281B2 publication Critical patent/JP4168281B2/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/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
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Description

本発明は、並列処理システムに関し、特に、並列ジョブ全体のターンアラウンドタイム(TAT)を短縮し、システム全体の効率を高める並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラムに関する。
並列ジョブは、親プロセスが一連のジョブを複数の子プロセスに分割することでTAT短縮を狙う手法である。この手法では、プロセス分割は並列化コンパイラによって、極力同時期に終了するように等しい負荷バランスを考慮して行われる。しかしながら、実際に並列化動作をさせてみると、他のジョブからの擾乱、子プロセス間通信の非同期性などが原因となって、負荷インバランスという問題が発生する。つまり、子プロセスの実行時間のばらつきによって、最も時間がかかる子プロセスのTATに並列ジョブ全体のTATが律速されてしまう。
また、負荷インバランスは並列ジョブTATに対して悪影響を及ぼすだけでなく、計算資源を有効利用できないという問題を引き起こす。例えば、最後に残った子プロセス終了を待つための無意味なポーリング処理を、親プロセスが続けなければならないという問題がある。
これらの問題は、並列化コンパイラ、ジョブスケジューラというシステムソフトウェアの力だけでは十分解決することができない。すなわち、どんなにコンパイラ等で負荷を均等にしたタスクに分割しても、上記の理由により負荷インバランスが発生する。また、ジョブスケジューラの能力を効率化するためにpost−wait式の同期制御を行う、つまり、待っているプロセスはポーリングで待たずにスリープさせて、同期が取れた時に割り込みで再開させるようなことで計算資源の有効利用を図ろうとしても、割り込み処理のオーバーヘッドで効果が上がらない場合もある。
このような問題の解決に類する方法の一例が、例えば特開平6−149752号公報(特許文献1)及び例えば特開2000−231502号公報(特許文献2)に記載されている。
特許文献1の方法は、ネットワークで接続された複数のプロセッサとメインメモリを備えたシステムでの、システムスループットを高めるバリア同期方式に関するものである。
特許文献1の方法では、プロセッサ数(変数)をメインメモリに格納する。プロセッサ数は、最初はプロセッサの数であり、各プロセッサがそれぞれの処理を終了すると、各プロセッサからメインメモリに対してプロセッサ数から1を減算する命令を発行する。それぞれのプロセッサでの処理終了にともない、プロセッサ数は減少し、すべてのプロセッサでの処理が終了すると0になる。プロセッサ数が0になると、各プロセッサは次の処理を開始することにより、バリア同期がなされる。
特許文献1に開示される方法は、このバリア同期の際のみ、コヒーレンス動作を行うというものである。この方法によれば、コヒーレンス動作を高速かつ必要最小限に行うため、特許文献1の方法以前に行われていた、各プロセッサの処理の終了時にコヒーレンス動作を行っていた方法に比較すると、システム全体としてスループットを高めることができる。
また、特許文献2の方法は、ネットワークで接続された管理計算機と複数の計算機のシステムでの遅延要因解析方法に関するものである。
特許文献2の方法では、各計算機からジョブの実行の履歴を示す履歴情報が管理計算機へ送られる。計算機システムの終了予定時刻が終了予定時刻より規定以上遅れていることを検出すると、最後に行われたジョブで、実行時間と実行予定時間を比較し、実行時間が実行予定時間よりも長いときは、遅延原因は最後に行われたジョブを実行した計算機であると判断するというものである。
また、実行時間が実行予定時間よりも短いときは、実行開始時刻が予定開始時刻を過ぎていたかどうかを調べ、遅延の原因がジョブにあるのか、計算機の性能にあるのかを分析する。
特許文献2によれば、業務処理に遅延を生じさせた原因を、ジョブと計算機とに分けて抽出することができるというものである。
特開平6−149752号公報 特開2000−231502号公報
上述した従来の技術は、いずれも以下に述べるような問題点があった。
特許文献1の方法では、ネットワークで接続された複数のプロセッサとメインメモリを備えたシステムで、コヒーレンス動作を高速かつ必要最小限とすることにより、システムスループットを高めることができるというものである。
しかしながら、特許文献1の方法は、負荷インバランスの問題を解決するものではなかった。すなわち、特許文献1の方法では、すべてのプロセッサの処理が終了するまで待ちつづけた後、バリア同期がなされるというものであり、並列ジョブ全体のTATを短縮するものではなかった。
また、特許文献2の方法では、ネットワークで接続された管理計算機と複数の計算機のシステムで、計算機システムの終了時刻が終了予定時刻より規定以上遅れている場合に、遅延を生じさせた原因を、ジョブと計算機とに分けて抽出することができるというものである。
しかしながら、特許文献2の方法は、遅延原因を、ジョブと計算機とに分けて抽出することはできるが、特許文献1の方法と同じく、並列ジョブ全体のTATを短縮するものではなかった。
本発明の目的は、上記従来技術の欠点を解決し、計算機ジョブを分割して複数の子プロセスで並列処理を行う並列ジョブ全体のTATを短縮し、システム効率を高めることのできる並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラムを提供することにある。
上記目的を達成するための本発明は、複数のノードがインタコネクションネットワークを介して相互に接続され、前記ノードに備える計算機で実行される親プロセスにより計算機ジョブを複数の並列ジョブに分割し、前記並列ジョブを複数のノードに設置された前記複数の計算機による子プロセスで並列処理する並列処理システムであって、前記子プロセスの中で、最も処理の遅れている子プロセスの処理時間を短縮することを特徴としている。
また、子プロセスで実行される処理は、計算処理と計算結果転送処理で構成されるが、計算結果転送処理の処理時間を短縮することを特徴としている。計算結果転送処理では、計算結果が子プロセスから親プロセスへ転送される。
また、最も処理の遅れている子プロセスの実行されている計算機の配置されたノードからの転送処理を優先して処理することにより、計算結果転送処理の処理時間を短縮するものである。
従来の並列ジョブでは、並列ジョブ全体の処理時間は、最も処理の遅れている子プロセスにより律速されるものであった。本発明では、最も処理の遅れている子プロセスによる処理時間を短縮することにより、並列ジョブ全体の処理時間の短縮を実現するものである。子プロセスでの処理時間の短縮は次のようにして行う。
子プロセスでは、計算処理を行った後、親プロセスへ計算結果を送付するための計算結果転送処理を行う。計算処理は計算機の性能により決定されるために、その処理時間の短縮は困難である。一方、計算結果転送処理では、最も処理の遅れている子プロセスの実行されている計算機の配置されたノードからの転送処理に優先度を設定することにより、計算結果転送処理の時間を短縮することができる。
本発明では、ノードからの転送処理がインタコネクションネットワーク経由で行われるため、インタコネクションネットワークに特定のノードからの転送処理を優先的に処理するリクエスト調停回路を設けることにより、当該ノードからの転送処理を優先的に処理することができる。
転送処理に優先度を設定しない場合には、インタコネクションネットワークでの転送受付けの待ち時間が発生し、転送に遅れが発生する。
優先度の設定は、最も処理の遅れている子プロセスからの転送処理に対してなされる。子プロセスに優先度を設定する時点では、当該子プロセスの親プロセスから分割された子プロセスは、最も処理の遅れている子プロセスを除いてすべて終了している。このため、最も処理の遅れている子プロセスに優先度を設定すると、当該子プロセスからの転送処理は、その時点で動作している別の親プロセスとその子プロセス間でなされる転送処理よりも優先して処理されることになる。
本発明では、最も処理の遅れている子プロセスからの計算結果転送処理時間を短縮するものであるが、これによって最も処理の遅れている子プロセスの計算結果転送処理が終了するまでの他の子プロセスでの待ち時間が短縮され、システム効率を高めることができる。
本発明の並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラムによれば、以下の効果が達成される。
計算機ジョブを分割して複数の子プロセスで並列処理を行う並列ジョブ全体のTATを短縮し、システム効率を高めることが可能となる。
その理由は、並列ジョブに分割された子プロセスの中で、最も処理の遅れている子プロセスからの転送処理を優先して処理することにより、最も処理の遅れている子プロセスのTATを短縮するためである。
以下、本発明の好適な実施例について図面を参照して詳細に説明する。
図1は、本実施例による並列処理システムの構成を示すブロック図である。
本実施例による並列処理システムは複数のノード1、2とインタコネクションネットワーク(IN)50による構成となっている。複数のノード1、2はいずれも同一の構造である。以下では必要な場合を除きノード1について説明を行うが、他のノードの場合も同様である。
図1を参照すると、本実施例によるノード1は1つ以上のセントラルプロセシングユニット(CPU)11と、メインメモリユニット(MMU)12と、リモートノードコントロールユニット(RCU)13による構成となっている。
MMU12は、ノード間転送を行うデータを格納することができる。
RCU13は、CPU11からノード間データ転送リクエストの通知を受けると、転送するデータをMMU12から読み出し、それをIN50に転送する。
本実施例によるIN50は、複数のノードからのデータ転送リクエストを受付け、ノード間のデータ転送をすることができる。
IN50は、リクエスト調停回路400と子プロセス数監視回路500を備えている。子プロセス数監視回路500には、GBC540が備えられている。リクエスト調停回路400と子プロセス数監視回路500の詳細については、それぞれ図9、図10の説明で述べる。
ここでは、並列ジョブの子プロセス数を保持するレジスタ群であるGBC540について説明を行う。なお、本実施例による並列処理システムでは、複数の親プロセスが動作していることを前提とする。
GBC540は、同期をとるための子プロセス数を複数保持するレジスタ群である。複数の子プロセス数は、それぞれの親プロセスに対応している。これらの複数の親プロセスに対応した複数の子プロセス数は、GBC540内で、それぞれ異なるGBC#のレジスタに保持されている。
GBC#は、GBC540内の各親プロセスに対応したレジスタのアドレスであるが、これを親プロセスの識別に使用することもできる。なお、計算機でプロセス番号を発行して、これを親プロセスの識別に使用することもできる。
各ノードからGBC値にアクセスする際は、GBC#を指定することによりノードの関係する並列ジョブの子プロセス数にアクセスすることができる。
以下では、必要な場合に、レジスタ群であるGBC540のそれぞれのレジスタに格納された値をGBC値、また後述するGBC#111のレジスタに格納された値をGBC#値、Thrhld112のレジスタに格納された値をThrhld値と略すことにする。この場合、GBC値は子プロセス数を、GBC#はアドレスを、またThrhld値は優先度設定の数値を表している。
各ノードは、親プロセスの場合に、最初にSGBCF(Init)命令を実行して、バリア同期に必要な子プロセス数をGBC540のGBC値に書き込むことができる。
各ノードの子プロセスは、それぞれが与えられた処理を実行し、終了するとSGBCF(dec)命令を実行して、GBC540に保持されているGBC値を1減算させることができる。
CPU11の内部に設置されたGBC#111は、レジスタ群であるGBC540のレジスタアドレスを保持するレジスタである。GBC#値により、並列ジョブの親プロセスを識別することができる。
Thrhld112は、プロセス優先度を設定する数値制御の効果を最大限引き出すためのプロセス毎に保持するレジスタである。Thrhld112には、優先度設定のための数値が保持され、その数値がGBC値よりも大きいか又はGBC値に等しいときに、優先度を設定することができる。
例えば、GBC値が1の場合、Thrhld値が1以上に対して、優先度が設定される。
GBC値が1の場合、すなわち最も遅い子プロセスのみが動作している場合に、当該プロセスに優先度をつけるためには、親プロセスはP通信による起動時にすべての子プロセスのThrhld値を全て1とすれば良い。
命令制御部113は、GBC#111、Thrhld112の値が、プロセス毎に保持されるような操作を行う。
命令制御部113は、また、MMU12に対してIN50へ送信される命令を発行する場合は、GBC#111、Thrhld112に保持されている値を添えて発行することができる。
以下ではIN50へ送信される命令をIN関連命令と略すことにする。
RCU13の内部には子プロセス数複製回路300を備えている。子プロセス数複製回路300は、子プロセス数監視回路500のGBC540に保持された子プロセス数の数値をコピーして保持する回路である。子プロセス数複製回路300については、次に説明する。
図2は、本実施例による子プロセス数複製回路300の回路構成を示す図である。
Thrhld301は、MMU12から送信されるIN50関連命令リクエストに付与されるThrhld値を保持するレジスタである。
CMD302は、MMU12から送信されるIN関連命令リクエストに付与される命令コマンドを保持するレジスタである。ここで、コマンド値は命令の種類別情報を示す。
CMD313は、CMD302の命令コマンドを保持するレジスタであり、その値はIN50に送られる。
GBC#303は、MMU12から送信されるIN関連命令リクエストに付与されるGBC#値、あるいはIN50から送信されるリクエストに付随するGBC#値を保持するレジスタである。
GBCコピ−309は、GBC540に保持されている、ノードの関連する親プロセスのGBC値をコピーして保持するレジスタである。
WE304は、GBCコピー309の書き込み指示信号(WE)を保持するレジスタである。
デクリメンタ305は、GBCコピ−309に保持されたGBC値をデクリメント(1を減算する)するためのものである。
制御回路306は、IN50から各ノードに対するGBC値の書き換え要求を受け付けて、GBCコピ−309の内容を書き換える制御を行う回路である。
セレクタ307は、IN50からのGBC値の書き換え要求のGBC値と、デクリメンタ305のGBC値を切り替えることができる。
WDR308は、GBCコピー309に書き込むデータを保持するレジスタである。
RDR310は、GBCコピー309から読み出したデータを保持するレジスタである。
比較器311は、RDR310のデータとThrhld301のデータを比較し、Thrhld301のデータ値がRDR310のデータ値よりも大きいか又は等しい場合に出力信号をアクティブにし、優先度が付加される。
Prio312は、比較器311の出力を保持するレジスタであり、その値はIN50へ送られる。
IN関連命令は、CPU11からMMU12とRCU13を経由して、IN50へと送られる。その際、CPU11から付与されるThrhld値、コマンド値、GBC#がそれぞれThrhld301、CMD302、GBC#303に格納される。
なお、子プロセス数複製回路300は、ノード1のRCU13内に設置されているが、ノード内であればRCU13の外部に設置することもできる。
次に、本実施例による動作について、図を用いて詳細に説明する。本発明の特徴をわかりやすく説明するため、最初に、従来技術によるバリア同期の動作を説明する。
図11は、従来技術における子プロセスでの並列ジョブの実行を説明するための図である。
親プロセスから6つの子プロセスにジョブが分割され、分割された子プロセスの終了をバリア同期によって親プロセスが知ることで、並列ジョブを終了する流れになっている。なお、処理の進行を説明するために、実行順に括弧内に番号を示してある。以下の説明では、文中の該当する部分に図の括弧内の番号を示した。
図11を参照すると、(1)親プロセスのノードでSGBCF(Init)命令を実行し、バリア同期に必要な子プロセス数をGBC540に書き込む。
次に、親プロセスは(2)ブロードキャストによるプロセッサ間通信(以下P通信と記載する)を発し、各ノードの子プロセスを起動する指示を出す。そして、同期が取れた状態を監視するために(3)ポーリングを開始する。
一方、各ノードの子プロセスは、それぞれの子プロセスに対して与えられた処理を実行し、(4)終了すると、ブロードキャストによるSGBCF(dec)命令を実行して、IN50に保持されているGBC値を1つずつ減少させる。
この命令がIN50に対して実行され、IN50のGBC540に格納されたGBC値が0になると、(5)子プロセスのバリア同期が完了する。
図12は、従来技術における並列ジョブの処理の流れを説明するための図である。なお、従来技術においても、並列処理システム構成は本実施例と同様であるため、図1の主要な部分を用いて説明する。
また、各ノードでの処理の進行を示すために、実行順に括弧内に番号を示してある。以下の説明では、文中の該当する部分に図の括弧内の番号を示した。
図12を参照すると、最初に、親プロセスのノードで(1)SGBCF(Init)命令を実行し、バリア同期に必要な子プロセス数をIN50内のGBC540に書き込む。
次に、(2)IN50は親プロセスのノードに対して、GBF(グローバルバリアフラグ)を初期化するよう指示する。GBFは、子プロセスによる並列ジョブが実行中かどうかを示すフラグである。
その後、更に親プロセスは(3)P通信(ブロードキャスト)によって各ノードの子プロセスを起動する指示を出す。
そして、同期が取れた状態を監視するために(4)ポーリングを開始する。
一方、各ノードの子プロセスは、(5)起動した後、それぞれの子プロセスで与えられた処理を実行し、終了すると(6)SGBCF(dec)命令を実行して、IN50に保持されているGBC値を1つずつ減少させる。
この命令がIN50に対して実行され、SGBCF(dec)命令の累積回数が子プロセス数に等しくなると、IN50のGBC540に格納されたGBC値が0になる。この時点で、子プロセスのバリア同期が取れたことになる。この時、(7)IN50は、親ノードのGBFを反転させるブロードキャスト(DEC)を出す。
親プロセスは、(8)ポーリングでGBFの状態を監視しているので、同期が完了したタイミングを知ることができる。
次に、従来技術と本実施例によるバリア同期の相違を説明する。
図3は、本実施例によるバリア同期と従来技術によるバリア同期との比較を説明するための図である。
図3を参照すると、従来技術では、6つの子プロセスであるP0〜P5に分割して並列化しているが、その中でP3が最も時間がかかってしまったとする。その場合、親プロセスはP3の終了まで待ち続けるので、この最も遅いP3に全体のTATが律速される。
本実施例では、P3のTAT短縮を優先して考えるために、並列ジョブのTATがその分短縮され、システム全体の効率性が高まる。
次に、本実施例によるバリア同期の説明に先立ち、本実施例による並列処理システムの概略動作及びIN50の動作について述べる。
図4は、本実施例による並列処理システムの概略動作を説明するためのフローチャートである。
最初に、親プロセスによりバリア同期に必要な子プロセス数がGBC540に記入される(ステップ201)。
次に、IN50から各ノードに対してGBCコピー309を初期化するよう指示が行われる。初期化により、バリア同期に必要な子プロセス数がGBCコピー309に書き込まれる(ステップ202)。
次に、親プロセスからP通で子プロセスに起動が指示される。その際、親プロセス識別のためのGBC#値、優先度設定のためのThrhld値が添付される(ステップ203)。
起動した子プロセスの内、終了した子プロセスからIN50のGBC値を1減らすよう指示がなされる(ステップ204)。
GBC値を1減らす指示を受けたIN50は、各ノードに対してGBCコピー値を1減らすよう指示する(ステップ205)。
GBC値が1よりも大きい場合は、複数の子プロセスが動作しているため、ステップ204に戻る(ステップ206)。
GBC540の値が1に等しい場合は、最も遅れた子プロセスのみが動作しているため、次のステップに進む(ステップ206)。
最も遅れた子プロセスは、GBCコピー309のGBC値を参照することにより、最も遅れている子プロセスであることを検出する(ステップ207)。
最も遅れていることを認識した子プロセスは、計算結果転送処理の直前にIN命令を発行する。その際、GBC#値、Thrhld値を添付する(ステップ208)。
子プロセスより優先度設定のIN命令を受けると、IN50のリクエスト調停回路は、最も遅れた子プロセスの処理されているノードからの転送処理を優先して処理する(ステップ209)。
最も遅れた子プロセスの転送処理が終了すると、バリア同期が完了する(ステップ210)。
以上に、本実施例による並列処理システムの概略動作を説明した。
次に、本実施例による並列処理システム内のデータ転送を行うIN50の概略動作について説明する。
図5は、本実施例によるIN50の動作を説明するためのフローチャートである。
最初に、親プロセスによりバリア同期に必要な子プロセス数がGBC540に記入される(ステップ601)。
次に、各ノードに対してGBCコピー309を初期化するよう指示をする。初期化により、バリア同期に必要な子プロセス数がGBCコピー309に書き込まれる(ステップ602)。
次に、親プロセスからP通で子プロセスに起動が指示され、並列ジョブが開始される。一部の子プロセスが終了すると、子プロセスからGBC値を1減らすよう指示を受ける。
終了した子プロセスからGBC値を1減らすよう指示を受けると、GBC値を書き換え、また各ノードに対してGBCコピー値を1減らすよう指示する(ステップ603)。
次に、GBC値が減少して1に等しくなると、最も遅れた子プロセスで最も遅れていることが検出される。
最も遅れていることを認識した子プロセスから、計算結果転送処理の直前にIN命令の発行を受ける。その際、親プロセス識別のためのGBC#値、優先度設定のためのThrhld値が添付される(ステップ604)。
子プロセスより優先度設定のIN命令を受けると、リクエスト調停回路は、最も遅れた子プロセスの処理されているノードからの転送処理を優先して処理する(ステップ605)。
最も遅れた子プロセスの転送処理が終了すると、バリア同期が完了する。
以上に、本実施例による並列処理システムの概略動作及び並列処理システム内のデータ転送を行うIN50の概略動作について説明した。
次に、本実施例によるバリア同期の動作を詳細に説明する。
図6は、本実施例による子プロセスでの並列ジョブの実行を説明するための図である。
図6を参照すると、親プロセスから6つの子プロセスに処理が分割され、それら子プロセスの終了をバリア同期によって親プロセスが知ることで、並列ジョブを終了する流れになっている。
このような並列ジョブの実行の流れは、図11に示した従来技術における子プロセスでの並列ジョブの実行と一致している。但し、本実施例では子プロセス終了前に計算結果転送処理を行っている点が異なる。
図7は、本実施例による並列ジョブの処理の流れを説明するための図である。
なお、各ノードでの処理の進行を示すために、実行順に括弧内に番号を示した。以下の説明では、文中の該当する部分に図の括弧内の番号を示した。
図7を参照すると、最初に、親プロセスのノードで(1)SGBCF(Init)命令を親プロセスが実行することで、バリア同期に必要な子プロセス数をGBC540のGBC値に書き込む。
次に、(2)GBC540に子プロセス数が書き込まれたことを認識したIN50は、各ノードに対してGBCのコピーを初期化するよう、ブロードキャストする。このブロードキャストにより、各ノードの子プロセス数複製回路300のGBCコピー309に子プロセス数が書き込まれる。
次に、親プロセスは、(3)P通信によって各ノードの子プロセスを起動する指示を出す。
そして、バリア同期が完了した状態を監視するために(4)ポーリングを開始する。
一方、(5)各子プロセスは起動後それぞれが与えられた処理を実行し、終了すると(6)SGBCF(dec)命令を実行して、IN50に保持されているGBC値を1つずつ減少させる。
この命令を受け取ったIN50は、(7)各ノードに対してGBCコピーのDEC要求(GBCコピー値を1減算する要求)をブロードキャストする。この処理によって、各ノード間でのGBCコピー値の一致が保障される。
この命令がIN50に対して子プロセスの数と同じ回数実行されると、GBC540のGBC値が0になる。この状態をもって、(8)子プロセスのバリア同期が完了したことになる。
本実施例によれば、各ノードでGBC値のコピーを有しているため、図12に示した従来技術とは異なり、IN50からバリア同期が完了したことをブロードキャストする必要はない。
また、親プロセスのノードは、ポーリングでGBCコピー309の状態を監視しているので同期が完了したことを知ることができる。
各子プロセスは、割り当てられた計算処理を終了すると、その計算結果を親プロセスに返すためにノード間データ転送を行う。そのデータを受け取った親プロセスは並列ジョブ全体の結果を集計する。
本実施例では、この最後のノード間データ転送の性能向上を最も遅れている子プロセスで実現することによって、並列ジョブ全体のTAT短縮を図るものである。
以上説明したように、本発明のシステムは、複数のノード1、2がIN50を介して相互に接続され、ノードに備える計算機で実行される親プロセスにより計算機ジョブを並列ジョブに分割し、並列ジョブを複数のノードに配置された複数の計算機による複数の子プロセスで並列処理する並列処理システムであって、子プロセスの中で最も処理の遅れている子プロセスからの転送処理を、インタコネクションネットワークで他の転送処理よりも優先して処理することを特徴とする。
複数の子プロセスで実行される処理は計算処理と計算結果転送処理で構成され、計算結果転送処理は計算処理の終了後になされる。このため、優先して処理される子プロセスからの転送処理は、計算結果転送処理となる。
また、当該他の転送処理は、当該複数の子プロセスからの転送処理ではなく、当該親プロセスとは別の親プロセスとその子プロセスとの間でなされる転送処理となる。このようになるのは以下の理由による。
最も処理の遅れている子プロセスに優先度を設定する時点では、当該子プロセスの親プロセスから分割された子プロセスは、最も処理の遅れている子プロセスを除いてすべて終了している。このため、最も処理の遅れている子プロセスに優先度を設定すると、当該子プロセスからの転送処理は、その時点で動作している別の親プロセスとその子プロセス間でなされる転送処理よりも優先して処理されることになる。
図6を参照すると、最も遅れている子プロセスはP3である。P3に次いで遅いプロセスであるP1 が終了した後は、各ノードのコピーGBC値が1となる。このため、次に説明するように、子プロセスP3はP3のプロセスが最も遅いことを認識することができる。
次に、最も遅れている子プロセスの動作について詳細に説明する。
図8は、本実施例による子プロセスの動作を示す図である。
なお、以下の説明は複数の子プロセスを複数のノードで処理する場合の例であるが、ノード内の主要な部分の符号については、図1に示したノード1の符号を参照して説明を行う。また、必要に応じて、図2の主要な部分を参照する。
図8を参照すると、最初に、P通信による起動指示が親プロセスのノードから送られる。その際、親プロセスの指示でGBC#値が親プロセスを識別するため数値として、またthrhld値がノード間転送の優先度を設定する数値として子プロセスに対して渡される。
その後、それぞれの子プロセスは、これらの値をプロセススイッチ毎にsave/restore(セーブ/リストア)という処理を行う。この処理を行うことにより、GBC#値とthrhld値は、別のプロセスを実行する際にも保持される。
そして、子プロセスが計算結果転送処理の直前に、命令制御部113からIN50関連命令が発行される。
その際、命令制御部113は、GBC#111とThrhld112からそれぞれGBC#値とthrhld値の付与を受け、GBC#値を使って子プロセス数複製回路300のGBCコピー309を参照する。
この際、GBC値が1である場合には、そのプロセスが最も遅いことを認識して、命令制御部113から、GBC#値、Thrhld値がIN50に転送する。
その際、子プロセス数複製回路300の比較器311で、GBC#値とThrhld値の比較がなされ、GBC#値、Thrhld値が共に1に設定されている場合には、優先度が設定される。優先度情報はPrio312に格納され、IN50への命令コマンドに添えて、IN50へ送信される。
IN50はこれらの情報を認識して、優先度のついたリクエストのTATを他に比べて優先的に行うよう制御する。
最も遅れた子プロセスの処理が終わると、当該子プロセスはSGBCF(des)命令を発行してプロセスを終了する。
以上のようにして、最も遅れた子プロセスの実行されている計算機の配置されたノードからの転送処理に優先度が付与され、IN50での転送処理が優先的に行われる。
次に、転送処理への優先度の設定について、詳細に説明する。
図6に示した並列ジョブを実行する際の、ノードからの転送処理への優先度の設定について説明する。なお必要に応じて、図1、図2の主要な部分を参照する。
GBC#値とthrhld値は、命令制御部113によって、タスク切り替えの際にもsave/restoreで保持され、その値は子プロセスが実行状態である間は、GBC#111とThrhld112に保持されている。
CPU11から発行されるIN関連命令には、GBC#値とThrhld値が付与され、MMU12を経由してRCU13まで送信される。RCU13の子プロセス数複製回路300はIN関連命令を受け取って、GBC#値とThrhld値をそれぞれThrhld301とGBC#303に保持する。そして、GBC#を親プロセス識別に用いて、GBCコピ−309からGBC値を読み出し、RDR310に格納する。
RDR310に格納されたGBC値は、同じバリア内で未だ終了していない子プロセスの数を表す。
その数が、Thrhld値より小さい又はThrhld値に等しい場合は、子プロセス自身が遅い方であると判断することになる。
Thrhld値を1に固定すると、最も遅い子プロセスのみに優先度が設定される。優先度の設定は、Prio312に格納され、CMD302に保持されたIN50への命令コマンドに添えて、IN50へ送られる。
以上により、転送処理に優先度が設定され、IN50へ送信される。
次に、このようにして設定された優先度に基づくIN50によるノード間転送処理の制御について説明する。
図9は、本実施例によるリクエスト調停回路400の回路構成を示す図である。
リクエスト調停回路400は、各ノードからIN50へ送信されたリクエストから、優先度に基づいてノードを選択する回路である。
INU(Input Unit)411、412は、各ノードからのリクエストをIN50で認識できる形に変換するユニットである。INU(Input Unit)411、412は、バッファリングする機能を有する。
OU(Output Unit)421、422は、それぞれのノードへのリプライをノード側で認識できる形に変換するユニットである。OU(Output Unit)421、422は、バッファリングする機能を有する。
ORゲート430は、全ノードからの優先度信号のORをとることができる。
優先度エンコーダ431は、全ノードからのリクエスト信号の中から最も若番の番号(INU番号の小さい)を送出することができる。
ORゲート432は、マスク後のリクエスト信号のORをとることができる。
セレクタ433は、マスクしたリクエスト信号群とマスクしないリクエスト信号群を切り替えることができる。
リーディング0回路(Leading0回路)434は、調停権を与えるノード番号を選択する回路である。リーディング0回路434は、各ノードからのリクエスト信号群データの最若番bitからの0の数を用いて調停選択ノード番号にするための回路である。
フラグ435は、リクエストが来た状態を保持することができる。
セレクタ436は、優先度付リクエストの場合は、優先度エンコーダ439出力とすることができる。
レジスタ437は、調停で選択されたノード番号を格納する。
セレクタ438は、調停で選択されたリクエストのコマンドを選択する。
マスク生成回路439は、ラウンドロビン方式の調停回路を実現するために後続ノード番号のリクエストを優先させるためにある。
デコーダ440は、調停で選択されたリクエストを送出したことをINU411、412に対して示す、リクエストsel信号を送出する。
IN命令リクエスト制御部441は、調停で選択されたリクエストの処理を行う。
ORゲート442は、全ノードからのリクエスト信号のORをとる。
次に、図9を用いてIN50のリクエスト調停回路の動作について説明する。なお、必要に応じて図1の主要な部分を参照する。
図9を参照すると、最初に、各ノ−ドのRCUからINU411、412へ、優先度付のリクエストを含んだリクエストが送られてくる。
優先度付のリクエストはORゲート430で認識され、リクエストを受付けたノード番号(以下受付けノード番号と略す)を優先度エンコーダ431で決定する。
なお、優先度付リクエストを受信した場合は、若番ノード(INU番号の小さいノード)が選択される。この場合は、セレクタ436を経由して、レジスタ437にその受付ノード番号が格納される。同時にリクエストの有効ビット情報もレジスタ435に格納される。その情報に基づき、デコーダ440によって、INU411、412にリクエストを受付けたことを伝えるリクエストsel信号を生成する。
以上のようにして、ノードからの転送処理に優先度が設定される。
次に、IN50のGBC値を各ノードへコピーする動作について説明する。
図10は、本実施例による子プロセス数監視回路500の回路構成を示す図である。なお、必要に応じて図1の主要な部分を参照する。
IN50に備えられた子プロセス数監視回路500は、各ノードのRCU回路に備えられたGBCコピー309に保持されたGBC値を、IN50のGBC540に保持されたGBC値と等しくするための回路である。
INU(Input Unit)511、512は、ノードからのリクエストを、IN50で認識できる形に変換するユニットである。INU511、512は、バッファリングの機能も有する。
OU(Output Unit)521、522は、ノードへのリプライをノード側で認識できる形に変換するユニットである。OU521、522はバッファリングの機能も有する。
GBCリクエスト調停回路530は、全ノードからのGBCアクセス命令の調停動作を行うことができる。GBCリクエスト調停回路530は、リクエスト調停回路400とは異なる。
V531は、GBCアクセス命令の有効ビットV(リクエストが有効であることを示すための信号)を保持するレジスタである。
CMD532は、GBCアクセス命令のコマンドを保持するレジスタである。
GBC#533は、GBCアクセス命令のGBC#値を保持するレジスタである。
制御回路534は、GBCへの書き込み動作を制御することができる。
WE535は、GBCへの書き込みイネーブル信号を保持するレジスタである。
デコーダ536は、各ノードへのブロードキャストを発生させる時の有効信号を生成する。
デクリメンタ537は、各ノードからのSGBCF(dec)命令を受けると、GBCデータから1を減算する。
セレクタ538は、リクエストに乗ってきたデータか、各ノードからの命令によりGBCデータから1を減算したデータかを選択することができる。
WDR539は、GBC540への書き込みデータを保持するレジスタである。
GBC540は、図1の説明で述べたが、同期をとるためのGBC値を保持するレジスタ群である。GBC値は、各親プロセスに対応しており、GBC540には複数の親プロセスに対応したGBC値が保持されている。これらの複数のGBC値は、それぞれ異なるGBC#のレジスタに保持されている。
RDR541は、GBC540からの読み出しデータを保持するレジスタである。
次に、GBCのコピーをIN50のGBC540と等しく保つ動作について、図10を用いて説明する。なお、必要に応じて図1、図2の主要な部分を参照する。
最初に、ノード1のRCU13よりINU511、512に対してSGBCF(Init)が送信された場合について説明する。
複数のノードからリクエストが送信された場合は、GBCリクエスト調停回路530によって、その中から任意の1つが選択される。
選択されたリクエストのコマンド、GBC#、書き込みデータは、それぞれ、CMD532、GBC#533、WDR539に格納され、V531が点灯する(有効信号であることを示す)。
更にWE535が点灯し、GBC540に、データが書き込まれる。
次に、デコーダ538によって、全ノードへのブロードキャストを実行するために、OU521、522への有効信号が点灯する。
またコマンド、GBC#、ライトデータ(WDRに保持されたデータ)も、OU521、522に対して同じものが送られる。
OU521、522からは、全ノードに対してSGBCF(Init)がブロードキャストされる。
SGBCF(dec)の場合も、動作は似ている。ブロードキャスト時に減算命令であることだけを伝えれば、RCU13側のGBCコピー309を1減算する。
IN50内GBC540の減算は、一旦RDR541に古いGBC値を読みだした後、デクリメンタ537で古いGBC値から1を減算した値をWDR539に取り込んで、書き込む。
以上説明した実施例によれば、計算機ジョブを分割して複数の子プロセスで並列処理を行う並列ジョブのTATを短縮できる。その結果、計算資源の有効利用がなされ、システム効率を高めることが可能となる。
TATの短縮は、並列ジョブに分割された子プロセスの処理を計算処理と計算結果転送処理で構成し、最も処理の遅れている子プロセスからの計算結果転送処理の短縮によりなされる。計算結果転送処理の短縮は、IN50で最も処理の遅れている子プロセスからの転送処理を優先して処理することにより、実現する。また、転送処理への優先度設定は、子プロセスが最も処理の遅れていることを検出すると、計算結果転送処理の直前に子プロセスから優先度設定の命令をIN50へ送信することにより行われる。
上記のように最も処理の遅れている子プロセスの転送処理時間が短縮され、並列ジョブ全体のTATを短縮することができるものである。
本発明のIN50は、その動作をハードウェア的に実現することは勿論として、上記した各手段を実行するネットワーク制御プログラム(アプリケーション)100をコンピュータ処理装置であるIN50で実行することにより、ソフトウェア的に実現することができる。このネットワーク制御プログラム100は、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体からIN50にロードされ、その動作を制御することにより、上述した各機能を実現する。
以上好ましい実施例をあげて本発明を説明したが、本発明は必ずしも、上記実施例に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
本発明の実施例による並列処理システムの構成を示すブロック図である。 本発明の実施例による子プロセス数複製回路の回路構成を示す図である。 本発明の実施例によるバリア同期と従来技術によるバリア同期との比較を説明するための図である。 本発明の実施例による並列処理システムの概略動作を説明するためのフローチャートである。 本発明の実施例によるINの動作を説明するためのフローチャートである。 本発明の実施例による子プロセスでの並列ジョブの実行を説明するための図である。 本発明の実施例による並列ジョブの処理の流れを説明するための図である。 本発明の実施例による子プロセスの動作を示す図である。 本発明の実施例によるリクエスト調停回路の回路構成を示す図である。 本発明の実施例による子プロセス数監視回路の回路構成を示す図である。 従来技術における子プロセスでの並列ジョブの実行を説明するための図である。 従来技術における並列ジョブの処理の流れを説明するための図である。
符号の説明
1、2:ノード
11、21:CPU
12、22:メインメモリユニット(MMU)
13、23:ノードユニット(RCU)
50:インタコネクションネットワーク(IN)
100:ネットワーク制御プログラム
111:レジスタ(名称:GBC#)
112:レジスタ(名称:Thrhld)
113:命令制御部
150:ノードプログラム
300、300A:子プロセス数複製回路
301:レジスタ(名称:Thrhld)
302:レジスタ(名称:CMD)
303:セレクタ付レジスタ(名称:GBC#)
304:レジスタ(名称:WE)
305:デクリメンタ
306:制御回路
307:セレクタ
308:レジスタ(名称:WDR)
309:レジスタ(名称:GBCコピー)
310:レジスタ(名称:RDR)
311:比較器
312:レジスタ(名称:Prio)
313:レジスタ(名称:CMD)
400:リクエスト調停回路
411、412:インプットユニット(INU)
421、422:アウトプットユニット(OU)
430、432:ORゲート
431:優先度エンコーダ
433、436、438:セレクタ
434:リーディング0回路( Leading0回路 )
435:フラグ
437:レジスタ(名称:ND#)
439:マスク生成回路
440:デコーダ
441:IN命令リクエスト制御部
451、452:ANDゲート
500:子プロセス数監視回路
511、512:インプットユニット(INU)
521、522:アウトプットユニット(OU)
530:GBCリクエスト調停回路
531:レジスタ(名称:V)
532:レジスタ(名称:CMD)
533:レジスタ(名称:CBC#)
534:制御回路
535:レジスタ(名称:WE)
536:デコーダ
537:デクリメンタ
538:セレクタ
539:レジスタ(名称:WDR)
540:レジスタ(名称:GBC)
541:レジスタ(名称:WDR)

Claims (30)

  1. 複数のノードがインタコネクションネットワークを介して相互に接続され、前記ノードに配置された計算機で実行される親プロセスにより計算機ジョブを並列ジョブに分割し、前記並列ジョブを複数のノードに配置された前記複数の計算機による複数の子プロセスで処理する並列処理システムであって、
    前記インタコネクションネットワークは、
    実行中の子プロセス数を監視する子プロセス数監視回路と、
    前記子プロセスの中で処理の最も遅れている子プロセスからの転送処理の命令を受けた場合に、前記子プロセスからの転送処理を、他の転送処理よりも優先して処理するリクエスト調停回路を備え、
    前記ノードは、
    前記インタコネクションネットワークの前記子プロセス数監視回路が保持する実行中の子プロセス数をコピーして保持する子プロセス数複製回路を備え、
    前記ノードの前記子プロセス数複製回路は、前記子プロセスを実行するノードが最も処理の遅れている子プロセスを実行することを検出した場合に、前記子プロセスからの転送処理の命令に優先度情報を設定して前記インタコネクションネットワークの前記リクエスト調停回路に送信する手段を有し、
    前記リクエスト調停回路は、前記転送処理の命令に設定された前記優先度情報に基づいて前記ノードからの転送処理を優先して処理する制御手段を備えることを特徴とする並列処理システム。
  2. 前記複数の子プロセスで実行される処理が計算処理と計算結果転送処理で構成され、前記計算結果転送処理は前記計算処理の終了後になされ、前記子プロセスからの転送処理が前記計算結果転送処理であることを特徴とする請求項1に記載の並列処理システム。
  3. 前記他の転送処理は、前記親プロセスとは別の親プロセスと当該別の親プロセスの子プロセスとの間でなされる転送処理であることを特徴とする請求項2に記載の並列処理システム。
  4. 前記並列ジョブ複数の子プロセスによる処理を開始する際、親プロセスを実行する前記ノードから送信される前記親プロセスを識別する情報転送処理の前記優先度情報を、各子プロセスを実行する前記ノードの前記計算機が保持することを特徴とする請求項1から請求項3の何れか1項に記載の並列処理システム。
  5. 前記親プロセスを識別する情報は、前記子プロセス数が格納された前記レジスタのアドレス情報又は前記親プロセスを実行している計算機で発行したプロセス番号であることを特徴とする請求項4に記載の並列処理システム。
  6. 前記子プロセスを実行するノードは、前記子プロセスで前記並列ジョブの処理を一時中断して別のプロセスを処理する際、前記親プロセスを識別する情報と前記優先度情報をセーブし、前記別のプロセスが終了し前記並列ジョブの処理を再開する際に、前記情報と前記数値情報のリストアを行うことを特徴とする請求項5に記載の並列処理システム。
  7. 前記インタコネクションネットワークの前記子プロセス数監視回路が、前記親プロセスを実行するノードから送信されるバリア同期に必要な子プロセス数を書き込むレジスタを備えることを特徴とする請求項1から請求項6のいずれか1項に記載の並列処理システム。
  8. 前記インタコネクションネットワークの前記子プロセス数監視回路は、前記レジスタに保持した前記バリア同期に必要な子プロセス数を、前記並列ジョブを実行する子プロセスを処理する各前記ノードにブロードキャストにより送信する手段を備え、前記ノードの前記子プロセス数複製回路は、前記インタコネクションネットワークからの前記バリア同期に必要な子プロセス数を前記レジスタに書き込む手段を備えることを特徴とする請求項7に記載の並列処理システム。
  9. 前記子プロセスを実行する前記ノードの子プロセス数複製回路は、前記子プロセスの処理が終了すると、前記インタコネクションネットワークの前記子プロセス数監視回路へ、前記子プロセス数監視回路のレジスタに保持している子プロセス数から1を減算する指示を送信する手段を備えることを特徴とする請求項8に記載の並列処理システム。
  10. 前記インタコネクションネットワークの前記子プロセス数監視回路は、前記子プロセス数から1を減算する指示を受信すると、
    前記レジスタに保持している子プロセス数から1を減算する手段と、
    子プロセスを実行する各前記ノードに対し前記子プロセス数複製回路のレジスタに保持する子プロセス数から1を減算する指示を送信する手段を備え、
    前記子プロセス数複製回路は、前記子プロセス数監視回路からの減算の指示により前記レジスタの子プロセス数から1を減算する手段を備えることを特徴とする請求項9に記載の並列処理システム。
  11. 前記子プロセスを実行するノードの計算機は、前記子プロセス数複製回路の前記レジスタを参照して、実行中の子プロセス数が1である場合に、最も処理の遅れている子プロセスを実行することを検出することを特徴とする請求項10に記載の並列処理システム。
  12. 前記最も処理の遅れている子プロセスで計算結果転送処理を開始する直前に、前記最も処理の遅れている子プロセスを実行する前記ノードの前記子プロセス数複製回路から前記親プロセスを識別するための情報と転送処理の前記優先度情報を設定した前記転送処理の命令を受けると、前記インタコネクションネットワークの前記リクエスト調停回路は、前記制御手段により前記ノードからの転送処理を優先して処理することを特徴とする請求項11に記載の並列処理システム。
  13. 計算機ジョブを並列ジョブに分割する親プロセスを実行する計算機の配置されたノードと、前記並列ジョブを処理する複数の子プロセスを実行する複数の計算機の配置された複数のノードに接続されたインタコネクションネットワークであって、
    実行中の子プロセス数を監視する子プロセス数監視回路と、
    前記子プロセスの中で処理の最も遅れている子プロセスからの転送処理の命令を受けた場合に、前記子プロセスからの転送処理を、他の転送処理よりも優先して処理するリクエスト調停回路を備え、
    前記リクエスト調停回路は、
    最も処理の遅れている子プロセスの実行されている計算機の配置されたノードから優先度情報を設定した前記子プロセスからの転送処理の命令を受信すると、前記転送処理の命令に設定された前記優先度情報に基づいて前記ノードからの転送処理を優先して処理する制御手段を備えることを特徴とするインタコネクションネットワーク。
  14. 前記複数の子プロセスで実行される処理が計算処理と計算結果転送処理で構成され、前記計算結果転送処理は前記計算処理の終了後になされ、前記子プロセスからの転送処理が前記計算結果転送処理であることを特徴とする請求項13に記載のインタコネクションネットワーク。
  15. 前記他の転送処理は、前記親プロセスとは別の親プロセスと当該別の親プロセスの子プロセスとの間でなされる転送処理であることを特徴とする請求項14に記載のインタコネクションネットワーク。
  16. 前記子プロセス数監視回路は、前記親プロセスを実行するノードから送信されるバリア同期に必要な子プロセス数を書き込むレジスタを備えることを特徴とする請求項15に記載のインタコネクションネットワーク。
  17. 前記子プロセス数監視回路は、前記レジスタに保持した前記バリア同期に必要な子プロセス数を、前記並列ジョブを実行する子プロセスを処理する各前記ノードに備えられた実行中の子プロセス数を保持する子プロセス数複製回路へ、ブロードキャストにより送信する手段を備えることを特徴とする請求項16に記載のインタコネクションネットワーク。
  18. 前記子プロセス数監視回路の備えるレジスタに保持する子プロセス数から1を減算する指示を、前記子プロセスの処理が終了した前記ノードの前記子プロセス数複製回路から受信すると、各子プロセスを実行する各前記ノードに対し前記子プロセス数複製回路の備えるレジスタに保持されている子プロセス数から1を減算する指示を送信することを特徴とする請求項17に記載のインタコネクションネットワーク。
  19. 前記リクエスト調停回路は、前記複数の計算機の配置されたノードからの入力信号のオア出力と前記入力信号の優先度エンコーダ出力とをセレクタに入力する回路を備えることを特徴とする請求項18に記載のインタコネクションネットワーク。
  20. 前記最も処理の遅れている子プロセスの実行されている計算機の配置されたノードから前記親プロセスを識別するための情報と転送処理の前記優先度情報を設定した前記転送処理の命令を受信すると、前記リクエスト調停回路は、前記制御手段により前記ノードからの転送処理を優先して処理することを特徴とする請求項19に記載のインタコネクションネットワーク。
  21. 親プロセスにより複数の子プロセスに分割された並列ジョブをインタコネクションネットワーク経由で受信し、前記並列ジョブを実行する計算機が配置され、前記子プロセスの中で処理の遅れている子プロセスからの転送処理を、前記インタコネクションネットワークにより優先して処理する並列処理システムを構成するノードであって、
    前記インタコネクションネットワークの子プロセス数監視回路が保持する実行中の子プロセス数をコピーして保持する子プロセス数複製回路を備え、
    前記ノードの前記子プロセス数複製回路は、前記子プロセスを実行するノードが最も処理の遅れている子プロセスを実行することを検出した場合に、前記子プロセスからの転送処理の命令に優先度情報を設定し、前記転送処理の命令を、前記優先度情報に基づいて前記子プロセスからの転送処理を他の転送処理よりも優先して処理する前記インタコネクションネットワークのリクエスト調停回路に送信する手段を有することを特徴とするノード。
  22. 前記子プロセス数複製回路は、前記インタコネクションネットワークの前記子プロセス数監視回路から受信したバリア同期に必要な子プロセス数を書き込むレジスタを備えることを特徴とする請求項21に記載のノード。
  23. 前記子プロセス数複製回路は、前記レジスタに書き込まれた子プロセス数から1を減算する命令を、前記子プロセス数監視回路から受信すると、前記レジスタの子プロセス数から1を減算する手段を備えることを特徴とする請求項22に記載のノード。
  24. 前記子プロセスを実行する計算機は、前記子プロセス数複製回路の備えるレジスタを参照して、実行中の子プロセス数が1である場合に、最も処理の遅れている子プロセスを実行することを検出することを特徴とする請求項23に記載のノード。
  25. 前記子プロセス数複製回路は、前記最も処理の遅れている子プロセスから受信した前記親プロセスを識別するための情報と前記優先度情報を、前記インタコネクションネットワークの前記リクエスト調停回路へ送信する手段を備えることを特徴とする請求項24に記載のノード。
  26. 前記子プロセス数複製回路は、前記優先度情報と前記子プロセス数との比較を行う比較器を備え、前記優先度情報が前記子プロセス数よりも大きいか又は前記子プロセス数に等しい場合に、前記転送処理に前記優先度情報を設定することを特徴とする請求項25に記載のノード。
  27. 計算機ジョブを並列ジョブに分割する親プロセスを実行する計算機の配置されたノードと、前記並列ジョブを処理する複数の子プロセスを実行する計算機の配置された複数のノードに接続されたインタコネクションネットワーク上で実行されるネットワーク制御プログラムであって、
    コンピュータに、
    実行中の子プロセス数を監視する子プロセス数監視処理と、
    前記子プロセスの中で処理の最も遅れている子プロセスからの転送処理の命令を受けた場合に、前記子プロセスからの転送処理を、他の転送処理よりも優先して処理するリクエスト調停処理を実行させ、
    前記リクエスト調停処理が、
    最も処理の遅れている子プロセスを実行することを検出した前記子プロセスを実行するノードから送信される、優先度情報を設定した前記子プロセスからの転送処理の命令を受信し、前記転送処理の命令に設定された前記優先度情報に基づいて前記ノードからの転送処理を優先して処理することを特徴とするネットワーク制御プログラム。
  28. 前記子プロセス数監視処理により、前記親プロセスからバリア同期に必要な子プロセス数情報を受信すると、前記バリア同期に必要な子プロセス数をレジスタに書き込むことを特徴とする請求項27に記載のネットワーク制御プログラム。
  29. 前記子プロセス数監視処理により、前記レジスタに保持した前記バリア同期に必要な子プロセス数を、前記並列ジョブを実行する子プロセスを処理する各前記ノードに備えられた実行中の子プロセス数を保持する子プロセス数複製回路へ、ブロードキャストにより送信することを特徴とする請求項28に記載のネットワーク制御プログラム。
  30. 前記子プロセス数監視処理により、前記レジスタに保持する子プロセス数から1を減算する指示を、前記子プロセスの処理が終了した前記ノードの前記子プロセス数複製回路から受信すると、各子プロセスを実行する各前記ノードに対し前記子プロセス数複製回路の備えるレジスタに保持されている子プロセス数から1を減算する指示を送信することを特徴とする請求項29に記載のネットワーク制御プログラム。
JP2004269495A 2004-09-16 2004-09-16 並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム Expired - Fee Related JP4168281B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004269495A JP4168281B2 (ja) 2004-09-16 2004-09-16 並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム
US11/227,107 US20060059489A1 (en) 2004-09-16 2005-09-16 Parallel processing system, interconnection network, node and network control method, and program therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004269495A JP4168281B2 (ja) 2004-09-16 2004-09-16 並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム

Publications (2)

Publication Number Publication Date
JP2006085428A JP2006085428A (ja) 2006-03-30
JP4168281B2 true JP4168281B2 (ja) 2008-10-22

Family

ID=36035555

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004269495A Expired - Fee Related JP4168281B2 (ja) 2004-09-16 2004-09-16 並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム

Country Status (2)

Country Link
US (1) US20060059489A1 (ja)
JP (1) JP4168281B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4921054B2 (ja) * 2006-07-07 2012-04-18 株式会社日立製作所 負荷分散制御システム及び負荷分散制御方法
JP5061671B2 (ja) * 2007-03-15 2012-10-31 富士通株式会社 演算プログラム、分散処理プログラム、分散処理システムおよび演算処理方法
WO2011058640A1 (ja) * 2009-11-12 2011-05-19 富士通株式会社 並列計算用の通信方法、情報処理装置およびプログラム
US20110225297A1 (en) 2010-03-11 2011-09-15 International Business Machines Corporation Controlling Access To A Resource In A Distributed Computing System With A Distributed Access Request Queue
US9348661B2 (en) * 2010-03-11 2016-05-24 International Business Machines Corporation Assigning a unique identifier to a communicator
JP5549574B2 (ja) * 2010-12-17 2014-07-16 富士通株式会社 並列計算機システム、同期装置、並列計算機システムの制御方法
JP5549694B2 (ja) * 2012-02-23 2014-07-16 日本電気株式会社 超並列計算機、同期方法、同期プログラム
EP2937783B1 (en) * 2014-04-24 2018-08-15 Fujitsu Limited A synchronisation method
US10514993B2 (en) * 2017-02-14 2019-12-24 Google Llc Analyzing large-scale data processing jobs
CN109388489A (zh) * 2017-08-03 2019-02-26 成都蓝盾网信科技有限公司 一种基于单导系统的多子进程以及进程信号处理的高容错高稳定的技术框架
JP7013294B2 (ja) * 2018-03-19 2022-01-31 キオクシア株式会社 メモリシステム
CN108920260B (zh) * 2018-05-16 2021-11-26 成都淞幸科技有限责任公司 一种异构系统的交互方法及其装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682480A (en) * 1994-08-15 1997-10-28 Hitachi, Ltd. Parallel computer system for performing barrier synchronization by transferring the synchronization packet through a path which bypasses the packet buffer in response to an interrupt
US5721921A (en) * 1995-05-25 1998-02-24 Cray Research, Inc. Barrier and eureka synchronization architecture for multiprocessors
JP3537356B2 (ja) * 1998-12-09 2004-06-14 株式会社日立製作所 ジョブシステムにおける遅延要因解析方法
US6389449B1 (en) * 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US7103628B2 (en) * 2002-06-20 2006-09-05 Jp Morgan Chase & Co. System and method for dividing computations
US6988139B1 (en) * 2002-04-26 2006-01-17 Microsoft Corporation Distributed computing of a job corresponding to a plurality of predefined tasks
JP4133068B2 (ja) * 2002-07-23 2008-08-13 株式会社日立製作所 計算機システム
US7143412B2 (en) * 2002-07-25 2006-11-28 Hewlett-Packard Development Company, L.P. Method and apparatus for optimizing performance in a multi-processing system
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
US8055753B2 (en) * 2003-06-11 2011-11-08 International Business Machines Corporation Peer to peer job monitoring and control in grid computing systems
FR2873830B1 (fr) * 2004-07-30 2008-02-22 Commissariat Energie Atomique Procede d'ordonnancement de traitement de taches et dispositif pour mettre en oeuvre le procede

Also Published As

Publication number Publication date
US20060059489A1 (en) 2006-03-16
JP2006085428A (ja) 2006-03-30

Similar Documents

Publication Publication Date Title
US20060059489A1 (en) Parallel processing system, interconnection network, node and network control method, and program therefor
US6961935B2 (en) Multi-processor system executing a plurality of threads simultaneously and an execution method therefor
JP3573546B2 (ja) 並列計算機における並列プロセススケジューリング方法および並列計算機用処理装置
JPS5932045A (ja) 情報処理装置
JPH0430053B2 (ja)
JP2003029986A (ja) プロセッサ間レジスタ継承方法及びその装置
CA2056715A1 (en) Overlapped serialization
JP3773769B2 (ja) 命令のインオーダ処理を効率的に実行するスーパースケーラ処理システム及び方法
US9652299B2 (en) Controlling the state of a process between a running and a stopped state by comparing identification information sent prior to execution
US20140331025A1 (en) Reconfigurable processor and operation method thereof
US20030014558A1 (en) Batch interrupts handling device, virtual shared memory and multiple concurrent processing device
JP2004127163A (ja) マルチプロセッサシステム
JP5376042B2 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
US20110231637A1 (en) Central processing unit and method for workload dependent optimization thereof
JP3067253B2 (ja) データ処理装置
JPS6315628B2 (ja)
JPH10111857A (ja) マルチプロセッサ
JPS6097440A (ja) 仮想多重プロセツサ装置
US20230315573A1 (en) Memory controller, information processing apparatus, and information processing method
JPH09218859A (ja) マルチプロセッサ制御システム
JPH06324861A (ja) Cpu制御システム及び制御方法
JP2814683B2 (ja) 命令処理装置
JPH0570866B2 (ja)
CN115658601A (zh) 多核处理器系统及其控制方法
JP5582241B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080106

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

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

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

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees