JP4286481B2 - Clustering system - Google Patents
Clustering system Download PDFInfo
- Publication number
- JP4286481B2 JP4286481B2 JP2001374748A JP2001374748A JP4286481B2 JP 4286481 B2 JP4286481 B2 JP 4286481B2 JP 2001374748 A JP2001374748 A JP 2001374748A JP 2001374748 A JP2001374748 A JP 2001374748A JP 4286481 B2 JP4286481 B2 JP 4286481B2
- Authority
- JP
- Japan
- Prior art keywords
- job
- slave
- machine
- file
- program
- 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
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、比較的安価なコンピュータを組み合わせて高速処理を実現するクラスタリングシステムに関し、特に利用者および管理者の双方にとっての使い勝手を向上させたクラスタリングシステムに関する。
【0002】
【従来の技術】
複数台のコンピュータ、特にパーソナルコンピュータのように比較的安価なコンピュータを用いて、全体として極めて高価なスーパーコンピュータ並みの処理速度を実現するクラスタリングシステムが知られている。従来のクラスタリングシステムは、以下のような特徴を有する。
・管理者等が、クラスタを構成する全コンピュータを事前に登録する。
・管理者等が、登録されているコンピュータに対して、実行プログラムを事前にインストールする。
・各コンピュータ上で実行プログラムを起動し、実行する。
・クラスタリングシステムが、プログラム間通信を行うためのライブラリを提供する。利用者は、予めこのライブラリを用いて通信を行うためのプログラミングを自らして、各実行プログラムは必要とする入力データの配布、および各プログラムが出力したデータの収集を行う。
【0003】
【発明が解決しようとする課題】
しかしながら、従来のクラスタリングシステムでは、以下のような問題点がある。すなわち、上述のように管理者等がクラスタリングシステムを構成する全コンピュータを設定ファイル等に、事前に登録する必要があり、その設定ファイルの維持、管理が面倒である。また、管理者等は、実行プログラムを設定ファイルに登録されている全コンピュータに事前にインストールしなければならないので、手間がかかる上、作業ミスが発生しやすい。さらに、プログラム間通信を行うためのプログラミングを、利用者自らが行う必要があるため、プログラムの作成コストがかかる。
【0004】
そこで、本発明の目的は、利用者のプログラミングの手間を軽減したクラスタリングシステムおよびそれを構成する各コンピュータを提供することである。
【0005】
本発明の別の目的は、管理にかかる手間を軽減したクラスタリングシステムおよびそれを構成する各コンピュータを提供することである。
【0006】
本発明のまた別の目的は、全体での処理性能を向上させるために、効率的に処理を分散することである。
【0007】
【課題を解決するための手段】
本発明の一つの態様に従うクラスタリングシステムは、一のマスタマシンと、該マスタマシンにネットワークを介して接続される複数のスレーブマシンとを有するクラスタリングシステムにおいて、
前記マスタマシンは、
前記各スレーブマシンの通信アドレス、および、ジョブの実行状態を示すステータスを記憶するスレーブ管理手段と、
予め定められたジョブを実行するためのジョブプログラムを一以上記憶するプログラム記憶手段と、
前記ジョブプログラムを前記スレーブマシンのいずれかへ送信するプログラム送信手段と、
実行待ちのジョブを、前記スレーブ管理手段により管理されているスレーブマシンのうち、前記登録されているステータスがジョブを割り当てて実行させることが可能な待機状態にあり、かつ、ジョブの実行に要した所要時間の平均値を指標として、処理能力の高いスレーブマシンから優先して割り当てるジョブ割当処理手段と、
前記ジョブがアクセスするデータを格納するファイルを記憶するためのデータ記憶手段と、
前記スレーブマシンから前記データ記憶手段に格納されているファイルに対するジョブIDとファイル名を含むオープン通知を受けるとオープン通知において指定されたファイル名に該当するファイルをオープンし、オープンされたファイルについて前記スレーブマシンから要求されたリードまたはライトを行い、ジョブIDとファイル名とを含むクローズ通知を受けるとクローズ通知において指定されたファイル名に該当するファイルをクローズし、その結果を返信する入出力処理手段と、を備え、
前記各スレーブマシンは、
前記ジョブプログラムを受信する手段と、
受信したジョブプログラムにより実行されるジョブのデータ入出力要求を処理する入出力処理手段と、を備え、
前記各スレーブマシンの入出力処理手段は、実行中のジョブのデータ入出力要求を検出すると、前記マスタマシンにジョブIDとファイル名とを含むファイルオープンを通知し、ジョブからリードまたはライトの要求を受けると、リードまたはライトの要求を前記マスタマシンに通知し、かつ、ジョブからファイルクローズ要求を受けると、マスタマシンにジョブIDとファイル名とを含むファイルクローズを通知すること、を特徴とする。
【0008】
【発明の実施の形態】
以下、本発明の実施形態について、図面を用いて説明する。
【0009】
本発明を適用した一実施形態であるクラスタリングシステム1の全体構成を図1に示す。本システム1は、マスタマシン10と複数台のスレーブマシン20とを備え、互いにネットワーク9で接続されている。各スレーブマシン20は、それぞれ、割り当てられた処理を実行する。マスタマシン10は、スレーブマシン20および本システムが実行するタスクを管理する。本実施形態のクラスタリングシステム1は、マスタマシン10を一台だけ含んでいるが、二台以上のマスタマシン10を含んでいてもよい。
【0010】
マスタマシン10およびスレーブマシン20は、いずれも、例えば汎用的なコンピュータにより構成され、以下に説明する各マシン内の個々の構成要素または機能は、例えば、コンピュータのハードウェア上でコンピュータプログラムを実行することにより実現される。
【0011】
マスタマシン10は、通信処理部11と、入出力処理部12と、スレーブ管理部13と、ジョブ登録処理部14と、ジョブ割当処理部15と、記憶部17とを備える。記憶部17は、後述するジョブの実行プログラムを記憶するためのプログラム領域17aと、ジョブで使用するデータを格納するためのデータ領域17bとを備える。さらに、マスタマシン10は、CRTや液晶ディスプレイ等の表示装置7と、キーボードやポインティングデバイス等の入力装置8と接続されている。
【0012】
通信処理部11は、ネットワーク9に接続されているスレーブマシン20を自動検出し、検出したスレーブマシン20の通信アドレスをスレーブ管理部13に登録する。例えば、通信処理部11は、ネットワーク上に存在するスレーブマシン20およびそのステータスを確認するための問い合わせをブロードキャストし、これに応答したスレーブマシン20からの返信を受信する。そして、この返信に含まれているスレーブマシン20の通信アドレス、およびスレーブマシン20のステータスをスレーブ管理部13に登録する。通信処理部11は、スレーブ管理部13に登録されているスレーブマシン20との間でデータ送受信等を行う。
【0013】
また、通信処理部11は、通信アドレス及びステータスについてのスレーブマシン20からの自発的な通知を受け付けたときは、スレーブ管理部13内の該当スレーブマシン20に関する情報を更新する。
【0014】
スレーブ管理部13は、ネットワークに接続されているスレーブマシン20を管理する。具体的には、スレーブ管理部13は、図2に示すようなスレーブ管理テーブル40を有する。スレーブ管理テーブル40は、ネットワーク9に接続されているスレーブマシン20の通信アドレス(ここではIPアドレス)41と、各スレーブマシン20のステータス42とを対応付けている。ステータス42は、ジョブプログラムが割り当てられていて、その処理を実行中であることを示す「実行中」と、ジョブの実行中ではなく、ジョブを割り当てて実行させることが可能である「待機中」と、ジョブプログラムを実行するための前処理、または実行後の後処理を行っていて、実行中から待機中または待機中から実行中へ状態を遷移させている最中であることを示す「遷移中」とがある。
【0015】
入出力処理部12は、記憶部17の入出力に関する処理を行う。特に、スレーブマシン20から、データ領域17bに記憶されているファイルに対するアクセス指示を受け付けたとき、その指示に従ってファイルのオープン/クローズ、リード/ライト等を行い、その結果を返信する。ファイルアクセスの詳細については後述する。
【0016】
タスク・ジョブ登録処理部14は、ジョブ管理テーブル50(図4参照)を備え、タスクおよびジョブの登録を受け付けて、ジョブ管理テーブル50に記憶する。ここで、タスクは、一以上のジョブで構成される。一つのジョブは、一つのジョブプログラムで実装される。登録された実行形式のジョブプログラムは、プログラム領域17aに格納される。各ジョブが、それぞれ予め定められた処理を実行することにより、全体として所定の機能(タスク)が達成される。本実施形態では、一つのジョブプログラムが一つのJava(登録商標)プログラムで実現される。本システム1は、例えば、一つのタスクを構成する複数のジョブプログラムのそれぞれを、別々のスレーブマシン20に実行させて、並列分散処理を行ったり、一のタスクを構成する単一のジョブプログラムを複数のスレーブマシン20に実行させて、大量のデータを同時に処理することができる。
【0017】
タスクの登録は、図3に示すタスク・ジョブ登録画面100を表示装置7に表示させ、ユーザが入力装置8から入力することにより行う。登録画面100は、ジョブプログラム単位で入力を受け付けるために、以下の各項目の入力を受け付ける領域101〜107を有する。すなわち、登録画面100は、タスク名101、先行するタスク名102、ジョブプログラムの実行プログラム名103、メインクラス104、VMパラメータ105、ジョブプログラムの引数106、およびランタイムディレクトリ107の各項目の入力を受け付ける。ユーザは、タスク名101にジョブプログラムの属するタスクの名称を入力する。このジョブが属するタスクよりも先行して実行されるべきタスクがあれば、ユーザは先行タスク名102にそのタスク名を入力する。ユーザは、実行プログラム名103にパスを含めた実行形式のプログラム名を入力する。本実施形態ではJavaを用いて実装した場合について示しているので、メインクラス104および必要に応じてVMパラメータ105を指定する。
【0018】
登録画面100から入力された各項目は、図4に示すジョブ管理テーブル50に登録される。ジョブ管理テーブル50は、ジョブID51と、タスク名52と、実行プログラム名53と、実行条件(メインクラス、引数、VMパラメータ、及びランタイムディレクトリ)54と、先行タスク名55と、ジョブのステータス56とを項目として備える。ジョブID51は、実行プログラムを一意に識別する識別情報であり、ジョブ管理テーブル50に登録する際に自動生成される。ジョブステータス56は、マシンの割り当てを待っている「待ち」と、いずれかのスレーブマシン20で処理を行っている「実行中」と、処理が終了した状態を示す「終了」とがある。なお、「終了」には、正常に終了した「終了(正常)」と、異常終了した「終了(異常)」とを含む。
【0019】
ジョブ割当処理部15は、実行待ちのジョブをどのスレーブマシン20で実行させるかを決定する。つまり、ジョブ割当処理部15は、マシンの割当を待っているジョブが存在する場合、スレーブ管理テーブル40を参照して「待機中」のスレーブマシン20へジョブの実行を依頼する。このときの詳細な処理手順については、後述する。
【0020】
各スレーブマシン20は、それぞれ、通信処理部21と、入出力処理部22とを備える。そして、各スレーブマシン20は、マスタマシン10から送信されたジョブプログラムを実行する。
【0021】
通信処理部21は、マスタマシン10との間でデータ等の送受信を行う。例えば、通信処理部21は、マスタマシン10に対して自己の存在を知らせるために、自己の通信アドレス及びステータスの通知を、ネットワーク9に対してブロードキャストする。この通知は、随時行うことができるが、好ましくは、スレーブマシン20の起動時に行う。
【0022】
通信処理部21は、他のスレーブマシン20からこのアドレス及びステータス通知を受けることがあるが、これに対しては応答しない。
【0023】
また、通信処理部21は、マスタマシン10からの問い合わせに対して、自己の通信アドレス及びステータスを返信する。
【0024】
入出力処理部22は、スレーブマシン20上で実行されているジョブが、マスタマシン10のデータ領域17bにアクセスするための処理を行う。以下、ファイルアクセス時の処理について、マスタマシン10の入出力処理部12が行う処理と併せて詳細に説明する。
【0025】
スレーブマシン20の入出力処理部22は、実行中のジョブのデータ入出力要求を検出すると、マスタマシン10へファイルのオープンを通知する。このファイルオープン(またはクローズ)を通知するときのフォーマット例を、図5に示す。すなわち、ファイルオープン/クローズ通知60は、送信先であるマスタマシンのアドレス61と、送信元であるスレーブマシンのアドレス62と、ジョブID63と、アクセスするファイル名64と、オープン/クローズ種別65とを含む。ファイルオープンを通知するときは、オープン/クローズ種別65は、「オープン」とし、ファイルクローズを通知するときは、オープン/クローズ種別65は、「クローズ」とする。マスタマシンのアドレス61は、ジョブプログラムが起動されたときにマスタマシン10から通知される(詳細は後述する)。
【0026】
マスタマシン10の入出力処理部12は、オープン/クローズ通知60のオープン/クローズ種別65が「オープン」のとき、ファイル名64のファイルをオープンする。
【0027】
スレーブマシン20の入出力処理部22が、ジョブからリードあるいはライトの要求を受けると、リードあるいはライトの要求をそのままマスタマシン10へ通知する。
【0028】
マスタマシン10の入出力処理部12は、通知されたリードあるいはライトの要求に従って、オープンされたファイルのリードあるいはライトを行う。
【0029】
スレーブマシン20の入出力処理部22が、ジョブからファイルクローズ要求を受けると、オープン/クローズ種別65を「クローズ」として、ファイルオープン/クローズ通知60をマスタマシン10へ送信する。
【0030】
マスタマシン10の入出力処理部12は、オープン/クローズ通知60のオープン/クローズ種別65が「クローズ」のとき、ファイル名64のファイルをクローズする。
【0031】
なお、本実施形態では、入出力処理部12、及び入出力処理部22は、例えば、Javaの入出力ライブラリとして提供される。
【0032】
上述した通り、スレーブマシン20で実行されるジョブは、入出力処理部22へデータアクセスを依頼すれば、マスタマシン10上にあるデータへアクセスすることができる。これにより、各ジョブプログラムが分散処理を意識せずにプログラミングされたものであっても、本実施形態のクラスタリングシステム1上で正しく動作することができる。すなわち、本システム1の利用者は、プログラム間の通信機能を自らプログラミングする必要がなく、プログラム作成コストが軽減される。
【0033】
次に、本実施形態における分散処理の手順の一例について、図6に示すフローチャートを用いて説明する。
【0034】
ジョブ割当処理部15は、ジョブ登録処理部14のジョブ管理テーブル50を参照し、ジョブステータス56が「待ち」である、マシン割当を待っている実行待ち状態のジョブがあるかどうかをチェックする(S11)。実行待ちのジョブがあれば(S11:Yes)、以下の手順でそのジョブを実行する。なお、先行タスク55が設定されている場合は、その先行タスクが終了していることを条件とする。
【0035】
まず、ジョブ割当処理部15は、スレーブ管理部13のスレーブ管理テーブル40を参照して、ジョブを実行していない「待機中」のスレーブマシン20があるかどうかをチェックする(S12)。待機中のスレーブマシン20があるときは(S12:Yes)、ジョブ割当処理部15は、そのスレーブマシン20のステータス42を「遷移中」にするよう、スレーブ管理部13へ指示する。そして、ジョブ割当処理部15は、そのスレーブマシン20の通信アドレス41を取得して、実行しようとしているジョブの実行プログラム53がすでにそのスレーブマシン20に配布されているかどうかをチェックする(S13)。実行プログラムが配布済みであるかどうかのチェックは、例えば、以下のように行う。すなわち、実行プログラムがスレーブマシン20へ配布されると、スレーブマシン20は、図示しない記憶装置に実行プログラムを格納する。ジョブ割当処理部15は、スレーブマシン20の図示しない記憶装置を参照し、実行プログラムのファイル名とタイムスタンプを用いて、同一の実行プログラムであるかどうかを確認する。
【0036】
実行プログラムが未配布であるときは(S13:No)、ジョブ割当処理部15は、そのスレーブマシン20へ実行プログラムを送信する(S14)。その時のフォーマットを図7(a)に示す。すなわち、実行プログラムの送信データ70は、送信先であるスレーブマシンのアドレス71と、送信元であるマスタマシンのアドレス72と、ジョブID73と、実行プログラム74と、メインクラス75と、引数76とを含む。この送信データ70を受信したスレーブマシン20は、これらのデータを図示しない記憶装置に格納する。
【0037】
そして、スレーブマシン20は、ジョブ割当処理部15からの通知を受けて、実行プログラムを起動してジョブを実行する(S15)。スレーブマシン20に対する実行プログラムの起動通知には、マスタマシン10の通信アドレスが含まれる。スレーブマシン20では、マスタマシン10の通信アドレスを、プログラムの実行が終了するまで図示しない記憶装置に保持する。
【0038】
ジョブ割当処理部15は、実行プログラムを起動したスレーブマシン20の通信アドレスと併せて、実行プログラムが起動されたことをスレーブ管理部13へ通知する。スレーブ管理部13は、ジョブ割当処理部15からの通知を受けて、該当するスレーブマシン20のステータス42を「実行中」へ変化させる。
【0039】
ジョブが終了すると、スレーブマシン20がマスタマシン10へジョブの終了通知を行う。ジョブの終了通知のフォーマットを図7(b)に示す。終了通知80は、送信先であるマスタマシンのアドレス81と、送信元であるスレーブマシンのアドレス82と、ジョブID83と、正常終了であるか異常終了であるかを示す終了状態84とを含む。ジョブの終了通知後、図示しない記憶装置に保持されているマスタマシン10の通信アドレスが破棄される。
【0040】
ジョブ割当処理部15は、スレーブ管理部13およびジョブ登録処理部14に対して、終了通知に含まれるスレーブマシンのアドレス82と、ジョブID83と、終了状態84とを通知する。スレーブ管理部13は、この通知を受けて、該当するスレーブマシン20のステータス42を「待機中」へ変化させる。ジョブ登録処理部14は、この通知を受けて、該当するジョブのジョブステータス56を終了状態84が示す状態に変化させる。
【0041】
これにより、複数のジョブで構成されたタスクを、ジョブごとにスレーブマシンに分散させて実行することができる。特に、本実施形態では、実行プログラムをマスタマシンで一括して登録し、タスクの実行時に、必要に応じて実行プログラムを自動的に配布し、ジョブを分散して実行させる。これにより、本実施形態では、従来のクラスタリングシステムのように、事前に全スレーブマシンへ実行プログラムを配布しておく必要がない。
【0042】
また、ジョブ割当処理部15は、スレーブマシン20ごとに優先順位を付け、その優先順位に従ってジョブの割当を行うようにしてもよい。優先順位の決定方法は任意であるが、以下にその例を示す。
【0043】
まず、第1の方法は、スレーブマシンの処理能力を測定し、その結果、処理能力の高いスレーブマシンから優先してジョブを割り当てる。スレーブマシンの処理能力を示す指標としては、ジョブの実行に要した所要時間の平均値を用いる。この所要時間としては、例えば、ジョブ割当処理部15がスレーブマシンへジョブの実行を指示してから、ジョブの終了通知を受信するまでの時間を用いる。この場合の処理時間は、ネットワーク9の通信速度にも影響を受けるが、マスタマシンから見た、トータルでのスレーブマシンの処理能力と考えることができる。また、所要時間として、特定のジョブについての、スレーブマシンごとの処理時間を用いてもよい。特定のジョブとは、繰り返し実行されたジョブであって、複数のスレーブマシンで実行された実績を持つものである。
【0044】
次に、第2の方法は、マスタマシンと各スレーブマシンとの通信速度を測定し、その結果、通信速度の速いスレーブマシンから優先してジョブを割り当てる。通信速度は、ジョブ割当処理部15が通信したデータ量と通信に要した時間とを計測し、これらから算出する。
【0045】
本実施形態により、本システムの処理性能を向上させ、タスクを高速で処理するために、効率的にジョブを分散させることができる。
【0046】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【0047】
【発明の効果】
本発明によれば、利用者のプログラミングの手間が軽減される。また、管理にかかる手間も軽減される。さらに、効率的に処理を分散させて、処理性能を向上させることができる。
【図面の簡単な説明】
【図1】本発明を適用した一実施形態であるクラスタリングシステム1の全体構成を示す図である。
【図2】スレーブ管理テーブル40の一例を示す図である。
【図3】タスク・ジョブ登録画面100の一例を示す図である。
【図4】ジョブ管理テーブル50の一例を示す図である。
【図5】ファイルオープン/クローズ通知60のフォーマットの一例を示す図である。
【図6】ジョブの分散処理の手順を示すフローチャートである。
【図7】(a)は、実行プログラムを配布するときの送信データ70のフォーマット例であり、(b)は、プログラムの終了通知80のフォーマット例である。
【符号の説明】
1…クラスタリングシステム、10…マスタマシン、11…通信処理部、12…入出力処理部、13…スレーブ管理部、14…ジョブ登録処理部、15…ジョブ割当処理部、17…記憶部、20…スレーブマシン、21…通信処理部、22…入出力処理部、40…スレーブ管理テーブル、50…ジョブ管理テーブル、60…ファイルオープン/クローズ通知、70…送信データ、80…終了通知、100…タスク・ジョブ登録画面。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a clustering system that achieves high-speed processing by combining relatively inexpensive computers, and more particularly to a clustering system that improves usability for both users and administrators.
[0002]
[Prior art]
There is known a clustering system that uses a plurality of computers, in particular, a relatively inexpensive computer such as a personal computer, and realizes a processing speed comparable to that of a very expensive supercomputer as a whole. The conventional clustering system has the following features.
-The administrator etc. registers all the computers that make up the cluster in advance.
-An administrator or the like installs an execution program in advance on a registered computer.
-Start and execute the execution program on each computer.
-A clustering system provides a library for inter-program communication. The user himself / herself performs programming for performing communication using this library, and each execution program distributes input data required and collects data output by each program.
[0003]
[Problems to be solved by the invention]
However, the conventional clustering system has the following problems. That is, as described above, it is necessary for an administrator or the like to register all the computers constituting the clustering system in a setting file or the like in advance, and maintenance and management of the setting file is troublesome. In addition, the administrator or the like has to install the execution program in advance on all the computers registered in the setting file, which is troublesome and easily causes work errors. Furthermore, since it is necessary for the user himself to perform programming for performing communication between programs, the cost of creating the program is increased.
[0004]
SUMMARY OF THE INVENTION An object of the present invention is to provide a clustering system that reduces the user's programming effort and each computer constituting the clustering system.
[0005]
Another object of the present invention is to provide a clustering system that reduces the labor involved in management and each computer that constitutes the clustering system.
[0006]
Another object of the present invention is to efficiently distribute processing in order to improve overall processing performance.
[0007]
[Means for Solving the Problems]
A clustering system according to one aspect of the present invention is a clustering system having one master machine and a plurality of slave machines connected to the master machine via a network.
The master machine is
A slave management means for storing a communication address of each slave machine and a status indicating a job execution state;
Program storage means for storing one or more job programs for executing a predetermined job;
Program transmission means for transmitting the job program to any of the slave machines;
Among the slave machines managed by the slave management means, the job waiting for execution is in a standby state in which the registered status can be assigned and executed , and the job is required to be executed. Job allocation processing means that assigns priority from the slave machine with high processing capacity, using the average value of the required time as an index ,
Data storage means for storing a file for storing data accessed by the job ;
When an open notification including a job ID and a file name for a file stored in the data storage means is received from the slave machine, the file corresponding to the file name specified in the open notification is opened, and the slave is opened for the opened file. I / O processing means for performing read or write requested from the machine, receiving a close notification including a job ID and a file name, closing the file corresponding to the file name specified in the close notification, and returning the result With
Each slave machine is
Means for receiving the job program;
An input / output processing means for processing a data input / output request of a job executed by the received job program ,
When the input / output processing unit of each slave machine detects a data input / output request of the job being executed, the input / output processing unit notifies the master machine of a file open including a job ID and a file name, and issues a read or write request from the job. When received, the master machine is notified of a read or write request, and when a file close request is received from a job, the master machine is notified of a file close including a job ID and a file name.
[0008]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0009]
FIG. 1 shows an overall configuration of a
[0010]
Each of the
[0011]
The
[0012]
The communication processing unit 11 automatically detects the
[0013]
Further, when the communication processing unit 11 receives a voluntary notification from the
[0014]
The
[0015]
The input /
[0016]
The task / job
[0017]
The task registration is performed by causing the display device 7 to display a task /
[0018]
Each item input from the
[0019]
The job
[0020]
Each
[0021]
The
[0022]
The
[0023]
Further, the
[0024]
The input /
[0025]
When the input /
[0026]
The input /
[0027]
When the input /
[0028]
The input /
[0029]
When the input /
[0030]
The input /
[0031]
In the present embodiment, the input /
[0032]
As described above, a job executed on the
[0033]
Next, an example of the procedure of distributed processing in this embodiment will be described using the flowchart shown in FIG.
[0034]
The job
[0035]
First, the job
[0036]
When the execution program is not distributed (S13: No), the job
[0037]
The
[0038]
The job
[0039]
When the job ends, the
[0040]
The job
[0041]
As a result, a task composed of a plurality of jobs can be distributed to the slave machines and executed for each job. In particular, in the present embodiment, execution programs are registered in a batch on the master machine, and when executing a task, the execution programs are automatically distributed as necessary, and jobs are distributed and executed. Thereby, in this embodiment, unlike the conventional clustering system, it is not necessary to distribute the execution program to all the slave machines in advance.
[0042]
Further, the job
[0043]
First, the first method measures the processing capacity of a slave machine, and as a result, assigns jobs with priority from slave machines with high processing capacity. As an index indicating the processing capability of the slave machine, an average value of the time required for executing the job is used. As the required time, for example, the time from when the job
[0044]
Next, in the second method, the communication speed between the master machine and each slave machine is measured, and as a result, a job is preferentially assigned from a slave machine having a high communication speed. The communication speed is calculated by measuring the amount of data communicated by the job
[0045]
According to the present embodiment, jobs can be efficiently distributed in order to improve the processing performance of the system and process tasks at high speed.
[0046]
The above-described embodiments of the present invention are examples for explaining the present invention, and are not intended to limit the scope of the present invention only to those embodiments. Those skilled in the art can implement the present invention in various other modes without departing from the gist of the present invention.
[0047]
【The invention's effect】
According to the present invention, the user's programming effort is reduced. In addition, management effort is reduced. Furthermore, the processing performance can be improved by efficiently distributing the processing.
[Brief description of the drawings]
FIG. 1 is a diagram showing an overall configuration of a
FIG. 2 is a diagram illustrating an example of a slave management table 40;
FIG. 3 is a diagram showing an example of a task /
4 is a diagram illustrating an example of a job management table 50. FIG.
FIG. 5 is a diagram illustrating an example of a format of a file open /
FIG. 6 is a flowchart illustrating a procedure of job distribution processing;
7A is a format example of
[Explanation of symbols]
DESCRIPTION OF
Claims (3)
前記マスタマシンは、
前記各スレーブマシンの通信アドレス、および、ジョブの実行状態を示すステータスを記憶するスレーブ管理手段と、
予め定められたジョブを実行するためのジョブプログラムを一以上記憶するプログラム記憶手段と、
前記ジョブプログラムを前記スレーブマシンのいずれかへ送信するプログラム送信手段と、
実行待ちのジョブを、前記スレーブ管理手段により管理されているスレーブマシンのうち、前記登録されているステータスがジョブを割り当てて実行させることが可能な待機状態にあり、かつ、ジョブの実行に要した所要時間の平均値を指標として、処理能力の高いスレーブマシンから優先して割り当てるジョブ割当処理手段と、
前記ジョブがアクセスするデータを格納するファイルを記憶するためのデータ記憶手段と、
前記スレーブマシンから前記データ記憶手段に格納されているファイルに対するジョブIDとファイル名を含むオープン通知を受けるとオープン通知において指定されたファイル名に該当するファイルをオープンし、オープンされたファイルについて前記スレーブマシンから要求されたリードまたはライトを行い、ジョブIDとファイル名とを含むクローズ通知を受けるとクローズ通知において指定されたファイル名に該当するファイルをクローズし、その結果を返信する入出力処理手段と、を備え、
前記各スレーブマシンは、
前記ジョブプログラムを受信する手段と、
受信したジョブプログラムにより実行されるジョブのデータ入出力要求を処理する入出力処理手段と、を備え、
前記各スレーブマシンの入出力処理手段は、実行中のジョブのデータ入出力要求を検出すると、前記マスタマシンにジョブIDとファイル名とを含むファイルオープンを通知し、ジョブからリードまたはライトの要求を受けると、リードまたはライトの要求を前記マスタマシンに通知し、かつ、ジョブからファイルクローズ要求を受けると、マスタマシンにジョブIDとファイル名とを含むファイルクローズを通知すること、を特徴とするクラスタリングシステム。In a clustering system having one master machine and a plurality of slave machines connected to the master machine via a network,
The master machine is
A slave management means for storing a communication address of each slave machine and a status indicating a job execution state;
Program storage means for storing one or more job programs for executing a predetermined job;
Program transmission means for transmitting the job program to any of the slave machines;
Among the slave machines managed by the slave management means, the job waiting for execution is in a standby state in which the registered status can be assigned and executed , and the job is required to be executed. Job allocation processing means that assigns priority from the slave machine with high processing capacity, using the average value of the required time as an index ,
Data storage means for storing a file for storing data accessed by the job ;
When an open notification including a job ID and a file name for a file stored in the data storage means is received from the slave machine, the file corresponding to the file name specified in the open notification is opened, and the slave is opened for the opened file. I / O processing means for performing read or write requested from the machine, receiving a close notification including a job ID and a file name, closing the file corresponding to the file name specified in the close notification, and returning the result With
Each slave machine is
Means for receiving the job program;
An input / output processing means for processing a data input / output request of a job executed by the received job program ,
When the input / output processing unit of each slave machine detects a data input / output request of the job being executed, the input / output processing unit notifies the master machine of a file open including a job ID and a file name, and issues a read or write request from the job. When receiving, the master machine is notified of a read or write request, and when a file close request is received from a job, the master machine is notified of a file close including a job ID and a file name. system.
前記ジョブ割当処理手段は、前記ジョブを割り当てるスレーブマシンに、実行しようとしているジョブの実行プログラムがすでに配布されているかをチェックし、未配布であるとき、その実行プログラムを当該スレーブマシンに送信すること、を特徴とするクラスタリングシステム。The clustering system according to claim 1,
The job allocation processing means checks whether or not the execution program of the job to be executed has already been distributed to the slave machine to which the job is allocated, and transmits the execution program to the slave machine when it has not been distributed. A clustering system characterized by
前記ジョブ割当処理手段は、前記スレーブマシンに記憶されている実行プログラムのファイル名およびタイムスタンプを用いて、配布する実行プログラムが同一のプログラムであるかを確認することにより、実行プログラムがすでに配布されているかをチェックすること、を特徴とするクラスタリングシステム。The clustering system according to claim 2,
The job allocation processing means uses the file name and time stamp of the execution program stored in the slave machine to check whether the execution program to be distributed is the same program, so that the execution program has already been distributed. A clustering system characterized by checking whether or not
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001374748A JP4286481B2 (en) | 2001-12-07 | 2001-12-07 | Clustering system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001374748A JP4286481B2 (en) | 2001-12-07 | 2001-12-07 | Clustering system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009037614A Division JP4870790B2 (en) | 2009-02-20 | 2009-02-20 | Clustering system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003177929A JP2003177929A (en) | 2003-06-27 |
JP4286481B2 true JP4286481B2 (en) | 2009-07-01 |
Family
ID=19183264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001374748A Expired - Fee Related JP4286481B2 (en) | 2001-12-07 | 2001-12-07 | Clustering system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4286481B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005235019A (en) * | 2004-02-20 | 2005-09-02 | Sony Corp | Network system, distributed processing method and information processor |
JP5033343B2 (en) * | 2006-03-28 | 2012-09-26 | 株式会社野村総合研究所 | Job management apparatus and job management method |
CN102508643A (en) * | 2011-11-16 | 2012-06-20 | 刘大可 | Multicore-parallel digital signal processor and method for operating parallel instruction sets |
-
2001
- 2001-12-07 JP JP2001374748A patent/JP4286481B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003177929A (en) | 2003-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8788668B2 (en) | Information processing apparatus, information processing system, setting program transmission method and server setting program | |
CN102567073B (en) | Insertion of management agents during machine deployment | |
US8549517B2 (en) | Address assignment method, computer, and recording medium having program recorded therein | |
US7415709B2 (en) | Virtual resource ID mapping | |
JP4233585B2 (en) | Peripheral switching device and peripheral switching control device | |
US7210147B1 (en) | IP virtualization | |
US8040900B2 (en) | N-port network adaptor | |
JP2001331333A (en) | Computer system and method for controlling computer system | |
US10289564B2 (en) | Computer and memory region management method | |
WO2010066547A2 (en) | Shared resource service provisioning using a virtual machine manager | |
KR102524540B1 (en) | Apparatus and method for multi-cloud service platform | |
US8141084B2 (en) | Managing preemption in a parallel computing system | |
US20100100892A1 (en) | Managing hosted virtualized operating system environments | |
US20060167886A1 (en) | System and method for transmitting data from a storage medium to a user-defined cluster of local and remote server blades | |
US20240053998A1 (en) | Method and apparatus for processing inter-core communication, and computer system | |
JP2008107966A (en) | Computer system | |
US9405472B2 (en) | Tracking ownership of memory in a data processing system through use of a memory monitor | |
JP4870790B2 (en) | Clustering system | |
JP4286481B2 (en) | Clustering system | |
US20120089804A1 (en) | Volume allocating method for virtual computers and computer system using the method | |
US9088569B2 (en) | Managing access to a shared resource using client access credentials | |
JP6244496B2 (en) | Server storage system management system and management method | |
US20230106327A1 (en) | Systems and methods for data mover selection | |
JP2016146045A (en) | Resource management system and resource management method | |
JP2015146148A (en) | Virtual machine management device, virtual machine management method, and virtual machine management program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050405 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050606 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060228 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20060330 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060501 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060706 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20061006 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090113 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090220 |
|
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: 20090325 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120403 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: 20120403 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130403 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130403 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140403 Year of fee payment: 5 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |