JP2010271907A - I/oノード制御方式及び方法 - Google Patents
I/oノード制御方式及び方法 Download PDFInfo
- Publication number
- JP2010271907A JP2010271907A JP2009123058A JP2009123058A JP2010271907A JP 2010271907 A JP2010271907 A JP 2010271907A JP 2009123058 A JP2009123058 A JP 2009123058A JP 2009123058 A JP2009123058 A JP 2009123058A JP 2010271907 A JP2010271907 A JP 2010271907A
- Authority
- JP
- Japan
- Prior art keywords
- node
- job
- parallel
- daemon
- nodes
- 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
Links
- 238000000034 method Methods 0.000 title claims description 171
- 230000008859 change Effects 0.000 claims abstract description 15
- 238000004364 calculation method Methods 0.000 claims description 131
- 230000008569 process Effects 0.000 claims description 108
- 238000004891 communication Methods 0.000 claims description 82
- 238000012508 change request Methods 0.000 claims description 11
- 239000000284 extract Substances 0.000 claims description 8
- 238000007726 management method Methods 0.000 description 138
- 239000000872 buffer Substances 0.000 description 88
- 230000005540 biological transmission Effects 0.000 description 54
- 230000015654 memory Effects 0.000 description 31
- 230000006870 function Effects 0.000 description 23
- 230000004913 activation Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 6
- 238000013468 resource allocation Methods 0.000 description 6
- 230000003111 delayed effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
Images
Abstract
【解決手段】ジョブ開始時においては、期待した並列度で並列I/Oを実行できるだけの多数のI/Oノードを確保せず、少ない数のI/Oノードのみを確保しておく。そして、並列I/O開始時に、不足分のI/Oノードを並列I/O用I/Oノード確保/解放部、I/Oノードグループ変更部により、他のジョブが保有する通常I/O用グループのI/Oノードから選択することにより、他の実行中のジョブから一時的に横取りする。また、I/Oノード管理テーブル、ジョブ管理テーブルにより、横取りしたI/Oノードの情報と横取りされたジョブのそれを同時に管理する。そのために、I/Oノードをグループ化する。
【選択図】図3
Description
これは、時刻T1においてジョブ#3が並列I/Oを開始するが、同時に実行されているジョブ#1、#2もI/Oノードを確保しているため、ジョブ#3が並列I/Oを行うのに十分なI/Oノードを確保できず、I/O時間が多くかかってしまい、後から投入されたジョブ#4の実行開始時期がその分だけ遅延されるという問題を示している。
図2に、本発明のI/O(Input/Output)ノード制御方式を備えた並列計算機システムの構成図を示す。図2の並列計算機システムは、相互結合ネットワーク4と制御ネットワーク5に接続された複数の計算ノード3と、相互結合ネットワーク4と並列ファイルシステムを含む任意のファイルシステム6が構築されたI/Oシステムに接続された複数のI/Oノード2と、投入されるジョブの制御を行うジョブサーバー1を備えることを前提とし、特に並列I/O用のI/O資源の割り当てを行う。
ジョブサーバー1は、ユーザ投入したジョブの制御を行う。本発明の場合、ジョブスケジューラ101から呼び出されるI/Oノードスケジューラ102は、ジョブサーバー1上で実行される。また、ジョブサーバー1は、各計算ノード3と通信が可能である。
I/Oノード2は、サーバー、クライアントの関係があるファイルシステムのクライアントとなり得るコンピュータである。本発明の場合、計算ノード3がI/O処理をI/Oノード2へ転送し、実際のI/O処理をI/Oノード2へ依頼するという仕組みを前提としている。また、本発明の場合、どのI/Oノード2からでも、同じファイルシステム6をアクセスできることを前提とする。即ち、複数のI/Oノード2の各々は、同じファイルシステム6をアクセスできるものとする。このため、各I/Oノード2は、同じパス名でファイルシステム6をマウントする必要がある。
計算ノード3は、一般に複数存在し、特定のジョブに属する複数のユーザプロセスにおいてユーザのアプリケーションプログラムを実行するコンピュータである。図2に示すように、計算ノード3は、ジョブサーバー1、任意のI/Oノード2、及び任意の(他の)計算ノード3と通信が可能である。
相互結合ネットワーク4は、複数の計算ノード3を使用して並列処理を行うジョブにおいて、計算ノード3との間におけるデータやメッセージの交換、及び計算ノード3とI/Oノード2間におけるI/OデータとI/Oのための制御データの通信に用いる。また、相互結合ネットワーク4は、任意の計算ノード3との間、又は任意の計算ノード3とI/Oノード2間において、高速に通信が可能なネットワークとする。但し、相互結合ネットワーク4は、一般に利用可能な、「Ethernet(登録商標)」や「Infiniband」等でも良い。
制御ネットワーク5は、ジョブサーバー1と計算ノード3との間において、ジョブの起動、終了時において必要な通信を行う。また、制御ネットワーク5は、「Ethernet(登録商標)」等、一般に利用可能なネットワークを利用する。
ファイルシステム6は、I/Oノード2からアクセス可能である。ファイルシステム6の例として、「POSIX」等の一般的に知られたインターフェースを提供する任意の並列ファイルシステム、ネットワークファイルシステム、又はクラスタファイルシステム等が考えられる。また、ファイルシステム6は、システム管理者によって、I/Oノード2の起動時に各I/Oノード2から同じパス名をマウントポイントとしてマウントされていることを前提とする。なお、ファイルシステム6は、複数のファイルシステムをマウントする場合、ファイルシステム毎にマウントポイントのパス名を変更する必要があるが、各I/Oノード2からはファイルシステム毎に同じパス名でマウントする。
次に、本発明の実施形態の動作について詳細に説明する。
なお、ジョブサーバー1と計算ノード3、及び計算ノード3とI/Oノード2は、それぞれTCP/IP等の一般的な通信プロトコルを用いて通信できるものとする。また、それぞれのオペレーティングシステム(OS)は、「UNIX(登録商標)」や「Linux(登録商標)」等を前提とする。
最初に、図3、図4、図5を参照して、並列I/Oが要求された場合の動作の説明に先立って、その基礎となるI/O資源の割り当て、及びI/O処理の動作を説明する。但し、I/Oノード登録時、ジョブ起動時、I/O実行時、ジョブ終了時について、処理が異なるので、これらを分けて記載する。
ジョブサーバー1の起動時において、I/Oノードスケジューラ102は、I/Oノード管理テーブル102−2、ジョブ管理テーブル102−3の領域をメモリ上に確保し、I/Oノード登録部102−1によりI/Oノード設定ファイル102−5から「各I/Oノードの番号」、「最大I/Oスレッド数」、「IPアドレス」を読み出し、I/Oノード管理テーブルへ登録する。また、システム運用中において、システム管理者は、管理用のコマンドを用いて上記と同様に「I/Oノードの番号」、「最大I/Oスレッド数」、「IPアドレス」を入力することで、I/Oノードを追加することができる。
ファイルシステム6へ直接アクセスするのはI/Oノード2であり、I/Oを要求するのは計算ノード3である。従って、I/Oノード2がマウントしたファイルシステム6と計算ノード3との対応関係を示す情報が必要となる。このとき、NFS等のネットワークファイルシステムをマウントする場合と同様なインターフェースを用い、あたかもI/Oノード2がネットワークファイルシステムのサーバーであるかのように、各計算ノード3からシステム管理者がマウントコマンドを実行する。
ジョブサーバー1内のジョブスケジューラ101は、I/Oノード要求情報を作成し、I/Oノードスケジューラ102を呼び出す。I/Oノード要求情報には、「I/Oノード数」と、「計算ノード数」と、各計算ノードの「IPアドレス」と、「要求するメモリ容量」と、「実装メモリ容量」が含まれる。但し、ジョブスケジューラ101は、「I/Oノード数」に関して、並列I/Oに十分な「I/Oノード数」をジョブ起動時には確保せず、例えば要求された「計算ノード数」の1/N(N:正の整数)のI/Oノードのみを要求する。そして、I/Oノード要求情報は、ジョブスケジューラ101から、I/Oノードスケジューラ102を呼び出す際に渡されることとする。即ち、ジョブスケジューラ101は、I/Oノードスケジューラ102を呼び出す際に、I/Oノードスケジューラ102にI/Oノード要求情報を渡す。
計算ノード3内のジョブ管理デーモン302は、ユーザプロセス303が全て終了したことを検知すると、I/Oノード対応テーブル305を参照し、対応するI/Oノード2へジョブ終了通知を示すパケットを送信する。
計算ノード3上において、ジョブ内のユーザプロセス303は、「open」/「read」/「write」/「close」等のI/Oに関係するシステムコールを呼び出し、I/Oを発行する。
b:生成済みのI/Oスレッド数
c:現在I/O処理実行中のI/Oスレッド数
(a,b,cは、それぞれ0以上の整数値)
b > c ―(1)
b <= c,b < a ―(2)
b >= a ―(3)
次に、図3、図4、図5、図7、図9、及び図8、図10のフローチャートを参照して、並列I/Oが要求された場合の動作を詳細に説明する。但し、並列I/O実行開始時と、並列I/O終了時とでは、処理が異なるので、これらを分けて記載する。
図7に示すように、並列I/Oの実行開始時において、計算ノード3からジョブサーバー1及びI/Oノード2へそれぞれ処理を依頼する。
計算ノード3は、並列I/O用I/Oノード要求部308により、並列I/O用I/Oノード要求をジョブサーバー1へ送信する。
ジョブサーバー1は、並列I/O用I/Oノード確保/解放部102−6により、並列I/O用I/Oノードの確保を行う。
また、ジョブサーバー1は、I/Oノードグループ変更部102−9により、I/Oノードグループの変更を行う。
計算ノード3は、I/Oノード割り当て変更部311により、I/Oノードの割り当てを変更する。
I/Oノード2は、I/Oデーモン停止/再開部202−9により、I/Oデーモンの再開を行う。
I/Oノード2は、プロセス生成部202−6により、プロセスを生成する。
計算ノード3は、並列I/Oを開始する。
ジョブサーバー1は、マスターノードである計算ノード3から並列I/O用I/Oノード要求を受信すると、ジョブスケジューラ101によりI/Oノードスケジューラ102を呼び出す。
I/Oノードスケジューラ102は、I/Oノード管理テーブル102−2を参照し、当該ジョブに既に割り当てられているI/Oノードが他のジョブに横取りされていないかをチェック(確認)する。
I/Oノードスケジューラ102は、当該ジョブに既に割り当てられているI/Oノードが他のジョブに横取りされてしまっている場合、並列I/O用I/Oノードの確保を断念し、I/Oノード情報として確保失敗を設定する。
そして、I/Oノードスケジューラ102は、I/Oノードスケジューラから復帰し、I/Oノード情報をマスターノード(計算ノード3)に通知して処理を終える。
また、I/Oノードスケジューラ102は、当該ジョブに既に割り当てられているI/Oノードが他のジョブに横取りされていない場合、当該計算ノード3が既に保有するI/Oノードと並列I/Oに必要なI/Oノードの数から、当該ジョブに新たに割り当てが必要な「I/Oノード数」を算出する。
I/Oノードスケジューラ102は、「I/Oノード数」を算出した結果に基づいて、必要な数のI/Oノードが確保できないことがないかをチェック(確認)する。I/Oノードスケジューラ102は、必要な数のI/Oノードが確保できないことが判明した場合、上記と同様に、並列I/O用I/Oノードの確保を断念し、I/Oノード情報として確保失敗を設定して、I/Oノードスケジューラから復帰し、I/Oノード情報をマスターノードに通知して処理を終える。
次に、I/Oノードスケジューラ102は、必要な数のI/Oノードを確保できた場合、I/Oノードグループ変更部102−9により、選択されたI/Oノードについて、I/Oノード管理テーブル102−2内の「グループ」をAグループ(「A」)からBグループ(「B」)に変更する。このとき、I/Oノードスケジューラ102は、「横取りジョブ番号」と、「横取り計算ノード番号」へ、当該ジョブの「ジョブ番号」と、割り当てる「計算ノード番号」を設定する。
最後に、I/Oノードスケジューラ102は、ジョブスケジューラ101に復帰後、各計算ノード3へI/Oノード情報(「I/Oノード番号」)を送信する。
図9に示すように、並列I/Oの終了時において、計算ノード3からジョブサーバー1、I/Oノード2へそれぞれ処理を依頼する。
計算ノード3は、並列I/O終了通知部312により、並列I/O終了通知をジョブサーバー1へ送信する。
ジョブサーバー1は、並列I/O用I/Oノード確保/解放部102−6により、並列I/O用I/Oノードの解放を行う。
また、ジョブサーバー1は、I/Oノードグループ変更部102−9により、I/Oノードグループの変更を行う。
計算ノード3は、I/Oノード割り当て変更部311により、I/Oノードの割り当てを変更する。
I/Oノード2は、I/Oデーモン停止/再開部202−9により、I/Oデーモンの停止を行う。
I/Oノード2は、I/Oデーモン終了部202−8により、I/Oデーモンを終了する。
計算ノード3は、並列I/Oを終了する。
計算ノード3では、並列I/Oが終了すると、スレーブノード内のユーザプロセス303は、同期待ち部309により、マスターノードが同期ポイントに到達するまで待ち合わせる。この後、マスターノードのユーザプロセス303は、ジョブ管理デーモン302に、並列I/Oが終わった旨を通知し、I/Oノード待ち合わせ部310により、並列I/Oの終了処理が終了するまで待ち状態となる。ジョブ管理デーモン302は、並列I/Oを行っていたジョブの「ジョブ番号」を含む並列I/O終了通知を並列I/O終了通知部312によりジョブサーバー1に送信し、受信待ち状態となる。
ジョブサーバー1は、マスターノードである計算ノード3から並列I/O終了通知を受信すると、ジョブスケジューラ101によりI/Oノードスケジューラ102を呼び出す。即ち、ジョブサーバー1は、並列I/O終了通知を受信すると、ジョブスケジューラ101によりI/Oノードスケジューラ102を起動する。
I/Oノードスケジューラ102は、並列I/O用I/Oノード確保/解放部102−6により、受信された「ジョブ番号」をキーにして、ジョブ管理テーブル102−3を検索し、当該ジョブのエントリを特定し、特定されたエントリの中の「計算ノード番号」を抽出する。
次に、I/Oノードスケジューラ102は、I/Oノードグループ変更部102−9により、I/Oノード管理テーブル102−2内の「横取りジョブ番号」、「横取り計算ノード番号」が「ジョブ番号」、「計算ノード番号」と一致する全てのエントリについて、Aグループ(「A」)からBグループ(「B」)へ変更し、「横取りジョブ番号」と、「横取り計算ノード番号」を消去する。
その後、I/Oノードスケジューラ102は、メモリ上に確保したI/Oノード情報テーブル102−8に「I/Oノード番号」と「ジョブ番号」を格納し、ジョブスケジューラ101に制御を返す。
ジョブサーバー1は、制御がI/Oノードスケジューラ102からジョブスケジューラ101に復帰した後、ジョブスケジューラ101により、各計算ノード3へI/Oノード情報(「I/Oノード番号」)を送信する。即ち、ジョブスケジューラ101は、I/Oノード情報テーブル102−8に格納された「I/Oノード番号」をI/Oノードグループ変更終了通知として、当該ジョブの全計算ノード3へ送信する。
これは、時刻T1において、ジョブ#3が、同時に実行されているジョブ#1、#2の持つI/Oノードを一時的に横取りすることによって、ジョブ#3が並列I/Oを行うのに十分なI/Oノードを確保でき、時刻T2に並列I/Oを終了できる状況を示している。ここでは、ジョブ#1〜#3が、同量のI/Oノードを保有している状態で、ジョブ#3が並列I/Oを要求した時、ジョブ#1、#2の保有するI/OノードをAグループ(「A」)へ変更する。これにより、一時的にそれらI/Oノードをジョブ#1、#2から使用不可とし、ジョブ#3が全てのI/Oノードを使用できるようにする。そして、ジョブ#3の並列I/Oが終了した時点でAグループ(「A」)のI/OノードをBグループ(「B」)に戻し、ジョブ#1、#2から、再度、使用可能な状態することを現している。
101… ジョブスケジューラ
102… I/Oノードスケジューラ
102−1… I/Oノード登録部
102−2… I/Oノード管理テーブル
102−3… ジョブ管理テーブル
102−4… I/Oノード確保/解放部
102−5… I/Oノード設定ファイル
102−6… 並列I/O用I/Oノード確保/解放部
102−7… I/Oノード情報作成部
102−8… I/Oノード情報テーブル
102−9… I/Oノードグループ変更部
102−10… I/Oノード要求情報作成部
103… 既存コンポーネント
2… I/Oノード
201… 通信デーモン
201−1… 接続確立部
201−2… プロセス生成部
202… 共通処理デーモン
202−1… 受信部
202−2… スレッド生成部
202−3… ジョブテーブル操作部
202−4… 通信バッファ
202−5… プロセス間通信部
202−6… プロセス生成部
202−7… ジョブ管理テーブル
202−8… I/Oデーモン終了部
202−9… I/Oデーモン停止/再開部
203… 送信スレッド(主送信スレッド)
203−1… 送信部
203−2… 通信バッファ
203−3… プロセス間通信部
204… I/Oデーモン
204−1… プロセス間通信部
204−2… スレッド生成部
204−3… I/Oスレッド管理テーブル
204−4… I/Oバッファ確保部
204−5… I/Oバッファ管理テーブル
204−6… I/Oバッファ待ち合わせ部
204−7… I/Oスレッド起動部
204−8… ファイル管理テーブル
205… I/Oスレッド
205−1… 待ち合わせ部
205−2… I/O部
206… 送信スレッド(副送信スレッド)
206−1… プロセス間通信部
206−2… 待ち合わせ部
3… 計算ノード
301… 通信部
302… ジョブ管理デーモン
303… ユーザプロセス
304… I/Oリクエスト作成部
305… I/Oノード対応テーブル
306… マウント部
307… マウントポイント対応テーブル
308… 並列I/O用I/Oノード要求部
309… 同期待ち部
310… I/Oノード待ち合わせ部
311… I/Oノード割り当て変更部
312… 並列I/O終了通知部
4… 相互結合ネットワーク
5… 制御ネットワーク
6… ファイルシステム
Claims (17)
- データを蓄積するファイルシステムと、
前記ファイルシステムにアクセスするI/Oノードと、
ジョブを実行し、I/O処理が発生した場合には、前記I/OノードにI/O要求を発行する計算ノードと、
ジョブのスケジューリングを行い、あるジョブに対して、当該ジョブの実行を停止させることなく、前記I/Oノードを動的に割り当てるジョブサーバーと
を具備し、
前記ジョブサーバーは、
ジョブ開始時においては、期待した並列度で並列I/Oを実行するために必要な数に満たない少数のI/Oノードを確保し、並列I/Oを実行する時に、不足分のI/Oノードを、他のジョブが保有するI/Oノードから一時的に横取りするI/Oノードスケジューラ
を具備する
I/Oノード制御方式。 - 請求項1に記載のI/Oノード制御方式であって、
前記I/Oノードスケジューラは、横取りしたI/Oノードの情報、及びI/Oノードを横取りされたジョブの情報を同時に管理する
I/Oノード制御方式。 - 請求項2に記載のI/Oノード制御方式であって、
前記I/Oノードスケジューラは、
I/Oノード番号、最大I/Oスレッド数、及びIPアドレスを関連付けて登録しているI/Oノード管理テーブルと、
ジョブ番号、計算ノード番号、及びI/Oノード番号を関連付けて登録しているジョブ管理テーブルと、
前記計算ノードから並列I/O用I/Oノード要求を受信し、前記I/Oノード管理テーブル、及び前記ジョブ管理テーブルを参照し、並列I/Oに使用できるI/Oノードを抽出する並列I/O用I/Oノード確保/解放部と、
並列I/O用のI/Oノード割り当て時に、前記I/Oノード管理テーブルのグループの項目を通常I/O用グループから並列I/O用グループへ変更し、横取りジョブ番号と横取り計算ノード番号に、当該ジョブのジョブ番号と割り当てる計算ノードの番号を格納するI/Oノードグループ変更部と
を具備する
I/Oノード制御方式。 - 請求項3に記載のI/Oノード制御方式であって、
前記並列I/O用I/Oノード確保/解放部は、前記計算ノードから並列I/O終了通知を受信し、前記並列I/O終了通知に含まれるジョブ番号をキーにして、前記ジョブ管理テーブルを検索し、当該ジョブのエントリを特定し、前記特定されたエントリの中の計算ノード番号を抽出し、
前記I/Oノードグループ変更部は、並列I/O用I/Oノード解放時に、前記I/Oノード管理テーブル内の横取りジョブ番号、横取り計算ノード番号がジョブ番号、計算ノード番号と一致するエントリについて、グループの項目を並列I/O用グループから通常I/O用グループへ変更し、横取りジョブ番号、及び横取り計算ノード番号を消去する
I/Oノード制御方式。 - 請求項1乃至4のいずれか一項に記載のI/Oノード制御方式であって、
前記I/Oノードは、
I/Oスレッドと送信スレッドを生成するI/Oデーモンと、
並列I/Oを実行する時に、並列I/Oを行うジョブ以外の他のジョブのI/Oデーモン及び当該I/Oデーモンの配下のスレッドを停止させるための処理を行い、並列I/Oを終了する時に、並列I/Oを行うジョブ以外の他のジョブのI/Oデーモン及び当該I/Oデーモンの配下のスレッドを再開させるための処理を行うI/Oデーモン停止/再開部と
を具備する
I/Oノード制御方式。 - 請求項1乃至5のいずれか一項に記載のI/Oノード制御方式であって、
前記計算ノードは、
ジョブに属し、ユーザのアプリケーションプログラムを実行し、前記I/OノードへI/Oを要求するユーザプロセスと、
前記ユーザプロセスが同一ジョブ内の他の計算ノードのユーザプロセスと同期する必要がある場合、前記ユーザプロセスの動作を、前記同一ジョブ内の全てのユーザプロセスが同期ポイントに到達するまで待ち合わせる同期待ち部と、
前記ユーザプロセスの動作を、前記ジョブ管理デーモンが前記ジョブサーバー、及び前記各I/Oノードとの通信を終了するまで待ち合わせるI/Oノード待ち合わせ部と、
前記I/Oノードへ、当該ジョブのジョブ番号、及び計算ノード番号が含まれるI/Oノード変更要求を送信するI/Oノード割り当て変更部と
を具備する
I/Oノード制御方式。 - 請求項1乃至6のいずれか一項に記載のI/Oノード制御方式で使用されるジョブサーバー。
- 請求項1乃至6のいずれか一項に記載のI/Oノード制御方式で使用されるI/Oノード。
- 請求項1乃至6のいずれか一項に記載のI/Oノード制御方式で使用される計算ノード。
- I/Oノードから、データを蓄積するファイルシステムにアクセスすることと、
計算ノードで、ジョブを実行し、I/O処理が発生した場合には、前記I/OノードにI/O要求を発行することと、
ジョブサーバーで、ジョブのスケジューリングを行い、あるジョブに対して、当該ジョブの実行を停止させることなく、前記I/Oノードを動的に割り当てることと、
前記ジョブサーバーのI/Oノードスケジューラで、ジョブ開始時においては、期待した並列度で並列I/Oを実行するために必要な数に満たない少数のI/Oノードを確保することと、
前記I/Oノードスケジューラで、並列I/Oを実行する時に、不足分のI/Oノードを、他のジョブが保有するI/Oノードから一時的に横取りすることと
を含む
I/Oノード制御方法。 - 請求項10に記載のI/Oノード制御方法であって、
前記I/Oノードスケジューラで、横取りしたI/Oノードの情報、及びI/Oノードを横取りされたジョブの情報を同時に管理すること
を更に含む
I/Oノード制御方法。 - 請求項11に記載のI/Oノード制御方法であって、
前記I/Oノードスケジューラで、前記計算ノードから並列I/O用I/Oノード要求を受信することと、
I/Oノード番号、最大I/Oスレッド数、及びIPアドレスを関連付けて登録しているI/Oノード管理テーブルを参照することと、
ジョブ番号、計算ノード番号、及びI/Oノード番号を関連付けて登録しているジョブ管理テーブルを参照することと、
並列I/Oに使用できるI/Oノードを抽出することと、
並列I/O用のI/Oノード割り当て時に、前記I/Oノード管理テーブルのグループの項目を通常I/O用グループから並列I/O用グループへ変更することと、
横取りジョブ番号と横取り計算ノード番号に、当該ジョブのジョブ番号と割り当てる計算ノードの番号を格納することと
を更に含む
I/Oノード制御方法。 - 請求項12に記載のI/Oノード制御方法であって、
前記I/Oノードスケジューラで、当該ジョブに既に割り当てられているI/Oノードが他のジョブに横取りされていないかを前記I/Oノード管理テーブルを参照してチェックすることと、
当該ジョブに既に割り当てられているI/Oノードが他のジョブに横取りされてしまっている場合、並列I/O用I/Oノードの確保を断念し、並列I/O用I/Oノードの確保を断念した旨を前記計算ノードに通知して処理を終了することと
を更に含む
I/Oノード制御方法。 - 請求項13に記載のI/Oノード制御方法であって、
前記I/Oノードスケジューラで、当該ジョブに既に割り当てられているI/Oノードが他のジョブに横取りされていない場合、前記計算ノードが既に保有するI/Oノード数と並列I/Oに必要なI/Oノード数に基づき、当該ジョブに新たに割り当てが必要なI/Oノード数を算出することと、
必要な数のI/Oノードが確保できない場合、並列I/O用I/Oノードの確保を断念し、並列I/O用I/Oノードの確保を断念した旨を前記計算ノードに通知して処理を終了することと
必要な数のI/Oノードを確保できた場合、前記確保されたI/Oノードについて、I/Oノード管理テーブル内のグループの項目を通常I/O用グループから並列I/O用グループに変更することと、
横取りジョブ番号、及び横取り計算ノード番号へ、当該ジョブのジョブ番号、及び割り当てる計算ノード番号を設定することと、
前記計算ノードへ、前記設定されたI/Oノード番号を送信することと
を更に含む
I/Oノード制御方法。 - 請求項14に記載のI/Oノード制御方法であって、
前記I/Oノードスケジューラで、前記計算ノードから並列I/O終了通知を受信することと、
前記並列I/O終了通知に含まれるジョブ番号をキーにして、前記ジョブ管理テーブルを検索し、当該ジョブのエントリを特定し、前記特定されたエントリの中の計算ノード番号を抽出することと、
並列I/O用I/Oノード解放時に、前記I/Oノード管理テーブル内の横取りジョブ番号、横取り計算ノード番号がジョブ番号、計算ノード番号と一致するエントリについて、グループの項目を並列I/O用グループから通常I/O用グループへ変更することと、
横取りジョブ番号、及び横取り計算ノード番号を消去することと、
前記I/Oノード情報テーブルにI/Oノード番号とジョブ番号を格納することと、
前記計算ノードへ、I/Oノードグループ変更終了通知としてI/Oノード番号を送信することと
を更に含む
I/Oノード制御方法。 - 請求項10乃至15のいずれか一項に記載のI/Oノード制御方法であって、
前記I/Oノードで、I/Oスレッドと送信スレッドを生成することと、
並列I/Oを実行する時に、並列I/Oを行うジョブ以外の他のジョブのI/Oデーモン及び当該I/Oデーモンの配下のスレッドを停止させるための処理を行うことと、
並列I/Oを終了する時に、並列I/Oを行うジョブ以外の他のジョブのI/Oデーモン及び当該I/Oデーモンの配下のスレッドを再開させるための処理を行うことと
を更に含む
I/Oノード制御方法。 - 請求項10乃至15のいずれか一項に記載のI/Oノード制御方法であって、
前記計算ノードで、ジョブに属するユーザプロセスにより、ユーザのアプリケーションプログラムを実行することと、
前記I/OノードへI/Oを要求することと、
前記ユーザプロセスが同一ジョブ内の他の計算ノードのユーザプロセスと同期する必要がある場合、前記ユーザプロセスの動作を、前記同一ジョブ内の全てのユーザプロセスが同期ポイントに到達するまで待ち合わせることと、
前記ユーザプロセスの動作を、前記ジョブ管理デーモンが前記ジョブサーバー、及び前記各I/Oノードとの通信を終了するまで待ち合わせることと、
前記I/Oノードへ、当該ジョブのジョブ番号、及び計算ノード番号が含まれるI/Oノード変更要求を送信することと
を更に含む
I/Oノード制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009123058A JP5288272B2 (ja) | 2009-05-21 | 2009-05-21 | I/oノード制御方式及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009123058A JP5288272B2 (ja) | 2009-05-21 | 2009-05-21 | I/oノード制御方式及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010271907A true JP2010271907A (ja) | 2010-12-02 |
JP5288272B2 JP5288272B2 (ja) | 2013-09-11 |
Family
ID=43419884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009123058A Expired - Fee Related JP5288272B2 (ja) | 2009-05-21 | 2009-05-21 | I/oノード制御方式及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5288272B2 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10214257A (ja) * | 1997-01-30 | 1998-08-11 | Fujitsu Ltd | 並列計算機 |
JP2001175485A (ja) * | 1999-12-17 | 2001-06-29 | Nec Corp | ジョブ制御装置 |
JP2002057702A (ja) * | 2000-08-08 | 2002-02-22 | Mitsubishi Electric Corp | ラベルスイッチングパスの優先制御方法およびこれを用いた通信システム |
JP2009251708A (ja) * | 2008-04-02 | 2009-10-29 | Nec Corp | I/oノード制御方式及び方法 |
-
2009
- 2009-05-21 JP JP2009123058A patent/JP5288272B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10214257A (ja) * | 1997-01-30 | 1998-08-11 | Fujitsu Ltd | 並列計算機 |
JP2001175485A (ja) * | 1999-12-17 | 2001-06-29 | Nec Corp | ジョブ制御装置 |
JP2002057702A (ja) * | 2000-08-08 | 2002-02-22 | Mitsubishi Electric Corp | ラベルスイッチングパスの優先制御方法およびこれを用いた通信システム |
JP2009251708A (ja) * | 2008-04-02 | 2009-10-29 | Nec Corp | I/oノード制御方式及び方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5288272B2 (ja) | 2013-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4569846B2 (ja) | I/oノード制御方式及び方法 | |
WO2017133623A1 (zh) | 一种数据流处理方法、装置和系统 | |
US10382574B2 (en) | Systems and methods for providing messages to multiple subscribers | |
US8028292B2 (en) | Processor task migration over a network in a multi-processor system | |
US9262218B2 (en) | Methods and apparatus for resource management in cluster computing | |
WO2018035856A1 (zh) | 实现硬件加速处理的方法、设备和系统 | |
US8996469B2 (en) | Methods and apparatus for job state tracking in cluster computing | |
JP2015537307A (ja) | コンポーネント指向ハイブリッドクラウドオペレーティングシステムのアーキテクチャ及びその通信方法 | |
JP2018531465A (ja) | メッセージデータを格納するためのシステム及び方法 | |
JP2018531465A6 (ja) | メッセージデータを格納するためのシステム及び方法 | |
WO2021254330A1 (zh) | 内存管理方法、系统、客户端、服务器及存储介质 | |
US20080228923A1 (en) | Server-Side Connection Resource Pooling | |
US9804889B2 (en) | Methods and apparatus for state objects in cluster computing | |
EP0747832A2 (en) | Customer information control system and method in a loosely coupled parallel processing environment | |
WO2015176636A1 (zh) | 分布式数据库服务管理系统 | |
KR20060041928A (ko) | 프린트 시스템 및 방법 | |
US20220114145A1 (en) | Resource Lock Management Method And Apparatus | |
CN112073456B (zh) | 分布式锁的实现方法、相关设备及系统 | |
US20200356419A1 (en) | Synchronization between processes in a coordination namespace | |
WO2024066342A1 (zh) | 任务处理方法、装置、电子设备及存储介质 | |
US5790868A (en) | Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment | |
US5630133A (en) | Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment | |
US8442939B2 (en) | File sharing method, computer system, and job scheduler | |
JP4862056B2 (ja) | 仮想計算機管理機構及び仮想計算機システムにおけるcpu時間割り当て制御方法 | |
JP5288272B2 (ja) | I/oノード制御方式及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120406 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130305 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130422 |
|
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: 20130510 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130523 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5288272 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |