JP4621999B2 - 情報処理システム - Google Patents

情報処理システム Download PDF

Info

Publication number
JP4621999B2
JP4621999B2 JP2007532078A JP2007532078A JP4621999B2 JP 4621999 B2 JP4621999 B2 JP 4621999B2 JP 2007532078 A JP2007532078 A JP 2007532078A JP 2007532078 A JP2007532078 A JP 2007532078A JP 4621999 B2 JP4621999 B2 JP 4621999B2
Authority
JP
Japan
Prior art keywords
job
processing
master node
client
jobs
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.)
Active
Application number
JP2007532078A
Other languages
English (en)
Other versions
JPWO2007023726A1 (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.)
NS Solutions Corp
Original Assignee
NS Solutions 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 NS Solutions Corp filed Critical NS Solutions Corp
Publication of JPWO2007023726A1 publication Critical patent/JPWO2007023726A1/ja
Application granted granted Critical
Publication of JP4621999B2 publication Critical patent/JP4621999B2/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/5038Allocation 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 the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/505Allocation 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 the load
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5013Request control
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/506Constraint

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、複数のジョブから構成される大規模演算の処理をネットワーク接続された複数のコンピュータで分かち合って実行する情報処理システムに関する。
コンピュータによる情報処理の高効率化技術の一つとして、分散処理がある。分散処理は複数のマシンでジョブを実行し、並列的に処理を行う技術である。特に、複数のマシンで処理を分かち合う技術としては、多重化システムやグリッドコンピューティングなどと呼ばれるものもある。
このうち、多重化システムは、マシンが故障等のトラブルを起こしたときにも、それまでに処理されたデータを保護する目的、或いは提供中のサービスを継続させる目的に用いられる技術である。このため、多重化システムでは、同一の処理が複数のマシンで実行される。
一方、グリッドコンピューティングは、代表的には複数のコンピュータや記憶媒体をネットワークで接続して、仮想的に大規模高性能なコンピュータとして扱う技術である。例えば大量な計算を必要とする演算処理を、複数のコンピュータで分かち合って実行することで、実質的に演算結果を早く求めることができたりする。
ところで、複数のコンピュータで演算処理を分かち合うためには、各マシンにジョブを割り振る機能が必要になる。かかる機能は、一般的には、ロードバランサとかロードシェアリング(負荷分散)ソフトウェアなどと呼ばれるツールによって実現される。
次に、グリッドコンピューティングにおけるロードバランサの一般的な使われ方を説明する。図7はグリッドコンピューティングの技術を用いて構築された従来の情報処理システムの概略構成図である。かかる情報処理システムは、図7に示すように、クライアント110と、マスターノード120と、四つのノード130a,130b,130c,130dとを備えている。これらのマシン110,120,130a,130b,130c,130dはネットワークで接続されている。クライアント110は大規模演算の依頼元である。例えば、クライアント110が1000個のジョブから構成される大規模演算をマスターノード120に依頼するものとする。ここで、「ジョブ」とは一つの演算の単位である。例えば「z=x+y」という演算で「z」を求めるというようなものである。そして、このとき、xとyに代入される変数がn組あるものとする。つまり、一つのジョブでは代入される変数の数に依存した回数の演算が行われることになる。したがって、ジョブ数としては1000個であるが、全体の演算数としてはその何十倍、何百倍という数になる。
ここで、クライアント110がマスターノード120に依頼する大規模演算は、所定の記憶装置等に記憶されている。この大規模演算のデータは元々、クライアント110とネットワークで接続された他のコンピュータから送信されたり、担当者によってクライアント110の入力装置を用いて入力されたりしたものである。その際、大規模演算のデータは既に所定数(例えば1000個)のジョブに分割された状態で送信又は入力されるケースや、所定数のジョブに分割されずに送信又は入力されるケース等がある。後者のケースでは、クライアント110は、その送信又は入力された大規模演算のデータを所定のルールに基づいて所定数のジョブに分割することになる。以下、本明細書においては、特に断らない限り、大規模演算のデータが最初から1000個のジョブに分割された状態でクライアントに送信又は入力されるケースについて説明する。
マスターノード120は、ロードバランサの機能を司るコンピュータであり、各ノード130a,130b,130c,130dにジョブを割り振る処理を行う。このジョブの割り振りの技術に関しては、各ノードの性能や負荷状況等に応じて適切な大きさのジョブを適切な数だけ当該ノードに送信するという技術が提案されている(例えば、特許文献1、特許文献2参照。)。また、各ノード130a,130b,130c,130dは、マスターノード120によって割り振られたジョブの演算処理を行うコンピュータである。
まず、クライアント110は、1000個のジョブから構成される大規模演算のデータを受信すると、その1000個のジョブをマスターノード120に送信する。次に、マスターノード120は、その受信した1000個分のジョブを各ノード130a,130b,130c,130dに割り振る。各ノード130a,130b,130c,130dは、マスターノード120から送信されたジョブの演算処理を行い、その処理が完了したら当該ジョブが終了したことをマスターノード120に報告する。かかる報告を受けると、マスターノード120は、まだ割り振られていない未処理のジョブがあれば、そのジョブを当該ノードに送信する。こうして、マスターノード120は、未処理のジョブを各ノードに送信する処理と、ジョブが終了した旨の報告を受信する処理とを繰り返し行うことにより、すべてのジョブの演算処理を四つのノード130a,130b,130c,130dに実行させる。
また、マスターノード120は、あくまでもクライアント110から依頼されたジョブを各ノード130a,130b,130c,130dに効率よく割り振るという機能を実現するものであり、各ノード130a,130b,130c,130dでの演算処理結果について何らデータ処理を施すものではない。つまり、各ノード130a,130b,130c,130dでの演算処理結果は、最終的には大規模演算の依頼元であるクライアント110に集約されることが前提となっている。このため、例えば、マスターノード120は、各ノード130a,130b,130c,130dから演算処理結果が返ってきたときには、その演算処理結果をクライアント110に送信する必要がある。
日本国特許出願公開平7−219907号公報 日本国特許出願公開2002−269062号公報
上述したように、マスターノードは、管理下にある各ノードの処理状況・負荷状況を監視しながら、ジョブを次々に適切に割り振って各ノードに送信するというジョブの割り振り処理を行う。しかしながら、マスターノードの管理下にあるノードの数が多くなると、ジョブの割り振り処理の際、マスターノードには各ノードの処理状況・負荷状況を監視するだけでも相当の負荷が生じてしまうという問題がある。しかも、マスターノードは、各ノードの処理状況・負荷状況に応じて適切なノードに適量のジョブを割り振るための最適化処理を行うが、この最適化処理も高負荷となってしまう。
また、クライアントからマスターノードに依頼されるジョブの数が多くなると、マスターノードでは、各ノードから返ってきた演算処理結果をクライアントに送信するという処理が頻発することになる。このため、マスターノードでは、演算処理結果の送信に対する負荷が高まり、マスターノードの行う本来最も重要な処理であるジョブの割り振り処理の処理速度が低下してしまうことがある。
更に、ノードの数がそれほど多くないとしても、依頼されるジョブの数が増加することにより、マスターノードでは、ジョブの割り振り処理を行う際に適切なジョブを選択する負荷が増大すると共に、クライアントとの接続を維持してクライアントからの処理結果監視の要求に応じる負荷が余分に発生する。また、同様に、クライアントにとっても、マスターノードへ依頼するジョブの数が増加することにより、ジョブの処理結果を監視する負荷が増大する。
これらの問題を解消するために、例えば、マスターノード自体の負荷制御を行うことができるような仕組みを有する情報処理システムの実現が望まれている。
本発明は上記事情に基づいてなされたものであり、マスターノードの過負荷を軽減し、マスターノードがその本来の機能であるジョブの各ノードへの割り振り処理を効率よく行うことができる情報処理システムを提供することを目的とするものである。
上記の目的を達成するための本発明に係る情報処理システムは、複数のジョブから構成される大規模演算の処理依頼を取得するクライアントと、各ジョブの処理を実行する複数のノードと、前記クライアントから取得した複数のジョブの処理依頼を前記各ノードに割り振るマスターノードとがネットワーク接続された情報処理システムにおいて、前記クライアントは、取得した前記大規模演算を構成する複数のジョブを記憶手段に記憶しておき、前記記憶手段に記憶されている、前記大規模演算を構成する複数のジョブについて、少なくとも互いに依存関係のあるジョブをまとめていくつかのブロックに区分し、前記複数 のジョブのうち所定数のジョブを第1ブロックとし、その他のジョブをそれぞれ第nブロ ック(n=2,3,・・・,N)とすると共に、最初に前記第1ブロックである所定数の ジョブの処理を前記マスターノードに依頼し、前記マスターノードから一つのジョブにつ いて処理が終了した旨の通知が送られる度に、未だ処理を依頼していない前記ブロックの うち所定の一つのブロックの処理を前記マスターノードに依頼し、前記マスターノードが常に所定数以下のジョブに対して割り振り処理を行うことになるように前記クライアントが前記ブロック単位でジョブの処理を前記マスターノードに依頼し、前記マスターノードは前記ブロックの処理を前記各ノードに割り振ることを特徴とするものである。
本発明に係る情報処理システムにおいて、前記クライアントは、前記大規模演算を構成する複数のジョブについて各ジョブの処理の負荷を見積もり、その見積もって得られた結果にしたがって負荷の重いジョブから負荷の軽いジョブの順に各ジョブの処理を前記マスターノードに依頼することが望ましい。
上記の目的を達成するための本発明に係るコンピュータ読み取り可能な記録媒体は、 記の本発明に係る情報処理システムのいずれかの情報処理システムの機能をコンピュータに実現させるためのプログラムを記録したものである。
上記の目的を達成するための本発明に係るプログラムは、上記の本発明に係る情報処理 システムのいずれかの情報処理システムの機能をコンピュータに実現させるためのものである。
上記の目的を達成するための本発明に係る情報処理装置は、複数のジョブから構成される大規模演算の処理依頼を取得し、その大規模演算を構成する複数のジョブの処理をロードバランサに依頼する情報処理装置であって、取得した前記大規模演算を構成する複数のジョブを記憶する記憶手段と、前記記憶手段に記憶されている、前記大規模演算を構成する複数のジョブを、前記記憶手段に記憶されているグループ化ルール情報に基づいていくつかのジョブグループにまとめるグループ化処理手段と、前記グループ化処理手段で生成された複数のジョブグループについて、前記ロードバランサに処理を依頼しているジョブグループの数が常に所定数以下になるように前記ロードバランサにジョブグループの処理を依頼する管理手段と、を備えることを特徴とするものである。
本発明に係る情報処理装置において、前記グループ化処理手段で生成された複数のジョブグループについて、前記記憶手段に記憶されている負荷見積もりルール情報に基づいて各ジョブグループの処理の負荷を見積もる負荷見積手段を更に備え、前記管理手段は、前記負荷見積手段によって得られた各ジョブグループの処理の負荷についての見積もり結果に基づいて、負荷の重いジョブグループから負荷の軽いジョブグループの順に各ジョブグループの処理を前記ロードバランサに依頼することが望ましい。
上記の目的を達成するための本発明に係るプログラムは、上記の本発明に係る情報処理 装置のいずれかの情報処理装置の機能をコンピュータに実現させるためのものである。
本発明に係る情報処理システムでは、クライアントは、大規模演算を構成する複数のジョブをいくつかのブロックに区分し、マスターノードが常に所定数以下のジョブに対して割り振り処理を行うことになるようにブロック単位でジョブの処理をマスターノードに依頼する。これにより、クライアントは、従来のようにすべてのジョブの処理を一括してマスターノードに依頼するのではなく、複数のジョブを、小規模のジョブを含むいくつかのブロックに区分し、そのブロック単位で少しずつマスターノードに依頼することができる。ここで、各ブロックに含まれるジョブの数は1から上記の所定数までの範囲で適宜決定される。また、上記の所定数は、当該マスターノードが、たとえノードの数が多いときでも、それらのジョブを各ノードに割り振る処理を効率よく行うことができるような数であることが望ましい。このようなクライアントはマスターノードの負荷を制御する機能を有していると考えることができる。このため、マスターノードは常に上記の所定数以下のジョブについてのみ各ノードへの割り振り処理を行えばよいことになるので、マスターノードの負荷が増加するのを防止することができる。しかも、このようにマスターノードの負荷を軽減することができるので、マスターノードは、ジョブの各ノードへの割り振り処理だけでなく、クライアントからの演算結果監視の要求に応じる処理をも効率よく行うことができる。更に、クライアントにとっても、マスターノードに依頼するジョブの数が少なくなるので、演算結果監視の処理に対する負荷が軽減する。
本発明に係る情報処理システムでは、クライアントは、大規模演算を構成する複数のジョブのうち所定数のジョブを第1ブロックとし、その他のジョブをそれぞれ第nブロック(n=2,3,・・・,N)とすると共に、最初に第1ブロックである所定数のジョブの処理をマスターノードに依頼し、マスターノードから一つのジョブについて処理が終了した旨の通知が送られる度に、未だ処理を依頼していないブロックのうち所定の一つのブロックの処理をマスターノードに依頼する。クライアントがこのようにしてジョブの依頼をマスターノードに行うことにより、マスターノードは各ジョブを各ノードに効率よく割り振ることができるので、各ノードにおいて長い処理待ちの時間が発生してしまうのを防止し、各ノードの処理効率の向上を図ることができる。
本発明に係る情報処理システムでは、クライアントは、大規模演算を構成する複数のジョブについて各ジョブの処理の負荷を見積もり、その見積もって得られた結果にしたがって負荷の重いジョブから負荷の軽いジョブの順に各ジョブの処理をマスターノードに依頼する。これにより、マスターノードは、負荷の最も重いジョブの処理を、処理能力の最も高いノードに割り振って、そのノードで最初に実行させることができると共に、各ノードでの全体的な処理時間が略均一になるようにジョブの割り振り処理を行うことができるので、大規模演算全体の処理時間の短縮を図ることができる。
本発明に係る情報処理装置では、グループ化処理手段は、記憶手段に記憶されている、大規模演算を構成する複数のジョブを、記憶手段に記憶されているグループ化ルール情報に基づいていくつかのジョブグループにまとめる。例えば1000個のジョブがグループ化処理手段によって600個のジョブグループにまとめられることになる。管理手段は、このグループ化処理手段で生成された複数のジョブグループについて、ロードバランサに処理を依頼しているジョブグループの数が常に所定数以下になるようにロードバランサにジョブグループの処理を依頼する。例えば上記の所定数が300個に設定されていると、ロードバランサには常に最大でも300個のジョブグループの処理が依頼されることになる。これにより、ロードバランサは常に1000個のジョブを管理する必要がなくなり、300個以下のジョブグループに含まれるジョブ数のジョブについてのみ各ノードへの割り振り処理を行えばよいことになる。このため、ロードバランサの負荷が増加するのを防止することができる。しかも、このようにロードバランサの負荷を軽減することができるので、ロードバランサは、ジョブグループの各ノードへの割り振り処理だけでなく、情報処理装置からの演算結果監視の要求に応じる処理をも効率よく行うことができる。更に、情報処理装置にとっても、ロードバランサに依頼するジョブの数が少なくなるので、演算結果監視の処理に対する負荷が軽減する。
本発明に係る情報処理装置では、負荷見積手段は、グループ化処理手段で生成された複数のジョブグループについて、記憶手段に記憶されている負荷見積もりルール情報に基づいて各ジョブグループの処理の負荷を見積もる。そして、管理手段は、その負荷見積手段によって得られた各ジョブグループの処理の負荷についての見積もり結果に基づいて、負荷の重いジョブグループから負荷の軽いジョブグループの順に各ジョブグループの処理をロードバランサに依頼する。これにより、ロードバランサは、負荷の最も重いジョブグループの処理を、処理能力の最も高いノードに割り振って、そのノードで最初に実行させることができると共に、各ノードでの全体的な処理時間が略均一になるようにジョブグループの割り振り処理を行うことができるので、大規模演算全体の処理時間の短縮を図ることができる。
本発明の一実施形態に係る情報処理システムの概略構成図である。 本実施形態の情報処理システムにおけるクライアントの概略構成ブロック図である。 大規模演算を構成するジョブの一例を説明するための図である。 クライアントのリスト生成手段によって生成されたリストの一例を示す図である。 クライアントが第一の依頼方法により行う処理の手順を説明するためのフローチャートである。 クライアントが第二の依頼方法により行う処理の手順を説明するためのフローチャートである。 グリッドコンピューティングの技術を用いて構築された従来の情報処理システムの概略構成図である。
符号の説明
10 クライアント
11 入力装置
12 表示装置
13 通信部
14 記憶部
15 制御部
15a グループ化処理手段
15b 負荷見積手段
15c リスト生成手段
15d 管理手段
20 マスターノード
30a,30b,30c,30d ノード
以下に、図面を参照して、本願に係る発明を実施するための最良の形態について説明する。図1は本発明の一実施形態に係る情報処理システムの概略構成図である。
本実施形態の情報処理システムは、例えば、大規模演算を複数のコンピュータで分かち合って実行する際に使用されるものであり、図1に示すように、クライアント10と、マスターノード20と、四つのノード30a,30b,30c,30dとを備えるものである。クライアント10、マスターノード20、各ノード30a,30b,30c,30dとしては、パーソナルコンピュータやワークステーション等が用いられる。また、クライアント10、マスターノード20、各ノード30a,30b,30c,30dはネットワークで接続されている。ここで、ネットワークとしては例えばインターネットやLAN・WANの社内ネットワーク等が用いられる。尚、クライアント10は、請求項6記載の発明に係る情報処理装置に該当する。
クライアント10は、大規模演算のデータを受信すると共に、かかる大規模演算の処理をマスターノード20に依頼するものである。大規模演算は複数のジョブから構成されている。ここで、「ジョブ」とは一つの演算の単位である。この大規模演算のデータは、通常、外部のコンピュータ等からネットワークを介してクライアント10に送信されるが、例えばクライアント10の担当者が自ら入力したものであってもよい。外部のコンピュータ等から送信され又は担当者によって入力される大規模演算のデータは、クライアント10での取得時に既にジョブという単位に分割されているものであってもよいし、ジョブという単位に分割されていないものであってもよい。クライアント10は、ジョブという単位に分割される前の状態の大規模演算のデータを取得した場合、クライアント10の有するジョブ分割機能によってその大規模演算のデータを所定数のジョブに分割することになる。このジョブ分割機能の具体的な内容については後述する。
また、クライアント10は、大規模演算を構成する複数のジョブについて、互いに依存性のあるジョブを一つのジョブグループとしてまとめる処理を行う。本実施形態では、実際、大規模演算の処理の依頼は、このジョブグループ単位で行われることになる。更に、クライアント10は、マスターノード20に依頼したジョブグループの処理結果を監視する処理を行う。具体的には、クライアント10は、マスターノード20に依頼したジョブグループの処理が終了したかどうかの問い合わせを一定期間毎に或いは、必要に応じて任意のタイミングでマスターノード20に対して行う。また、クライアント10は、すべてのジョブグループの処理結果を受け取ったときにそれらの結果を統合する処理を行う。尚、このような機能を有するクライアント10は、例えばワークステーションにその機能を実現するためのソフトウェアを組み込むことにより実現される。
ところで、クライアント10は、ジョブグループの処理結果を受け取ったときにそれらの結果を統合する処理を行うが、これはクライアント10が必ず何らかの情報処理を行うということを意味するわけではない。また、クライアント10がジョブグループの処理結果を統合する統合処理を行うのではなく、外部のマシンが統合処理を行うこともある。つまり、例えば1000個のジョブについて1000個の結果が得られた場合、1000個の結果そのものが外部のマシンに送信されるのであれば、クライアント10は統合処理を行う必要はない。
マスターノード20は、ロードバランサの機能を司るコンピュータであり、クライアント10から依頼された各ジョブグループの処理を四つのノード30a,30b,30c,30dに割り振る処理を行う。ここで、各ノード30a,30b,30c,30dにはジョブグループが例えば一個ずつ割り振られる。割り振りの処理自体には従来技術で説明した技術を適用することができる。どのジョブグループをどのノードに割り振るかが決まると、クライアント10はそのジョブグループの内容、すなわち、当該ジョブグループに含まれるジョブの演算内容とその演算に用いる変数とを、当該ジョブグループが割り振られたノードに送信する。あるいは、ジョブの演算内容及びその演算に用いる変数を所定の記憶手段(不図示)に格納しておき、クライアント10が、ジョブグループの識別情報を、当該ジョブグループに含まれるジョブの演算内容とその演算に用いる変数との所在を示す情報とともに、当該ジョブグループが割り振られたノードに送信するようにしてもよい。この場合、各ノード30a,30b,30c,30dは、上記の記憶手段にアクセスして、自己に割り振られたジョブグループに含まれるジョブの演算内容とその演算に用いる変数とを取得することになる。
また、マスターノード20は、クライアント10からの問い合わせに応じて、例えば各ノード30a,30b,30c,30dでのジョブグループの処理が終了した旨の通知をクライアント10に送信する。ここで、マスターノード20は、クライアント10からの問い合わせを受けた時だけでなく、各ノード30a,30b,30c,30dからジョブグループの処理が終了した旨の報告を受けた時にも、処理終了の通知をクライアント10に送信するようにしてもよい。更に、マスターノード20は、各ノード30a,30b,30c,30dからジョブグループの処理結果を受け取ったときに、その処理結果をクライアント10に送信する。尚、このような機能を有するマスターノード20は、例えばワークステーションにその機能を実現するためのソフトウェアを組み込むことにより実現される。
各ノード30a,30b,30c,30dは、マスターノード20からの指示を受けて自己に割り振られたジョブグループの処理を実行するものである。マスターノード20からの指示には、ジョブグループの処理内容や処理結果の格納先(又は送信先)等の情報が含まれている。ここで、本実施形態では、処理結果の格納先(又は送信先)としては、マスターノード20が指定されているものとする。各ノード30a,30b,30c,30dは、ジョブグループの演算処理を終了すると、当該ジョブグループの処理が終了したことをマスターノード20に報告すると共にその処理結果をマスターノード20に送信する。そして、各ノード30a,30b,30c,30dは次の指示が送られてくるのを待つことになる。こうして、マスターノード20から各ノード30a,30b,30c,30dへの指示、各ノード30a,30b,30c,30dからマスターノード20への報告が繰り返し行われることにより、大規模演算の処理が実行される。このとき、マスターノード20は、そのロードバランサ機能により、各ノード30a,30b,30c,30dがジョブグループの処理終了を報告してから次の指示を受けるまでの待ち時間が少なくなるような制御をも行っている。
次に、クライアント10の構成について詳しく説明する。図2は本実施形態の情報処理システムにおけるクライアント10の概略構成ブロック図である。
クライアント10は、図2に示すように、入力装置11と、表示装置12と、通信部13と、記憶部14と、制御部15とを備える。入力装置11は、例えば、各種の命令を入力したり、大規模演算のデータを入力したりするものである。この入力装置11としては、キーボードやマウス等が用いられる。また、表示装置12は、例えば、大規模演算のデータを入力するための入力画面を表示したり、その大規模演算の処理結果を表示したりするものである。
通信部13は、マスターノード20や他のマシン(コンピュータやデータベース等)に情報を送信したり、マスターノード20や他のマシンから情報を受信したりするものである。具体的に、他のマシンからクライアント10に送られる情報としては、例えば大規模演算のデータ等がある。また、クライアント10からマスターノード20に送られる情報としては、ジョブグループの処理を依頼するための処理命令、処理結果監視のための問い合わせ等があり、マスターノード20からクライアント10に送られる情報としては、各ジョブグループの処理結果等がある。
記憶部14は、各種のアプリケーションプログラムや各種のデータ等を記憶するものである。記憶部14としては、クライアント10内のメモリやハードディスクドライブ、外部の記憶装置等を用いることができる。例えば、この記憶部14には、大規模演算のデータ、グループ化ルール情報、負荷見積もりルール情報、ジョブグループのリスト、マスターノード20が割り振り処理を行うジョブグループの上限数、各ジョブグループの処理結果等が記憶される。グループ化ルール情報、負荷見積もりルール情報、ジョブグループのリスト、マスターノード20が割り振り処理を行うジョブグループの上限数については後述する。
ここで、大規模演算について具体的に説明する。いま、外部のマシンからネットワークを介して大規模演算のデータがクライアント10に送られたとする。クライアント10の通信部13は、かかる大規模演算のデータを受信すると、記憶部14に格納する。図3は大規模演算を構成するジョブの一例を説明するための図である。この例では、この大規模演算は、1000個のジョブから構成されている。このうち、ジョブ“1”は「z =x+y」という演算であり、その変数の組(x,y)は例えば10組あるものとする。ジョブ“2”は「z=z ×x 」という演算である。すなわち、このジョブ“2”の変数は、ジョブ1の処理結果z と変数x とである。変数x が二つの値をとるとすると、変数の組(z ,x )は20組あることになる。また、ジョブ“3”は「z=x+y +y 」という演算である。この変数の組(x,y ,y )は例えば20組あるものとする。その他のジョブについてもその演算内容と変数とが指定されている。大規模演算は、このようなジョブの集まりによって構成されている。尚、図3に示す大規模演算の例では、一つのジョブに一つの演算内容(演算式)が含まれているが、一般には、一つのジョブに複数の演算内容が含まれていることもある。また、図3に示す大規模演算の例では、各ジョブに含まれる演算内容(演算式)がそれぞれ異なっているが、大規模演算を構成する複数のジョブの中には、演算内容が同じで変数だけが異なっている複数のジョブが存在していてもよい。
ところで、クライアント10は、上述したように、大規模演算のデータをジョブという単位に分割されない状態で外部のマシンから受信することがある。すなわち、大規模演算のデータに含まれるすべての演算内容とそれらに用いる変数のデータとが、例えば図3に示すようにジョブ“1”からジョブ“1000”まで合計1000個のジョブに分割された状態ではなく、その分割される前の状態で外部のマシンからクライアント10に送信されることがある。この場合、クライアント10は、そのクライアント10に備えられたジョブ分割機能を利用して、その送信された大規模演算のデータを演算毎に分割し、その分割した各々の演算とそれに用いる変数とを組み合わせることにより、ジョブという単位に分割された状態の大規模演算のデータを得ることができる。また、大規模演算のデータは、外部のマシンからクライアント10に直接送信されるのではなく、外部データベースに格納されていることがある。この場合、クライアント10は、外部データベースの所在情報と大規模演算のデータについての分割の判断基準となるデータとだけを外部のマシンから予め受信することになる。そして、クライアント10は、ジョブ分割機能を利用して、その外部データベースにアクセスし、分割の判断基準に基づいてその大規模演算のデータを複数のジョブに分割することにより、ジョブという単位に分割された状態の大規模演算のデータを取得することができる。
制御部15は、クライアント10の各部を統括して制御するものである。この制御部15は、図2に示すように、グループ化処理手段15aと、負荷見積手段15bと、リスト生成手段15cと、管理手段15dとを有する。
グループ化処理手段15aは、大規模演算を構成する複数のジョブについて、互いに依存性のあるジョブを一つのジョブグループとしてまとめるグループ化処理を行うものである。あるジョブとあるジョブとの間に関連性があったり、依存関係があったりすると、それらのジョブを別個に処理することが適当でない場合がある。例えば、図3に示すように、ジョブ“1”の処理結果を使ってジョブ“2”の演算が行われる場合には、ジョブ“1”の処理をマスターノード20に依頼する前にジョブ“2”の処理を依頼したのでは、ジョブ“2”の処理が実行不可能となってしまう。そこで、グループ化処理手段15aは、記憶部14に格納されているグループ化ルール情報を読み出し、この読み出したグループ化ルール情報に従って大規模演算を構成する複数のジョブをいくつかのジョブグループにまとめるグループ化処理を行う。かかるグループ化ルール情報は演算対象の大規模演算毎に予め記憶部14に格納されている。また、グループ化ルール情報は、大規模演算のデータとともに外部のマシンから送信され、その際に記憶部14に格納されることもある。例えば、物体の軌道を算出するための大規模演算に対するグループ化ルール情報では、演算の対象が物体の科学的性質や物理的性質の点で互いに共通しているジョブを一つのグループにまとめるというルールを定め、工場などで製品の生産計画を立てるための大規模演算に対するグループ化ルール情報では、演算の対象が製品の品種や大きさの点で互いに共通しているジョブを一つのグループにまとめるというルールを定めることができる。また、図3に示す大規模演算に対するグループ化ルール情報では、変数の利用関係があるジョブ同士を一つのグループにまとめるというルールを定めることができる。このルール情報を適用すると、図3の例では、グループ化処理手段15aは、各ジョブについて変数の利用関係を解析し、ジョブ“1”とジョブ“2”とを一つのジョブグループとしてまとめることになる。更に、グループ化ルール情報において、一つのジョブグループに含めることができるジョブの上限数を設定し、当該上限数を超えない範囲で複数のジョブを一つのグループにまとめるというルールを定めてもよい。また、上記のようなルールを複数組み合わせて得られるルールを定めることも可能である。例えば、工場などで製品の生産計画を立てるための大規模演算に対するグループ化ルール情報において、演算の対象が製品の品種や大きさの点で互いに共通しているジョブを一つのグループにまとめ、且つ、各グループには所定の上限値を超える数のジョブを含んではならないというルールを定めることができる。本実施形態では、具体的に、グループ化処理手段15aが、図3に示すような1000個のジョブについてグループ化処理を行い、図1に示すように、600個のジョブグループが得られたものとする。
負荷見積手段15bは、グループ化処理手段15aによって得られた各ジョブグループについて、記憶部14に格納されている負荷の見積もりルール情報に従ってその処理の負荷を見積もるものである。例えば、負荷見積もりルール情報には、各ジョブグループの処理の負荷の見積もりを、当該ジョブグループを構成する各ジョブについての変数の組の数の和に基づいて行うべきことが定められている。この変数の組の数の和は、当該ジョブグループの演算を行う際にそれに含まれるジョブの演算を行う回数である。このため、各ジョブの演算内容がほぼ同じ程度であれば、変数の組の数の和が多いほどそのジョブグループの処理の負荷が大きいと考えられる。尚、各ジョブの演算内容が大きく異なっていれば、それに応じても負荷が変わってくる。このような場合、負荷を正確に見積もるためには、変数の組の数に加えて、ジョブの内容をも考慮するように、負荷見積もりルール情報の内容を変更すればよい。このようなジョブの内容をも考慮した負荷の見積もりを行うには、例えば、ジョブの演算内容の程度を示すパラメータを外部から与えたり、或いは前回使用したパラメータを記憶部14に格納しておき、再度読み出して利用したりする必要がある。
尚、負荷見積手段15bによる見積もりの結果、非常に負荷の高いジョブグループがあった場合には、負荷見積手段15bは、そのジョブグループをグループ化処理手段15aに戻し、当該ジョブグループを更に小規模に分割する処理をグループ化処理手段15aに行わせるようにしてもよい。この場合、グループ化ルール情報には、ジョブグループを更に小規模に分割するかどうかを判断するための負荷の閾値情報やその更なる分割を行うためのルールを含めておく必要がある。特に、互いに依存関係があるジョブをそれぞれ別のグループに分けることはできないので、このような分割できないジョブについてのルールもそのグループ化ルール情報に含めておく必要がある。一般には、グループ化ルール情報に含まれるルールを、if−thenルールや範囲指定ルール等、様々な形式のルールで定義することが可能である。
リスト生成手段15cは、負荷見積手段15bによって見積もられた各ジョブグループの処理の負荷に基づいて、複数のジョブグループをその負荷の重い順にソートして得られるジョブグループのリストを生成して記憶部14に記憶するものである。図4にリスト生成手段15cによって生成されたリストの一例を示す。このリストには、ジョブグループID欄と、対象ジョブ欄とが設けられている。ジョブグループID欄には、当該ジョブグループに付与されたID番号(識別情報)が記載され、対象ジョブ欄には、当該ジョブグループを構成するジョブの番号が記載される。図4のリストは、図3に示す1000個のジョブから得られた600個のジョブグループについてのものである。このリストの最上位に負荷の最も重いジョブグループが記述され、下位に行くほど負荷の軽いジョブグループが記述されている。この例では、ジョブ“1000”のみから構成されるID番号“001”のジョブグループの負荷が最も重く、次に、ジョブ“5”、ジョブ“6”及びジョブ“7”から構成されるID番号“002”のジョブグループの負荷が二番目に重い。このように、図4の例では、リスト生成手段15cは、600個のジョブグループに対し、負荷の重いものから順番にID番号を付与している。このため、ジョブグループのID番号は、ジョブグループを識別する役割だけでなく、負荷の重い順番を表す役割をも果たしている。また、このリストには、各ジョブグループについて、依頼済欄と、受信済欄とが設けられている。依頼済欄は、当該ジョブグループの処理をマスターノード20に依頼したことを示す依頼済フラグを付けるための欄であり、受信済欄は、当該ジョブグループの処理が終了したことを示す通知を受信したことを示す受信済フラグを付けるための欄である。具体的に、本実施形態では、依頼済欄及び受信済欄にはそれぞれ、当該処理が“済”でない状態にあるときに“0”というフラグが、当該処理が“済”の状態にあるときに“1”というフラグが付けられる。尚、これら依頼済フラグと受信済フラグとは管理手段15dによって管理される。
管理手段15dは、大規模演算を構成する各ジョブグループの処理をマスターノード20に依頼するものである。具体的に、管理手段15dは、大規模演算を構成する複数のジョブグループをいくつかのブロックに区分し、マスターノード20が常に所定数以下のジョブグループに対して割り振り処理を行うことになるようにそのブロック単位でジョブグループの処理をマスターノード20に依頼する。ここで、各ブロックに含まれるジョブグループの数は1から上記の所定数までの範囲で適宜決定される。すなわち、上記の所定数(マスターノード20が割り振り処理を行うジョブグループの上限数)をMとすると、一つのブロックにはm個のジョブグループが含まれることになる。ここで、mは1以上M以下の自然数である。また、マスターノード20が割り振り処理を行うジョブグループの上限数Mは、マスターノード20が、たとえノードの数が多いときでも、それらのジョブグループを各ノードに割り振る処理を効率よく行うことができるような数であることが望ましい。すなわち、このマスターノード20が割り振り処理を行うジョブグループの上限数Mは、マスターノード20の処理能力に応じて決められる。例えば、本実施形態では、マスターノード20が割り振り処理を行うジョブグループの上限数Mを300に決定している。ここで、このマスターノード20が割り振り処理を行うジョブグループの上限数Mは、記憶部14に格納されている。
また、管理手段15dは、図4に示すリストの内容にしたがって負荷の重いジョブグループから負荷の軽いジョブグループの順に各ジョブグループの処理をマスターノード20に依頼することが望ましい。もし最後に一番負荷の重いジョブグループの処理をマスターノード20に依頼したとすると、そのジョブグループがある一つのノードで長い時間にわたって処理され、大規模演算全体に対する処理時間がとても長くなってしまう。負荷の重いジョブグループから順にその処理をマスターノード20に依頼することにより、マスターノード20は、負荷の最も重いジョブグループの処理を、処理能力の最も高いノードに割り振って、そのノードで最初に実行させることができると共に、各ノードでの全体的な処理時間が略均一になるようにジョブグループの割り振り処理を行うことができるので、当該大規模演算全体の処理時間の短縮を図ることができる。
ところで、管理手段15dがマスターノード20に対して行うジョブグループの依頼の方法としては、さまざまな方法が考えられる。本実施形態では、代表的に、以下に示す二つの依頼方法を説明する。
第一の依頼方法では、図4に示すように、大規模演算を構成する600個のジョブグループのうち、図4のリスト上で最上位から300番目までに記述されている300個のジョブグループを第1ブロックとし、その他のジョブグループをそれぞれ、図4のリスト上で上位にあるものから順に、第nブロック(n=2,3,・・・,N)とする。ここで、N=301である。すなわち、ID番号“001”からID番号“300”までの300個のジョブグループを第1ブロック、ID番号“301”のジョブグループを第2ブロック、ID番号“302”のジョブグループを第3ブロック、・・・、ID番号“600”のジョブグループを第301ブロックとする。そして、管理手段15dは、最初に第1ブロックである300個のジョブグループの処理をマスターノード20に依頼し、マスターノード20から一つのジョブグループについての処理が終了した旨の通知が送られる度に、未だ処理を依頼していないブロックのうち所定の一つのブロックの処理をマスターノード20に依頼する。ここで、所定の一つのブロックの処理についての依頼は、その時点ですでに依頼されているブロックを除いて図4のリスト上で最も上位に記述されているブロックについて行う。例えば、現時点で第1ブロックから第100ブロックまでの合計100個のブロックがマスターノード20に依頼されている場合に、管理手段15dは、一つのジョブグループについての処理が終了した旨の通知が送られると、第101ブロックの処理をマスターノード20に依頼することになる。
また、第二の依頼方法では、大規模演算を構成する600個のジョブグループのうち、図4のリスト上で最上位から300番目までに記述されている300個のジョブグループを第1ブロックとし、そのリスト上で301番目から600番目までに記述されている300個のジョブグループを第2ブロックとする。そして、管理手段15dは、最初に第1ブロックである300個のジョブグループの処理をマスターノード20に依頼し、その依頼したすべてのジョブグループの処理が終了した後に、第2ブロックである300個のジョブグループの処理をマスターノード20に依頼する。
第一の依頼方法を用いると、マスターノード20は各ジョブグループを各ノード30a,30b,30c,30dに効率よく割り振ることができるので、各ノード30a,30b,30c,30dにおいて長い処理待ちの時間が発生してしまうのを防止し、各ノード30a,30b,30c,30dの処理効率の向上を図ることができる。一方、第二の依頼方法を用いた場合も、同様に、各ノード30a,30b,30c,30dの処理効率の向上を図ることができる。但し、第二の依頼方法では、第1ブロックの処理が終了してから第2ブロックの処理が実際に開始されるまでに、各ノード30a,30b,30c,30dにおいて若干の処理待ち時間が発生する可能性があるので、この点を考慮すると、第一の依頼方法は第二の依頼方法に比べて各ノードの処理効率が優れていると思われる。
このように、本実施形態では、管理手段15dは、大規模演算を構成する600個のジョブグループをいくつかのブロックに区分し、マスターノード20が常に300個以下のジョブグループに対して割り振り処理を行うことになるようにそのブロック単位でジョブグループの処理をマスターノード20に依頼する。このため、仮想的にみれば、マスターノード20は、従来に比べて最大300個という比較的小規模なジョブグループについてノードへの割り振り処理を行うことになるので、マスターノード20の負荷が増加することを防止することができる。すなわち、本実施形態では、クライアント10(管理手段15d)がマスターノード20の負荷制御機能として働くことになり、これにより、マスターノード20及びクライアント10は全体的に高負荷状態から解放される。
また、管理手段15dは、リスト生成手段15cによって生成されたリストを利用して、各ジョブグループの処理の依頼状況を管理する。すなわち、管理手段15dは、ジョブグループの処理をマスターノード20に依頼すると、図4のリストにおいて、その依頼したジョブグループに対する依頼済欄に依頼済フラグ“1”を付ける。また、管理手段15dは、その依頼したジョブグループの処理が終了したかどうかの問い合わせを一定期間毎に或いは、必要に応じて任意のタイミングでマスターノード20に対して行うが、マスターノード20から当該ジョブグループの処理が終了した旨の通知が送られると、図4のリストにおいて、その通知を受けたジョブグループに対する受信済欄に受信済フラグ“1”を付ける。このため、管理手段15dは、リスト上で各ジョブグループについて依頼済フラグ“1”が付けられているかどうかを判断することにより、当該ジョブグループの処理をマスターノード20に依頼したかどうかを認識することができると共に、リスト上で各ジョブグループについて受信済フラグ“1”が付けられているかどうかを判断することにより、当該ジョブグループの処理が終了したかどうかを認識することができる。
次に、本実施形態の情報処理システムにおいて大規模演算を処理する手順を説明する。
最初に、クライアント10が第一の依頼方法により処理を行う場合に、本実施形態の情報処理システムにおいて大規模演算を処理する手順を説明する。図5はクライアント10が第一の依頼方法により行う処理の手順を説明するためのフローチャートである。
まず、例えば、ネットワークを介してクライアント10に大規模演算のデータが送信される。ここでは、かかる大規模演算が図3に示すような1000個のジョブから構成されているものとする。クライアント10は、かかる大規模演算のデータを受信すると、その大規模演算を構成する1000個のジョブについて、互いに依存性のあるジョブを一つのジョブグループとしてまとめるグループ化処理を行う(S11)。ここでは、クライアント10がグループ化処理を行うことにより、図1に示すように600個のジョブグループが得られたものとする。
次に、クライアント10は、各ジョブグループについて、その処理の負荷を見積もる(S12)。例えば、かかる負荷の見積もりは、当該ジョブグループを構成する各ジョブについての変数の組の数の和に基づいて行われる。この場合、クライアント10は、変数の組の数の和が多いほどそのジョブグループの処理の負荷が大きいと判定する。
次に、クライアント10は、ステップS12の処理で得られた各ジョブグループの処理の負荷に基づいて、600個のジョブグループをその負荷の重い順にソートして得られるジョブグループのリストを生成する(S13)。ここでは、図4に示すようなリストが生成されたものとする。
次に、クライアント10は、600個のジョブグループを301個のブロックに区分する。具体的には、図4のリスト上で最上位から300番目までに記述されているID番号“001”からID番号“300”までの300個のジョブグループを第1ブロックとし、その他のジョブグループをそれぞれ、図4のリスト上で上位にあるものから順に、第2ブロック、第3ブロック、・・・、第301ブロックとする。ここで、第1ブロックには300個のジョブグループが含まれ、第nブロック(n=2,3,・・・,301)には1個のジョブグループだけが含まれる。こうして、合計301個のブロックが得られる。その後、クライアント10は、最初に第1ブロックである300個のジョブグループの処理をマスターノード20に依頼する(S14)。そして、クライアント10は、ジョブグループの処理をマスターノード20に依頼したときに、リスト上で、その依頼したジョブグループに対する依頼済欄に依頼済フラグ“1”を付ける。
こうしてクライアント10から300個のジョブグループの処理が依頼されると、マスターノード20は、これらのジョブグループの処理を各ノード30a,30b,30c,30dに割り振る。各ノード30a,30b,30c,30dは自己に割り振られたジョブグループの処理を実行する。各ノード30a,30b,30c,30dは当該ジョブグループの処理が終了すると、その旨の報告と共に処理結果をマスターノード20に送信する。
一方、クライアント10は、ジョブグループの処理をマスターノード20に依頼したときには、その依頼したジョブグループの処理が終了したかどうかの問い合わせを一定期間毎に或いは、必要に応じて任意のタイミングでマスターノード20に対して行う。マスターノード20は、この問い合わせを受けたときに、処理が終了しているジョブグループがあれば、当該ジョブグループの処理が終了した旨の通知とその処理結果とをクライアント10に送信する。そして、クライアント10は、当該ジョブグループの処理が終了した旨の通知を受信すると、リスト上で、当該ジョブグループに対する受信済欄に受信済フラグ“1”を付ける(S15)。
ステップS15の処理の後、クライアント10は、リスト上で依頼済フラグ“1”の付けられていないジョブグループがあるかどうかを判断する(S16)。まだ依頼済フラグ“1”の付けられていないジョブグループがあれば、クライアント10は、現時点ですでに依頼されているジョブグループを除いて図4のリスト上で最も上位に記述されているジョブグループの処理をマスターノード20に依頼する(S17)。また、クライアント10は、リスト上で、その依頼したジョブグループに対する依頼済欄に依頼済フラグ“1”を付ける。その後はステップS15に移行する。ステップS15、S16及びS17の処理は、ステップS16においてクライアント10が依頼済フラグ“1”の付けられていないジョブグループがあると判断する限り、繰り返し行われる。ここで、依頼済フラグ“1”の付けられていないジョブグループがある限りは、マスターノード20に処理が依頼されているジョブグループの数は常に300個である。すなわち、依頼済フラグ“1”の付けられていないジョブグループがある限り、マスターノード20は、常に300個のジョブグループについて各ノード30a,30b,30c,30dへの割り振り処理を行うことになる。
かかるステップS15、S16及びS17の処理が300回繰り返し行われた後に、クライアント10があるジョブグループの処理が終了した旨の通知を受信すると(S15)、クライアント10は、リスト上で依頼済フラグ“1”の付けられていないジョブグループがないと判断することになる(S16)。すなわち、この時点で、600個のジョブグループすべての処理がマスターノード20に依頼されたことになる。次に、クライアント10は、リスト上で受信済フラグ“1”の付けられていないジョブグループがあるかどうかを判断する(S18)。まだ受信済フラグ“1”の付けられていないジョブグループがあれば、ステップS19に移行する。このステップS19では、クライアント10は、あるジョブグループの処理が終了した旨の通知を受信したときに、リスト上で当該ジョブグループに対する受信済欄に受信済フラグ“1”を付ける。その後はステップS18に移行する。ステップS18及びS19の処理は、ステップS18においてクライアント10が受信済フラグ“1”の付けられていないジョブグループがあると判断する限り、繰り返し行われる。このとき、ステップS19の処理が一回行われる度に、マスターノード20に処理が依頼されているジョブグループの数は、一つずつ減ることになる。したがって、リスト上ですべてのジョブグループに対して依頼済フラグ“1”が付けられた後は、マスターノード20は、常に300個以下のジョブグループについて各ノード30a,30b,30c,30dへの割り振り処理を行うことになる。
ステップS18及びステップS19の処理が300回繰り返し行われた後には、クライアント10は、リスト上で受信済フラグ“1”の付けられていないジョブグループがないと判断することになる(S18)。すると、クライアント10は、大規模演算の処理が終了したことを認識し、処理結果の統合を行う(S20)。以上で、図5に示すクライアント10の処理フローが終了する。
次に、クライアント10が第二の依頼方法により処理を行う場合に、本実施形態の情報処理システムにおいて大規模演算を処理する手順を説明する。図6はクライアント10が第二の依頼方法により行う処理の手順を説明するためのフローチャートである。
図6の処理フローにおけるステップS51、ステップS52、ステップS53の各処理の内容はそれぞれ、図5の処理フローにおけるステップS11、ステップS12、ステップS13の各処理の内容と同じである。このため、ここでは、これらの説明を省略する。
ステップS53の処理の後、クライアント10は、600個のジョブグループを、二つのブロックに区分する(S54)。具体的には、図4のリスト上で最上位から300番目までに記述されている300個のジョブグループを第1ブロックとし、そのリスト上で301番目から600番目までに記述されている300個のジョブグループを第2ブロックとする。
次に、クライアント10は、一つのブロックの処理をマスターノード20に依頼する(S55)。ここでは、マスターノードに依頼するブロックの順番を、最初に第1ブロック、次に第2ブロックとする。したがって、この場合には、まず、第1ブロックである300個のジョブグループの処理がマスターノード20に依頼されることになる。また、クライアント10は、ジョブグループの処理をマスターノード20に依頼したときに、リスト上で、その依頼したジョブグループに対する依頼済欄に依頼済フラグ“1”を付ける。
その後、クライアント10は、その依頼したジョブグループの処理が終了したかどうかの問い合わせを一定期間毎に或いは、必要に応じて任意のタイミングでマスターノード20に対して行う。そして、クライアント10は、その問い合わせに対してあるジョブグループの処理が終了した旨の通知をマスターノード20から受け取ると、リスト上で当該ジョブグループに対する受信済欄に受信済フラグ“1”を付ける(S56)。
次に、クライアント10は、リスト上で依頼済フラグ“1”の付けられているジョブグループのうち、受信済フラグ“1”の付けられていないジョブグループがあるかどうかを判断する(S57)。まだ受信済フラグ“1”の付けられていないジョブグループがあれば、ステップS56に移行する。ステップS56及びステップS57の処理は、今回依頼した300個のジョブグループの処理がすべて終了していないと判断される限り、繰り返し行われる。
かかるステップS56及びステップS57の処理が299回繰り返し行われた後に、クライアント10がジョブグループの処理が終了した旨の通知を受信すると(S56)、クライアント10は、リスト上で依頼済フラグ“1”の付けられているジョブグループのすべてについて、受信済フラグ“1”が付けられていると判断することになる(S57)。すなわち、この時点で、第1ブロックである300個のジョブグループすべての処理が終了したことになる。次に、クライアント10は、まだマスターノード20に処理を依頼していないブロックがあるかどうかをリスト上の依頼済フラグ“1”に基づいて判断する(S58)。この場合には、第2ブロックに含まれるジョブグループについてはまだマスターノード20に処理を依頼しておらず依頼済フラグ“1”が付けられていないので、このステップS58の判断は肯定的となる。ステップS58の判断が肯定的であれば、ステップS55に移行する。このステップS55においては、第2ブロックである300個のジョブグループの処理がマスターノード20に依頼されることになる。
こうして、第2ブロックである300個のジョブグループの処理がすべて終了し(S57)、マスターノード20に処理を依頼していないブロックがなくなると(S58)、クライアント10は、大規模演算の処理が終了したことを認識し、処理結果の統合を行う(S59)。以上で、図6に示すクライアント10の処理フローが終了する。
本実施形態の情報処理システムでは、クライアントは、大規模演算を構成する複数のジョブをいくつかのジョブグループにまとめた後、それらのジョブグループを更にブロックに区分すると共に、マスターノードが常に所定数以下のジョブグループに対して割り振り処理を行うことになるようにブロック単位でジョブグループの処理をマスターノードに依頼する。これにより、クライアントは、従来のようにすべてのジョブの処理を一括してマスターノードに依頼するのではなく、複数のジョブグループの処理を、ブロック単位で少しずつマスターノードに依頼することができる。このようなクライアントはマスターノードの負荷を制御する機能を有していると考えることができる。このため、マスターノードは常に上記の所定数のジョブグループに含まれるジョブ数のジョブだけを各ノードに割り振るという処理を行えばよいことになるので、マスターノードの負荷が増加するのを防止することができる。しかも、このようにマスターノードの負荷を軽減することができるので、マスターノードは、ジョブグループの各ノードへの割り振り処理だけでなく、クライアントからの演算結果監視の要求に応じる処理をも効率よく行うことができる。更に、クライアントにとっても、マスターノードに依頼するジョブの数が少なくなるので、演算結果監視の処理に対する負荷が軽減する。
尚、本発明は上記の実施形態に限定されるものではなく、その要旨の範囲内において種々の変形が可能である。
上記の実施形態では、マスターノードから各ノードへの指示において処理結果の格納先としてマスターノードを指定しており、各ノードがジョブグループの処理結果をマスターノードに送信し、マスターノードがその処理結果をクライアントに送信する場合について説明したが、例えば、マスターノードから各ノードへの指示において処理結果の格納先として所定のデータベースを指定するようにしてもよい。この場合、各ノードは、ジョブグループの演算処理を終了すると、当該ジョブグループの処理が終了したことをマスターノードに報告すると共にその処理結果を当該指定されたデータベースに格納することになる。そして、クライアントは、マスターノードからジョブグループの処理終了の通知を受け取ったときに、そのデータベースにアクセスして、当該ジョブグループの処理結果を取得することになる。
また、上記の実施形態では、クライアントは、各ジョブグループの処理の負荷を見積もり、その見積もって得られた結果にしたがって負荷の重いジョブグループから負荷の軽いジョブグループの順に各ジョブグループの処理をマスターノードに依頼する場合について説明したが、クライアントは、必ずしもジョブグループの処理の負荷を見積もり、その負荷の重いジョブグループの順に各ジョブグループをマスターノードに依頼する必要はない。すなわち、クライアントは、各ジョブグループを任意の順番でマスターノードに依頼するようにしてもよい。
更に、上記の実施形態では、クライアントは、互いに依存性のあるジョブを一つのグループとしてまとめるグループ化処理を行う場合について説明したが、例えば、ジョブとして互いに依存性のないものが用いられているのであれば、クライアントは、必ずしもジョブのグループ化処理を行う必要はない。また、演算の基本単位であって他の演算結果に依存しないものを「ジョブ」と定義するようにしてもよい。これらの場合には、当然に、ジョブとジョブグループとを同一視することができる。尚、ジョブとして互いに依存性のないものが用いられている場合には、グループ化ルール情報として、一つのジョブグループに含めることができるジョブの上限数についての情報を用い、グループ化処理手段が、その上限数についての情報に基づいて、複数のジョブをいくつかのジョブグループに区分するようにしてもよい。
また、上記の実施形態では、一つのクライアントから一つのマスターノードにジョブ(又はジョブグループ)の依頼が行われる場合について説明したが、例えば、複数のクライアントから一つのマスターノードにジョブ(又はジョブグループ)の依頼が同時に行われる場合も考えられる。この場合には、複数のクライアントに、ブロック単位でジョブ(又はジョブグループ)の依頼を行うという本発明の特徴的な機能の他に、それらのクライアントの間で連携をとる機能を持たせることが望ましい。これにより、各クライアントは、互いに連携を取って、マスターノードに依頼されるジョブ(又はジョブグループ)の合計数が常に所定数以下となるように調整することができる。このような連携機能を実現する方法としては、各クライアントが互いに通信を行い、マスターノードに現在依頼しているジョブ(又はジョブグループ)の数についての情報を相互に通知するという方法を用いることができる。また、別の方法として、マスターノードに、或いはクライアントでもマスターノードでもない他のマシンに、マスターノードに現在依頼しているジョブ(又はジョブグループ)の数を管理するジョブ数管理手段を設けるという方法を用いることができる。具体的に、このジョブ数管理手段は、マスターノードが依頼を受け付けることができるジョブ(又はジョブグループ)の上限数についての情報を有している。各クライアントは、マスターノードにジョブ(又はジョブグループ)の処理を依頼する際に、ジョブ数管理手段に対してその依頼するジョブ(又はジョブグループ)の数についての情報を送信する。ジョブ数管理手段は、各クライアントからジョブ(又はジョブグループ)の数についての情報が送られたときに、かかるジョブ(又はジョブグループ)の依頼を受け付けたならば、マスターノードに依頼されているジョブ(又はジョブグループ)の合計数が上記上限数を超えるかどうかを判断する。そして、ジョブ数管理手段は、その合計数が上記上限数を超えないと判断すると、当該クライアントにジョブ(又はジョブグループ)の依頼を許容する旨の指示を送信し、一方、その合計数が上記上限数を超えると判断すると、当該クライアントに対してジョブ(又はジョブグループ)の依頼を待機又は中止すべき旨の命令を送信する。このため、複数のクライアントから一つのマスターノードにジョブの依頼が行われる場合にも、マスターノードの処理の負荷を軽減することができる。
また、逆に、一つのクライアントから複数のマスターノードにジョブ(又はジョブグループ)の依頼が行われる場合にも本発明を適用することができる。このようなジョブ(又はジョブグループ)の依頼形態は、クライアントから依頼するジョブ(又はジョブグループ)の数が膨大である場合や、ジョブ(又はジョブグループ)の負荷が非常に高い場合に用いるのに好適である。この場合の処理手順は上記の実施形態とほぼ同様である。但し、複数のマスターノードのロードバランサ機能がそれぞれ異なるベンダー製品で構成されているなど、統一がとられていないようなケースもあり得る。このような場合には、クライアントからマスターノードへのジョブ(又はジョブグループ)の受け渡し処理、ノードでのジョブの処理結果を統合する処理等に関して調整を行うことが必要となることも考えられる。例えば、ジョブの演算内容や変数、ノードでのジョブの処理結果等をクライアント、マスターノード、ノードの間で直接的に送受信するのではなく、共通の外部データベースを経由してそれらの間で受け渡し、最終的にクライアントが当該処理結果を外部データベースから収集して統合する処理を行うようにすればよい。尚、上述したことから分かるように、複数のクライアントから複数のマスターノードにジョブ(又はジョブグループ)の依頼が行われる場合にも本発明を適用することが可能である。
更に、上記の実施形態では、クライアントが、大規模演算を構成する複数のジョブ(又はジョブグループ)をいくつかのブロックに区分し、マスターノードが常に所定数以下のジョブ(又はジョブグループ)に対して割り振り処理を行うことになるようにブロック単位でジョブ(又はジョブグループ)の処理をマスターノードに依頼する場合について説明したが、例えば、クライアントは従来と同様にすべてのジョブ(又はジョブグループ)の処理を一括してマスターノードに依頼し、マスターノードがその依頼された複数のジョブ(又はジョブグループ)をいくつかのブロックに区分し、そのブロック単位でジョブ(又はジョブグループ)の割り振り処理を行うようにしてもよい。すなわち、本発明の特徴的な機能を、クライアントではなくマスターノードに設けるようにしてもよい。これにより、マスターノードは、例えばクライアントから1000個のジョブを依頼されたとしても、各ノードへの割り振り処理の対象を常に所定数(例えば300)以下のジョブだけに制限することができるので、マスターノードの処理の負荷を十分に軽減することができる。つまり、従来の情報処理システムでは、例えば1000個のジョブの処理がマスターノードに依頼された場合、マスターノードは、1000個のジョブのすべてをロードバランサ機能の対象として常に管理しなければならなかったが、本発明の情報処理システムでは、マスターノードが常に管理しなければならないジョブを例えば300個に抑えることができる。但し、この場合には、クライアントは従来と同様にすべてのジョブの処理を一括してマスターノードに依頼することになるので、クライアントには無駄な処理待ちが発生し、上記の実施形態に比べてクライアントの処理効率が若干劣ってしまう可能性がある。しかしながら、情報処理システム全体としては処理の負荷を軽減することができる。
加えて、上記の実施形態では、クライアントとマスターノードとをそれぞれワークステーション等で実現する場合について説明したが、例えば、クライアントとマスターノードとを一つのワークステーション等で実現するようにしてもよい。すなわち、一つのワークステーションに、クライアント及びマスターノードの機能を実現するためのソフトウェアを組み込むようにしてもよいし、さらには当該ワークステーションがノードの機能をも兼ね備えるようにしてもよい。尚、上記の実施形態では、あるワークステーションが固定的にクライアントやマスターノードである場合や、あるワークステーションがクライアント及びマスターノードの機能を兼用している場合について説明したが、本発明はこれに限定されるものではない。つまり、複数のワークステーションに、クライアント、マスターノード及びノードの各機能として動作するためのソフトウェアをインストールしておけば、これらの各ワークステーションがある時はクライアントとして動作し、ある時はマスターノードやノードとして動作するような流動的な運用も可能である。
本発明の目的は、上述した実施形態の装置の機能を実現するソフトウェアのプログラムコード(実行形式を含む)を、その全体あるいは一部を記録した記録媒体により、本実施形態の装置に供給し、その装置のコンピュータ(又はCPU、MPU)が記録媒体に格納されたプログラムコードを読み出して、動作の全部あるいは一部を実行することによっても達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が本実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
プログラムコードを供給するための記録媒体としては、ROM、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード等を用いることができる。さらに、通信回線を介してダウンロードすることによってプログラムコードを供給するようにしてもよいし、JAVA(登録商標)などの技術を利用してプログラムコードを供給して実行するようにしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、本実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部又は全部を行い、その処理によって本実施形態の機能が実現される場合も本発明に含まれることは言うまでもない。
更に、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータが接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって本実施形態の機能が実現される場合も本発明に含まれることは言うまでもない。
加えて、本発明はコンピュータに上記の実施形態の装置の機能を実現させるためのプログラムを含むプログラム・プロダクトであってもよい。ここで、プログラム・プロダクトというのは、コンピュータ・プログラムだけでなく、プログラムを記録した記録媒体あるいはコンピュータを含むものである。
以上説明したように、本発明の情報処理システムでは、クライアントは、大規模演算を構成する複数のジョブをいくつかのブロックに区分し、マスターノードが常に所定数以下のジョブに対して割り振り処理を行うことになるようにブロック単位でジョブの処理をマスターノードに依頼する。これにより、クライアントは、従来のようにすべてのジョブの処理を一括してマスターノードに依頼するのではなく、複数のジョブを、小規模のジョブを含むいくつかのブロックに区分し、そのブロック単位で少しずつマスターノードに依頼することができる。このようなクライアントはマスターノードの負荷を制御する機能を有していると考えることができる。このため、マスターノードは常に上記の所定数以下のジョブについてのみ各ノードへの割り振り処理を行えばよいことになるので、マスターノードの負荷が増加するのを防止することができる。しかも、このようにマスターノードの負荷を軽減することができるので、マスターノードは、ジョブの各ノードへの割り振り処理だけでなく、クライアントからの演算結果監視の要求に応じる処理をも効率よく行うことができる。更に、クライアントにとっても、マスターノードに依頼するジョブの数が少なくなるので、演算結果監視の処理に対する負荷が軽減する。したがって、本発明は、複数のジョブから構成される大規模演算の処理をネットワーク接続された複数のコンピュータで分かち合って実行する情報処理システムに適用することができる。

Claims (1)

  1. 複数のジョブから構成される大規模演算の処理依頼を取得するクライアントと、各ジョブの処理を実行する複数のノードと、前記クライアントから取得した複数のジョブの処理依頼を前記各ノードに割り振るマスターノードとがネットワーク接続された情報処理システムにおいて、
    前記クライアントは、取得した前記大規模演算を構成する複数のジョブを記憶手段に記憶しておき、前記記憶手段に記憶されている、前記大規模演算を構成する複数のジョブについて、少なくとも互いに依存関係のあるジョブをまとめていくつかのブロックに区分し、前記複数のジョブのうち所定数のジョブを第1ブロックとし、その他のジョブをそれぞれ第nブロック(n=2,3,・・・,N)とすると共に、最初に前記第1ブロックである所定数のジョブの処理を前記マスターノードに依頼し、前記マスターノードから一つのジョブについて処理が終了した旨の通知が送られる度に、未だ処理を依頼していない前記ブロックのうち所定の一つのブロックの処理を前記マスターノードに依頼し、前記マスターノードが常に所定数以下のジョブに対して割り振り処理を行うことになるように前記クライアントが前記ブロック単位でジョブの処理を前記マスターノードに依頼し、前記マスターノードは前記ブロックの処理を前記各ノードに割り振ることを特徴とする情報処理システム。
JP2007532078A 2005-08-22 2006-08-17 情報処理システム Active JP4621999B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005239381 2005-08-22
JP2005239381 2005-08-22
PCT/JP2006/316161 WO2007023726A1 (ja) 2005-08-22 2006-08-17 情報処理システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010190357A Division JP4737728B2 (ja) 2005-08-22 2010-08-27 情報処理装置及び情報処理システム

Publications (2)

Publication Number Publication Date
JPWO2007023726A1 JPWO2007023726A1 (ja) 2009-02-26
JP4621999B2 true JP4621999B2 (ja) 2011-02-02

Family

ID=37771474

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2007532078A Active JP4621999B2 (ja) 2005-08-22 2006-08-17 情報処理システム
JP2010190357A Active JP4737728B2 (ja) 2005-08-22 2010-08-27 情報処理装置及び情報処理システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2010190357A Active JP4737728B2 (ja) 2005-08-22 2010-08-27 情報処理装置及び情報処理システム

Country Status (5)

Country Link
US (1) US8607236B2 (ja)
JP (2) JP4621999B2 (ja)
CN (2) CN101807160B (ja)
GB (1) GB2443136B (ja)
WO (1) WO2007023726A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4776571B2 (ja) * 2007-03-16 2011-09-21 富士通株式会社 実行制御プログラム,実行制御方法及び実行制御装置
JP5110080B2 (ja) * 2007-03-27 2012-12-26 富士通株式会社 計算ジョブ情報管理装置、端末、および、計算ジョブ情報管理システム
US8812578B2 (en) 2008-11-07 2014-08-19 International Business Machines Corporation Establishing future start times for jobs to be executed in a multi-cluster environment
JP2010183416A (ja) * 2009-02-06 2010-08-19 Ricoh Co Ltd 画像処理装置、画像処理方法、プログラムおよび記録媒体
DE102010002111A1 (de) * 2009-09-29 2011-03-31 Native Instruments Gmbh Verfahren und Anordnung zur Verteilung der Rechenlast in Datenverarbeitungseinrichtungen bei einer Durchführung von blockbasierten Rechenvorschriften sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium
CN102054509A (zh) * 2009-10-30 2011-05-11 炬力集成电路设计有限公司 一种随机播放方法和装置
GB2495417B (en) * 2010-05-14 2017-11-29 Ibm A method for dynamically changing the configuration of a system
US8863128B2 (en) * 2010-09-30 2014-10-14 Autodesk, Inc System and method for optimizing the evaluation of task dependency graphs
US8595732B2 (en) * 2010-11-15 2013-11-26 International Business Machines Corporation Reducing the response time of flexible highly data parallel task by assigning task sets using dynamic combined longest processing time scheme
US8875146B2 (en) * 2011-08-01 2014-10-28 Honeywell International Inc. Systems and methods for bounding processing times on multiple processing units
US9207977B2 (en) 2012-02-06 2015-12-08 Honeywell International Inc. Systems and methods for task grouping on multi-processors
US9678791B2 (en) 2012-02-14 2017-06-13 International Business Machines Corporation Shared resources in a docked mobile environment
US9373074B2 (en) * 2012-10-09 2016-06-21 Qualcomm Incorporated Method and apparatus for time management and scheduling for sychronous processing on a cluster of processing nodes
US9612868B2 (en) 2012-10-31 2017-04-04 Honeywell International Inc. Systems and methods generating inter-group and intra-group execution schedules for instruction entity allocation and scheduling on multi-processors
US20140130056A1 (en) * 2012-11-05 2014-05-08 Rational Systems Llc Parallel Execution Framework
US9379954B2 (en) 2013-03-15 2016-06-28 Chef Software Inc. Configuration management for a resource with prerequisites
US8621062B1 (en) * 2013-03-15 2013-12-31 Opscode, Inc. Push signaling to run jobs on available servers
US20180198855A1 (en) * 2014-11-24 2018-07-12 Alibaba Group Holding Limited Method and apparatus for scheduling calculation tasks among clusters
CN105630583A (zh) * 2014-11-26 2016-06-01 阿里巴巴集团控股有限公司 一种数据处理方法和装置
GB2550053B (en) 2016-04-01 2020-12-09 Romar International Ltd Apparatus and method for removing magnetic particles from liquids or slurries from an oil or gas process
US10296380B1 (en) * 2016-09-19 2019-05-21 Amazon Technologies, Inc. Distributed computing with adaptive parallelization
CN107580197B (zh) * 2017-08-15 2021-03-16 移康智能科技(上海)股份有限公司 任务处理方法、电子设备及计算机可读存储介质
CN112486638A (zh) 2019-09-11 2021-03-12 百度时代网络技术(北京)有限公司 用于执行处理任务的方法、装置、设备和存储介质
US20230102795A1 (en) * 2021-09-30 2023-03-30 International Business Machines Corporation Automatic selection of nodes on which to perform tasks

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612392A (ja) * 1992-03-19 1994-01-21 Fujitsu Ltd 計算機資源分散方法及びシステム
JPH09218842A (ja) * 1996-02-14 1997-08-19 Fujitsu Ltd ロードシェアシステム
JP2000293387A (ja) * 1999-04-05 2000-10-20 Nec Corp イベント通知システム
JP2004171234A (ja) * 2002-11-19 2004-06-17 Toshiba Corp マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム
JP2004280371A (ja) * 2003-03-14 2004-10-07 Mitsubishi Electric Information Systems Corp サーバ装置及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522070A (en) * 1992-03-19 1996-05-28 Fujitsu Limited Computer resource distributing method and system for distributing a multiplicity of processes to a plurality of computers connected in a network
JPH07219907A (ja) 1994-02-07 1995-08-18 Fuji Xerox Co Ltd 負荷分散制御装置
US6128657A (en) * 1996-02-14 2000-10-03 Fujitsu Limited Load sharing system
US20020065870A1 (en) * 2000-06-30 2002-05-30 Tom Baehr-Jones Method and apparatus for heterogeneous distributed computation
JP2002073576A (ja) * 2000-08-31 2002-03-12 Toshiba Corp バッチジョブ制御システム
US20020069279A1 (en) * 2000-12-29 2002-06-06 Romero Francisco J. Apparatus and method for routing a transaction based on a requested level of service
JP2003006175A (ja) * 2001-06-26 2003-01-10 Hitachi Ltd プロセス実行時のプログラム動作特性に基づくプロセススケジューリング方法及びこれを用いたプログラム及びデータ処理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612392A (ja) * 1992-03-19 1994-01-21 Fujitsu Ltd 計算機資源分散方法及びシステム
JPH09218842A (ja) * 1996-02-14 1997-08-19 Fujitsu Ltd ロードシェアシステム
JP2000293387A (ja) * 1999-04-05 2000-10-20 Nec Corp イベント通知システム
JP2004171234A (ja) * 2002-11-19 2004-06-17 Toshiba Corp マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム
JP2004280371A (ja) * 2003-03-14 2004-10-07 Mitsubishi Electric Information Systems Corp サーバ装置及びプログラム

Also Published As

Publication number Publication date
CN101807160B (zh) 2012-01-25
GB2443136A (en) 2008-04-23
US8607236B2 (en) 2013-12-10
CN101807160A (zh) 2010-08-18
JP4737728B2 (ja) 2011-08-03
GB2443136B (en) 2011-04-13
JP2010287255A (ja) 2010-12-24
JPWO2007023726A1 (ja) 2009-02-26
GB0803290D0 (en) 2008-04-02
US20090254913A1 (en) 2009-10-08
CN101248419B (zh) 2010-05-19
WO2007023726A1 (ja) 2007-03-01
CN101248419A (zh) 2008-08-20

Similar Documents

Publication Publication Date Title
JP4621999B2 (ja) 情報処理システム
WO2021208546A1 (zh) Kubernetes集群架构系统下多维资源调度方法
US8037185B2 (en) Dynamic application placement with allocation restrictions, vertical stacking and even load distribution
US9965322B2 (en) Scheduling tasks in a distributed processing system with both reconfigurable and configurable processors
US8230432B2 (en) Defragmenting blocks in a clustered or distributed computing system
US20050081208A1 (en) Framework for pluggable schedulers
US20120323988A1 (en) Task allocation in a computer network
JP5121936B2 (ja) リソース割り当て装置及びリソース割り当てプログラム及び記録媒体及びリソース割り当て方法
US20180246765A1 (en) System and method for scheduling jobs in distributed datacenters
US9424096B2 (en) Task allocation in a computer network
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
JP2009528649A (ja) 分散コンピューティングに関する改良
JP2014120097A (ja) 情報処理装置、プログラム、及び、情報処理方法
US6907607B1 (en) System and method for analyzing capacity in a plurality of processing systems
KR101765725B1 (ko) 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법
CN111443870A (zh) 一种数据处理的方法、设备及存储介质
JP5556498B2 (ja) 管理装置,ファイルサーバシステム,処理方法及び管理プログラム
US8775767B2 (en) Method and system for allocating memory to a pipeline
JP6891399B2 (ja) データ処理プログラム、データ処理方法およびデータ処理装置
US20060195608A1 (en) Method and apparatus for distributed processing, and computer product
US20230155958A1 (en) Method for optimal resource selection based on available gpu resource analysis in large-scale container platform
US20210397485A1 (en) Distributed storage system and rebalancing processing method
US20240004720A1 (en) Computational resource cluster management device, computational resource cluster management method, and computational resource cluster management program
JP2012038275A (ja) 取引計算シミュレーションシステム、方法及びプログラム
JPH0793262A (ja) アプリケーションツール実行管理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090521

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20091119

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20091207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100513

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100827

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100827

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100909

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4621999

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131112

Year of fee payment: 3

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

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