JP5176558B2 - 分散処理プログラム、分散処理装置、および分散処理方法 - Google Patents

分散処理プログラム、分散処理装置、および分散処理方法 Download PDF

Info

Publication number
JP5176558B2
JP5176558B2 JP2008008355A JP2008008355A JP5176558B2 JP 5176558 B2 JP5176558 B2 JP 5176558B2 JP 2008008355 A JP2008008355 A JP 2008008355A JP 2008008355 A JP2008008355 A JP 2008008355A JP 5176558 B2 JP5176558 B2 JP 5176558B2
Authority
JP
Japan
Prior art keywords
job
jobs
destination
time
worker
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008008355A
Other languages
English (en)
Other versions
JP2009169756A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008008355A priority Critical patent/JP5176558B2/ja
Priority to US12/346,300 priority patent/US8631118B2/en
Publication of JP2009169756A publication Critical patent/JP2009169756A/ja
Application granted granted Critical
Publication of JP5176558B2 publication Critical patent/JP5176558B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Description

この発明は、マスタ計算機(以下、単に「マスタ」という)が複数のワーカ計算機(以下、単に「ワーカ」という)に処理群を分散処理させるグリッドコンピューティングにおける分散処理プログラム、分散処理装置、および分散処理方法に関する。
従来、ネットワークを介して通信可能なマスタ/ワーカ間でやり取りされるジョブの流れでは、まず、マスタがジョブおよびその処理に必要なデータをワーカに投入する。つぎに、投入されたワーカは、ジョブの処理を実行する。そして、そのワーカは、ジョブの処理結果をマスタに返す。マスタは、これらを複数のワーカに対しておこなうことにより、ジョブ全体をワーカに分散処理させている。
一般に、マスタに入力されるジョブは、ジョブ単位の実行時間がマスタ/ワーカ間の通信遅延時間に比べて、十分に大きいジョブ(粗粒度なジョブ)であると想定されている。粗粒度なジョブを分散処理する技術は既に実用化されており、例えば、大量のバッチジョブを分散処理するためのグリッド・ミドルウェアであるSystem Walker CyberGRIP(登録商標)などがある。
また、下記特許文献1には、複数のタスクから構成されるタスクグループ単位で処理の割り当てをおこなう技術が記載されている。具体的には、まず、上位管理装置から下位管理装置にタスクグループの処理を割り当てる。つぎに、下位管理装置からタスク実行装置にタスクグループに含まれるタスクを割り当て、タスク実行装置によりタスクを実行し、その実行結果を下位管理装置に送信する。そして、下位管理装置により、タスクの実行結果を収集し、その収集結果を上位管理装置に送信する。最後に、上位管理装置により、収集結果を集約して出力する。
また、下記特許文献2には、マスタからワーカに割り当てるタスク量を、ワーカからマスタへのタスク要求に応じて動的に調整する技術が記載されている。具体的には、まず、マスタが各ワーカにて処理すべきタスクを割り当てる。このとき、最初に同一量のタスクを各ワーカに割り当て、所定時間内の各ワーカからのタスク要求回数に応じて、一度のタスク要求に対して割り当てるタスク量を変化させる。
特開2004−110318号公報 特開平11−195007号公報
上述した従来技術では、マスタに入力されたジョブをジョブ単位でワーカに投入することで、ジョブ全体をワーカに分散処理させている。これは、ジョブ単位の実行時間がマスタ/ワーカ間の通信時間に比べて十分に大きい場合に有効な手法である。ところが、ジョブ単位の実行時間がマスタ/ワーカ間の通信時間よりも短いジョブを大量に処理することが要求されるアプリケーションもある。
しかしながら、実行時間の短いジョブをジョブ単位でワーカに投入すると、ジョブ処理中におけるマスタ/ワーカ間の通信時間やワーカのアイドル時間などのオーバーヘッドが顕在化してしまう。これでは、ネットワーク上のトラフィックが増大化し、ひいてはジョブ処理にかかる所要時間の長期化を招くという問題がある。
この発明は、上述した従来技術による問題点を解消するため、実行時間の短いジョブを束ねたジョブ群を適切に割り当てることにより、ジョブ処理中におけるマスタ/ワーカ間の通信トラフィックの低減を図り、効率的な分散処理を実現することができる分散処理プログラム、分散処理装置、および分散処理方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この分散処理プログラム、分散処理装置、および分散処理方法は、通信可能なワーカ計算機群の中からジョブの割当先を決定し、決定された割当先のワーカ計算機の処理性能と、前記割当先との通信にかかる通信時間とに基づいて、前記割当先に割り当てる前記ジョブのジョブ数を算出し、算出されたジョブ数に基づいて、前記割当先に割り当てるジョブ群を生成し、生成されたジョブ群の処理要求を、前記割当先に送信することを要件とする。
この分散処理プログラム、分散処理装置、および分散処理方法によれば、ジョブ単位の実行時間がマスタ/ワーカ間の通信時間よりも短いジョブを束ねて、1つのジョブ群単位でワーカ群に分散処理させることができる。このとき、マスタ/ワーカ間の通信時間およびワーカの処理性能に応じたジョブ数で束ねることで、ワーカ間における終了時刻を平準化し、全体の所要時間の短縮を図ることができる。
また、この分散処理プログラム、分散処理装置、および分散処理方法において、前記割当先により計測された、前記処理要求よりも先に送信された一のジョブ群の処理要求が受信されてから当該一のジョブ群の実行が開始されるまでの待ち時間、および前記一のジョブ群の実行時間に関する情報を受信し、前記割当先に前記一のジョブ群の処理要求を送信してから、前記一のジョブ群の処理結果を前記割当先から受信するまでの経過時間を計測し、受信された待ち時間および実行時間に関する情報と、計測された経過時間とを用いて、前記通信時間を算出することとしてもよい。
この分散処理プログラム、分散処理装置、および分散処理方法によれば、割当先にジョブ群を割り当てることで得られた待ち時間、実行時間および経過時間に関する過去の計測値を用いて、マスタと割当先との間の通信時間を算出することができる。
また、この分散処理プログラム、分散処理装置、および分散処理方法において、さらに、前記一のジョブ群の実行時間に関する情報を用いて、前記処理性能を算出することとしてもよい。
この分散処理プログラム、分散処理装置、および分散処理方法によれば、割当先にジョブ群を割り当てることで得られた実行時間に関する過去の計測値を用いて、割当先の処理性能を算出することができる。
また、この分散処理プログラム、分散処理装置、および分散処理方法において、前記各ワーカ計算機の使用状態に基づいて、前記ワーカ計算機群の中から前記割当先を決定することとしてもよい。
この分散処理プログラム、分散処理装置、および分散処理方法によれば、管理下にあるワーカ群のうち、マスタから割り当てられたジョブ群を処理中、または、機能を停止中のワーカを排除することで、割当先候補を絞り込むことができる。
また、この分散処理プログラム、分散処理装置、および分散処理方法において、前記各ワーカ計算機の処理性能に基づいて、前記ワーカ計算機群の中から前記割当先を決定することとしてもよい。
この分散処理プログラム、分散処理装置、および分散処理方法によれば、ジョブ群を高速に処理可能なワーカを割当先に決定することができる。
また、この分散処理プログラム、分散処理装置、および分散処理方法において、前記各ワーカ計算機が実行可能なジョブのジョブタイプに基づいて、前記ワーカ計算機群の中から前記割当先を決定することとしてもよい。
この分散処理プログラム、分散処理装置、および分散処理方法によれば、ワーカWが受け入れ可能なジョブのジョブタイプを考慮して、ジョブの割当先を決定することで、ジョブ群を適切なワーカWに割り当てることができる。
この分散処理プログラム、分散処理装置、および分散処理方法によれば、実行時間の短いジョブを束ねたジョブ群を適切に割り当てることにより、ジョブ処理中におけるマスタ/ワーカ間の通信トラフィックの低減を図り、効率的な分散処理を実現することができるという効果を奏する。
以下に添付図面を参照して、この分散処理プログラム、分散処理装置、および分散処理方法の好適な実施の形態を詳細に説明する。なお、本明細書において、分散処理装置とは、グリッドコンピューティングシステムを構成する計算機(マスタまたはワーカ)であり、分散処理プログラムとは、分散処理装置にインストールされたプログラムである。
(実施の形態1)
(グリッドコンピューティングシステムのシステム構成)
まず、本実施の形態にかかるグリッドコンピューティングシステム100のシステム構成について説明する。図1は、グリッドコンピューティングシステムおよび分散処理装置のシステム構成図である。図1において、グリッドコンピューティングシステム100は、インターネット、LAN、WANなどのネットワーク110を介して通信可能なマスタMとワーカW1〜Wm群とから構成される。
各ワーカW1〜Wmは、異なる処理能力を持つこととしてもよく、また、OSやハードウェア・アーキテクチャなど異なる構造を持つこととしてもよい。さらに、ネットワーク110の通信品質は、一定または画一的である必要もない。
このグリッドコンピューティングシステム100では、マスタMが、実行時間の短いジョブ(例えば、解析用プログラム)を束ねたジョブ群を生成し、そのジョブ群を適切なワーカW1〜Wmに投入する。そして、ワーカW1〜Wmが、投入されたジョブ群を実行し、その処理結果をマスタMに返す。このとき、ジョブの処理結果は、ジョブ単位で返すのではなく、ジョブ群単位で返す。
なお、マスタ/ワーカ間でやり取りされる各ジョブの実行時間は一様である。すなわち、各ジョブの粒度(処理量)は揃っている、あるいは、無視できる程度のばらつきである。さらに、各ジョブの実行時間は、ジョブ処理中におけるマスタ/ワーカ間の通信時間(転送時間)よりも短い時間である。
ここで処理対象となるジョブとしては、例えば、金融機関などのオプション・リスク計算において、モンテカルロ法を用いて確率的にシナリオをシミュレーションする際に数万〜数千万個処理することが要求される、実行時間が短い細粒度なジョブが挙げられる。
このような実行時間の短いジョブを大量に処理するケースでは、ジョブ単位でマスタMからワーカW1〜Wmにジョブ投入すると、ジョブ処理中におけるマスタ/ワーカ間の通信時間やワーカW1〜Wmのアイドル時間といったオーバーヘッドが顕在化してしまう。そこで、複数のジョブを束ねたジョブ群を1つの処理単位とする。
図2は、ワーカWにおけるジョブ処理過程の概要を示す説明図である。図2において、グラフ210は、実行時間の短いジョブを1つの処理単位として各ワーカW1〜Wmに分散処理させる従来の形態のジョブ処理過程を示している。グラフ220は、実行時間の短いジョブを束ねて(図2では、3個)1つの処理単位として各ワーカW1〜Wmに分散処理させる本実施の形態のジョブ処理過程を示している。
グラフ210に示すように、実行時間の短いジョブを1つの処理単位として分散処理させた場合には、ジョブ処理中における、マスタ/ワーカ間の通信時間やワーカW1〜Wmがつぎのジョブを受け取るまでのアイドル時間などのオーバーヘッドが顕在化してしまう。
一方、グラフ220に示すように、複数のジョブを束ねて1つの処理単位として分散処理させた場合には、ジョブ処理中における、マスタ/ワーカ間の通信頻度および通信時間を削減し、上記オーバーヘッドを隠蔽する(全所要時間に対する通信時間およびワーカW1〜Wmのアイドル時間の割合を小さくする)ことができる。
ここで、図1に示したワーカW1を例に挙げて、グリッドコンピューティング100におけるジョブの投入例を説明する。まず、マスタMにおいて、入力されたジョブJ1,J2,J3の3個を束ねたジョブ群JG1を生成する。つぎに、その割当先に決定されたワーカW1に生成されたジョブ群JG1を投入(ネットワーク110経由で送信)する。
このあと、ワーカW1において、マスタMから投入されたジョブ群JG1を実行し、ジョブ群JG1を構成するすべてのジョブJ1,J2,J3の実行が完了したあと、ジョブJ1,J2,J3の処理結果R1,R2,R3を束ねた処理結果RG1をマスタMに返す。
このように、複数のジョブJ1,J2,J3を束ねたジョブ群JG1を1つの処理単位として分散処理させることにより、ジョブ処理中におけるマスタMとワーカW1との間の通信時間を低減し、通信時間やアイドル時間などのオーバーヘッドを隠蔽する。
さらに、割当先のワーカW1で処理された処理結果は、すべてのジョブJ1,J2,J3の処理が完了したあとに、割当先のワーカW1からマスタMに返すことで、ジョブJ1,J2,J3の処理中におけるネットワーク110上のトラフィックの低減を図る。
(マスタMおよびワーカWのハードウェア構成)
つぎに、実施の形態1にかかるマスタMおよびワーカW1〜Wmのハードウェア構成について説明する。なお、以降において、特に指定する場合を除いて「ワーカW1〜Wm」を「ワーカW」と表記する。図3は、マスタMおよびワーカWのハードウェア構成を示すブロック図である。
図3において、マスタMおよびワーカWは、CPU301と、ROM302と、RAM303と、HDD(ハードディスクドライブ)304と、HD(ハードディスク)305と、FDD(フレキシブルディスクドライブ)306と、着脱可能な記録媒体の一例としてのFD(フレキシブルディスク)307と、ディスプレイ308と、I/F(インターフェース)309と、キーボード310と、マウス311と、スキャナ312と、プリンタ313とを備えている。また、各構成部は、バス300によってそれぞれ接続されている。
ここで、CPU301は、マスタMおよびワーカWの全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記録している。RAM303は、CPU301のワークウェアとして使用される。HDD304は、CPU301の制御にしたがってHD305に対するデータのリード/ライトを制御する。HD305は、HDD304の制御で書き込まれたデータを記憶する。
FDD306は、CPU301の制御にしたがってFD307に対するデータのリード/ライトを制御する。FD307は、FDD306の制御で書き込まれたデータを記憶したり、FD307に記憶されたデータをマスタMおよびワーカWに読み取らせたりする。
また、着脱可能な記録媒体として、FD307のほか、CD−ROM(CD−R、CD−RW)、MO、DVD(Digital Versatile Disk)、メモリカードなどであってもよい。ディスプレイ308は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ308には、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F309は、通信回線を通じてインターネットなどのネットワーク110に接続され、このネットワーク110を介して他の装置に接続される。そして、I/F309は、ネットワーク110と内部のインターフェースを司り、ネットワーク110からのデータの入出力を制御する。I/F309には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード310は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス311は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様の機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ312は、画像を光学的に読み取り、装置内に画像データを読み込む。なお、スキャナ312は、OCR機能を持たせてもよい。また、プリンタ313は、画像データや文書データを印刷する。プリンタ313には、たとえば、レーザプリンタやインクジェットプリンタなどを採用することができる。
(ワーカ管理テーブルの記憶内容)
ここで、ジョブの割当先となるワーカW1〜WmのIPアドレスおよび使用状態を特定する場合に用いられるワーカ管理テーブルについて説明する。図4は、ワーカ管理テーブルの記憶内容を示す説明図である。図4において、ワーカ管理テーブル400には、ワーカ識別子、IPアドレスおよび状態がワーカW1〜Wmごとに記憶されている。
状態とは、各ワーカW1〜Wmの使用状態である。この状態は、マスタMからのジョブ投入前は「空き」となる。そして、マスタMからジョブが投入されると「空き」から「使用中」に変更される。また、ワーカW1〜Wmから処理結果が返ってくると「使用中」から「空き」に変更される。さらに、ワーカW1〜Wmの機能が停止している場合には「停止中」となる。このワーカ管理テーブル400は、図3に示したRAM303やHD305などの記憶部によりその機能を実現する。
(スループットテーブルの記憶内容)
ここで、ワーカW1〜Wmの処理性能を特定する場合に用いられるスループットテーブルについて説明する。図5は、スループットテーブルの記憶内容を示す説明図である。図5において、スループットテーブル500には、ワーカW1〜Wmごとのスループット値が記憶されている。
スループット値は、各ワーカW1〜Wmの処理性能を表わす指標であり、単位時間当たりに処理されたジョブ数を表現する。このスループット値は、各ワーカW1〜WmのCPU使用率など(例えば、マスタMとは異なる他のコンピュータ装置から投入されたジョブを処理中)によって動的に変化する。
また、未だジョブの割当先となっていないワーカW1〜Wm(例えば、W2)のスループット値は記憶されていない(図5中「−」)。このスループットテーブル500は、図3に示したRAM303やHD305などの記憶部によりその機能を実現する。
(分散処理装置の機能的構成)
つぎに、分散処理装置の機能的構成について説明する。まず、マスタMの機能的構成について説明する。図6は、マスタMの機能的構成を示すブロック図である。図6において、マスタMは、決定部601と、算出部602と、生成部603と、送信部604と、受信部605と、計測部606と、から構成されている。
これら各機能601〜606は、マスタMの記憶部に記憶された当該機能601〜606に関するプログラムをCPUに実行させることにより、または、入出力I/Fにより、当該機能を実現することができる。また、各機能601〜606からの出力データは上記記憶部に保持される。また、図6中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをCPUに実行させるものとする。
まず、決定部601は、ワーカW群の中からジョブの割当先を決定する機能を有する。具体的には、例えば、各ワーカWの使用状態に基づいて、ワーカW群の中から割当先を決定することとしてもよい。例えば、ワーカ管理テーブル400からワーカWごとの状態を読み出して、使用状態が「空き」のワーカW群の中から割当先を決定する。これは、管理下にあるワーカW群のうち、マスタMから割り当てられたジョブ群を処理中、または、機能を停止中のワーカWを排除することで、割当先候補を絞り込むことを意味する。
また、各ワーカWの処理性能に基づいて、ワーカW群の中から割当先を決定することとしてもよい。例えば、スループットテーブル500からワーカWごとのスループット値Tを読み出して、スループット値Tが最大のワーカWを割当先に決定する。これは、ジョブ群を高速に処理可能なワーカWを割当先に決定することを意味する。さらに、使用状態が「空き」のワーカW群の中から、スループット値Tが最大のワーカWを割当先に決定してもよく、また、ランダムに割当先を決定してもよい。
算出部602は、決定部601によって決定された割当先のワーカWの処理性能と、当該割当先との通信にかかる通信時間とに基づいて、割当先に割り当てるジョブのジョブ数を算出する機能を有する。具体的には、例えば、ジョブ数nのジョブを束ねたジョブ群の実行時間が、ジョブ処理中におけるマスタM/ワーカW間の通信時間の1〜2倍程度になるようにジョブ数nを算出する。
すなわち、マスタM/ワーカW間でのジョブ群のジョブ処理中における、通信時間やアイドル時間などのオーバーヘッドが顕在化することを回避する。なお、算出部602による算出処理の具体例については後述する。
生成部603は、算出部602によって算出された算出結果に基づいて、割当先に割り当てるジョブ群を生成する機能を有する。具体的には、例えば、ジョブキューにある一連のジョブを算出部602によって算出されたジョブ数nで束ねることにより1つのジョブ群を生成する。このとき、ジョブ数n分のジョブがジョブキューにない場合は、ジョブキューにあるすべてのジョブを束ねることとなる。あるいは、待ち時間の上限を設定して、ジョブキューにジョブ数n分のジョブが溜まるのを待つこととしてもよい。
各ジョブには固有のジョブID(例えば、図1に示したJ1,J2,J3)が割り付けられており、さらに、1つのジョブ群を構成する各ジョブには共通のジョブ群ID(例えば、JG1)を割り付ける。このようにジョブIDおよびジョブ群IDを割り付けることにより、複数のジョブからなるジョブ群を認識することができる。
なお、ジョブキューとは、マスタM内の記憶部に構築されるデータ構造であり、マスタMに入力されたジョブをキューイングする機能を有する。また、分散処理対象となるジョブは、マスタMに直接入力することとしてもよく、また、ネットワーク110を介して外部のコンピュータ装置から取得することとしてもよい。
送信部604は、生成部603によって生成されたジョブ群の処理要求を、割当先に送信する機能を有する。具体的には、例えば、決定部601によって決定されたワーカWのIPアドレスをワーカ管理テーブル400から読み出して、そのIPアドレスを宛先に設定することでジョブ群の処理要求を割当先に送信することができる。また、送信部604により処理要求が送信されると、図4に示したワーカ管理テーブル400の記憶内容のうち、割当先の状態が「空き」から「使用中」に書き換えられる。
ここで、上記算出部602による算出処理の具体例について説明する。受信部605は、割当先により計測された、送信部604によって上記処理要求よりも先に送信された一のジョブ群の処理要求が受信されてから当該一のジョブ群の実行が開始されるまでの待ち時間、および一のジョブ群の実行時間に関する情報を受信する機能を有する。
待ち時間とは、例えば、割当先において、一のジョブ群の処理要求の受信が検出されてから、一のジョブ群の準備(実行に必要となる関数の呼び出しなど)が整うまでの時間である。実行時間とは、一のジョブ群の実行を開始してから、該一のジョブ群を構成するすべてのジョブの実行が完了するまでに要した時間である。受信部605によって受信された情報は、例えば、後述するパラメータテーブル700に記憶される。
また、計測部606は、割当先に一のジョブ群の処理要求を送信してから、一のジョブ群の処理結果を割当先から受信するまでの経過時間を計測する機能を有する。具体的には、例えば、一のジョブ群の処理要求が送信された送信日時と、一のジョブ群の処理結果が受信された受信日時とから経過時間を計測することができる。計測部606によって計測された計測結果は、例えば、後述するパラメータテーブル700に記憶される。
そして、算出部602は、受信部605によって受信された待ち時間および実行時間に関する情報と、計測部606によって計測された経過時間とを用いて、通信時間を算出することとしてもよい。すなわち、割当先にジョブ群を割り当てることで得られた待ち時間、実行時間および経過時間に関する過去の計測値を用いて、マスタと割当先との間の通信時間を算出する。
また、算出部602は、一のジョブ群の実行時間に関する情報を用いて、割当先の処理性能を算出することとしてもよい。すなわち、割当先にジョブ群を割り当てることで得られた実行時間に関する過去の計測値を用いて、割当先の処理性能を算出する。
ここで、算出部602による算出処理に用いられるパラメータテーブルについて説明する。パラメータテーブルは、例えば、マスタMの管理下にあるワーカWごとに、ワーカ識別子と関連付けて保持されている。ここでは、あるワーカWのパラメータテーブルを例に挙げて説明する。図7は、パラメータテーブルの記憶内容を示す説明図である。図7において、パラメータテーブル700には、マスタ/ワーカ間の通信時間に関係するパラメータk,cと、ワーカWに割り当てられたジョブ群JG1〜JGpごとにパラメータ情報700−1〜700−pが記憶されている。
具体的には、パラメータ情報700−1〜700−pは、パラメータn,t,w,δ,k,cを有している。パラメータnは、ジョブ群に含まれているジョブの数を表わす値である。パラメータtは、マスタMにおいて、ジョブ群の処理要求が送信されてからそのジョブ群の処理結果が受信されるまでの経過時間を表わす値である。パラメータwは、ワーカWにおいて、ジョブ群の処理要求が受信されてからそのジョブ群の実行が開始されるまでの待ち時間を表わす値である。
パラメータδは、ワーカWにおいて一のジョブ群の処理に要した実行時間を表わす値である。パラメータk,cは、マスタM/ワーカW間の通信時間に関する値である。ここで、マスタM/ワーカW間の通信時間とは、例えば、マスタMからワーカWへの処理要求の送信、およびワーカWからマスタMへの処理結果の送信にかかる時間である。
具体的には、例えば、マスタM/ワーカW間の通信時間は、下記式(1)を用いて求めることができる。ただし、通信時間をK、ジョブ群を構成するジョブ数をnとする。
K=k×n+c …(1)
また、パラメータk,cは、パラメータt,w,δを用いて算出することができる。具体的には、例えば、パラメータk,cは、下記式(2)を用いて求めることができる。
t=w+δ+(k×n+c) …(2)
より詳細に説明すると、上記式(2)を用いて、nx≠nyであるx,y(x,yは自然数)について、パラメータk,cの連立方程式(下記式(3)および(4))をたてることで、パラメータk,cを求めることができる。
x=wx+δx+(k×nx+c) …(3)
y=wy+δy+(k×ny+c) …(4)
このあと、パラメータテーブル700から、nx≠nyである2つのパラメータ情報700−1〜700−pを読み出す。そして、読み出したパラメータ情報700−1〜700−pに含まれるパラメータnx,ny,tx,ty,wx,wy,δx,δyを上記式(3)および(4)に代入して、パラメータk,cを求める。
なお、nx≠nyである2つのパラメータ情報700−1〜700−pを読み出す場合には、現在時刻から遡って最も直近の時刻に記憶された2つのパラメータ情報700−1〜700−pを読み出すこととしてもよい。
また、パラメータδ,nを用いて、1ジョブ当たりの実行時間を表わすパラメータτを算出することができる。具体的には、例えば、パラメータτは、下記式(5)を用いて求めることができる。ただし、jは1からpの自然数である。
Figure 0005176558
そして、求めたパラメータτ,k,cを下記式(6)に代入することにより、割当先に割り当てる一のジョブ群として束ねるジョブ数nを算出することができる。ただし、sは、ジョブ数nのジョブ群の実行時間が通信時間Kのs倍であることを示すパラメータである。パラメータsの値は、任意に設定可能(例えば、s=1)である。
n×τ=s(k×n+c) …(6)
なお、上記式(6)を用いて算出されたジョブ数nがn>0であった場合には、例えば、nに数%のゆらぎを持たせたものをジョブ数とすることとしてもよい。また、上記式(6)を用いて算出されたジョブ数nがn≦0であった場合には、例えば、予め設定されている数(例えば、n=1)をジョブ数とすることとしてもよい。
上記パラメータsの値は、例えば、図3に示したキーボード310やマウス311などをユーザが操作することで、任意に設定可能である。さらに、マスタMに入力されたジョブの数が多い場合には、パラメータsの値を大きくし(例えば、s=3)、ジョブキューにあるジョブの数が少なくなるにつれて、パラメータsの値を小さくする(例えば、s=1)こととしてもよい。
また、図5に示したスループットテーブル500に記憶されているスループット値Tは、上記式(5)を用いて求めたパラメータτの逆数(1/τ)、すなわち、単位時間当たりに処理可能なジョブ数によって表現することができる。
さらに、パラメータテーブル700の記憶内容は、管理下にあるワーカWから処理結果を受信する都度、更新される。さらに、上記スループット値Tは、例えば、パラメータテーブル700の記憶内容が更新される都度、合わせて更新されることとなる。パラメータテーブル700を更新する更新処理については後述する。
なお、パラメータk,cを求めるために必要となるパラメータ情報700−1〜700−pがパラメータテーブル700に記憶されていない場合には(例えば、初回の分散処理時)、予め設定されている初期値を用いることとしてもよい。つまり、上記パラメータnx,ny,tx,ty,wx,wy,δx,δyに相当する初期値を上記式(3)および(4)に代入して、パラメータk,cを求める。
つぎに、ワーカWの機能的構成について説明する。図8は、ワーカWの機能的構成を示すブロック図である。図8において、ワーカWは、受信部801と、実行部802と、送信部803と、計測部804と、から構成されている。
これら各機能801〜804は、ワーカWの記憶部に記憶された当該機能801〜804に関するプログラムをCPU301に実行させることにより、または、入出力I/Fにより、当該機能を実現することができる。また、各機能801〜804からの出力データは上記記憶部に保持される。また、図8中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをCPUに実行させるものとする。
まず、受信部801は、ジョブ群の処理要求をマスタMから受信する機能を有する。また、実行部802は、マスタMから割り当てられたジョブ群の処理を実行する機能を有する。ジョブ群の処理は、ワーカWのCPUによって実行され、その処理結果はワーカW内の記憶部に保持される。
送信部803は、実行部802によってジョブ群を構成するすべてのジョブの処理の実行が完了した結果、ジョブ群の処理結果をマスタMに送信する機能を有する。なお、ジョブ群の実行完了は、例えば、以下の手順で検出することができる。具体的には、実行部802は、ジョブ群の処理開始時に、予めジョブ群に含まれるジョブ数nを送信部803に通知する。
さらに、実行部802は、ジョブ群に含まれる個々のジョブの実行完了ごとに実行結果を送信部803へ通知する。送信部803は、実行部802から通知されるジョブの実行結果の個数を数えることによって該ジョブ群に含まれるすべてのジョブの実行が完了したことを検出することができる。すなわち、実行部802から予め通知されたジョブ数nに等しい個数の実行結果を受け取ったときに、ジョブ群の実行が完了したことを検出する。
そして、送信部803は、すべてのジョブの実行が完了したことが検出された場合、ジョブ群の処理結果をマスタMに送信する。このとき、ジョブ群の処理要求から特定されるIPアドレスを宛先に設定することで処理結果をマスタMに送信することができる。
計測部804は、受信部801によってジョブ群の処理要求が受信されてから、実行部802によってジョブ群の実行が開始されるまでの待ち時間を計測する機能を有する。具体的には、例えば、処理要求が受信された受信日時と、ジョブ群の実行が開始された開始日時とから待ち時間を計測することができる。
また、計測部804は、実行部802によるジョブ群の実行時間を計測する機能を有する。具体的には、例えば、ジョブ群の実行が開始された開始日時と、ジョブ群の実行が完了した完了日時とから実行時間を計測することができる。
また、送信部803は、計測部804によって計測された上記待ち時間または/および実行時間に関する情報をマスタMに送信する機能を有する。この情報は、マスタMの受信部605で受信され、算出部602による算出処理に用いられる。
(分散処理装置の分散処理手順)
つぎに、分散処理装置の分散処理手順について説明する。まず、マスタMにおける分散処理手順について説明する。図9は、マスタMにおける分散処理手順の一例を示すフローチャートである。図9のフローチャートにおいて、まず、ジョブキューにジョブがあるか否かを判断する(ステップS901)。
ここで、ジョブがマスタMに入力されるのを待って(ステップS901:No)、ジョブキューにジョブがある場合(ステップS901:Yes)、決定部601により、管理下にあるワーカW群の中からジョブの割当先を決定する割当先決定処理を実行する(ステップS902)。
このあと、算出部602により、ステップS902において決定された割当先のワーカWの処理性能と、割当先との通信にかかる通信時間とに基づいて、割当先に割り当てる一のジョブ群として束ねるジョブ数nを算出する(ステップS903)。
つぎに、ジョブキューへのジョブ入力を待つ待ち時間の上限値を設定する(ステップS904)。このあと、ステップS903において算出されたジョブ数nがジョブキューにある全ジョブ数N以下であるか否かを判断する(ステップS905)。
ここで、ジョブ数n≦全ジョブ数Nの場合(ステップS905:Yes)、生成部603により、割当先に割り当てるジョブ数nのジョブ群を生成する(ステップS906)。そして、送信部604により、ステップS906において生成されたジョブ群の処理要求を割当先に送信して(ステップS907)、本フローチャートによる一連の処理を終了する。
また、ステップS905において、ジョブ数n>全ジョブ数Nの場合(ステップS905:No)、ステップS904において設定された待ち時間の上限値に達したか否かを判断する(ステップS908)。ここで、上限値に達していない場合(ステップS908:No)は、ステップS905に戻る。
一方、上限値に達した場合(ステップS908:Yes)、生成部603により、ジョブキューにある全ジョブ数Nのジョブを用いて、割当先に割り当てるジョブ群を生成する(ステップS906)。
なお、ステップS904において設定される待ち時間の上限値は、例えば、予め規定された値(例えば、1分)を設定することとしてもよく、また、複数の上限値候補の中から、ジョブ数nに応じた上限値を自動選択することとしてもよい。
具体的には、例えば、ジョブ数nと上限値とを関連付けて表わす上限値テーブルを参照することで、ステップS903において算出されたジョブ数に応じた上限値を選択し、待ち時間の上限値に設定することとしてもよい。この上限値テーブルは、例えば、マスタM内の記憶部に予め保持されている。
また、ステップS904において待ち時間の上限値が設定されると、待ち時間の計測が開始され、このあと、ステップS908において上限値が設定されてからの経過時間が待ち時間の上限値に達したか否かを判断することとしてもよい。
つぎに、図9に示したステップS902における割当先決定処理の詳細な処理手順について説明する。図10は、割当先決定処理手順の一例を示すフローチャートである。図10において、まず、ワーカ管理テーブル400に基づいて、未使用(空き)のワーカWがあるか否かを判断する(ステップS1001)。ここで、未使用のワーカWがなかった場合には(ステップS1001:No)、いずれかのワーカWが使用可能となるのを待つ。
一方、未使用のワーカWがあった場合(ステップS1001:Yes)、スループットテーブル500に基づいて、未使用のワーカWの中から、スループット値Tが最大のワーカWを選択する(ステップS1002)。そして、ステップS1002において選択されたワーカWを割当先に決定し(ステップS1003)、図9に示したステップS903に移行する。
つぎに、ワーカWにおける分散処理手順について説明する。図11は、ワーカWにおける分散処理手順の一例を示すフローチャートである。図11のフローチャートにおいて、まず、受信部801により、ジョブ群の処理要求をマスタMから受信したか否かを判断する(ステップS1101)。
ここで、処理要求を受信するのを待って(ステップS1101:No)、受信した場合(ステップS1101:Yes)、計測部804により、ジョブ群の処理要求が受信されてから、ジョブ群の実行が開始されるまでの待ち時間の計測を開始する(ステップS1102)。
このあと、実行部802により、マスタMから割り当てられたジョブ群の処理を実行する(ステップS1103)。このとき、計測部804により、待ち時間の計測を終了するとともに、ジョブ群の実行時間の計測を開始する(ステップS1104)。
このあと、ジョブ群を構成するすべてのジョブの実行が完了したことが検出されると(ステップS1105)、計測部804により、ジョブ群の実行時間の計測を終了する(ステップS1106)。そして、送信部803により、計測部804による計測結果を含むジョブ群の処理結果をマスタMに送信して(ステップS1107)、本フローチャートによる一連の処理を終了する。
つぎに、マスタMにおける、図7に示したパラメータテーブル700の記憶内容を更新する更新処理手順について説明する。図12は、パラメータテーブルの更新処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、受信部605により、ワーカWからジョブ群の処理結果を受信したか否かを判断する(ステップS1201)。
ここで、ジョブ群の処理結果を受信するのを待って(ステップS1201:No)、受信された場合(ステップS1201:Yes)、ジョブ群の処理結果からパラメータn,δ,wを取得するとともに、計測部606による計測結果からパラメータtを取得する(ステップS1202)。このとき、上記ジョブ群のジョブ群IDから特定される計測結果からパラメータtを取得する。
このあと、ワーカ管理テーブル400に基づいて、更新対象のエントリがあるか否かを判断する(ステップS1203)。これは、ステップS1201において受信された処理結果が、マスタMの管理下にあるワーカWからのものか否かを判断するステップである。
ここで、更新対象のエントリがある場合(ステップS1203:Yes)、そのエントリのパラメータテーブル700に記憶済みのパラメータがあるか否かを判断する(ステップS1204)。これは、ステップS1201における処理結果の受信が、初回の受信であるか否かを判断するステップである。
ここで、記憶済みのパラメータがある場合(ステップS1204:Yes)、算出部602により、パラメータテーブル700の記憶内容、およびステップS1202において取得されたパラメータn,δ,w,tを用いて、パラメータk,cを算出する(ステップS1205)。
このあと、ステップS1202において取得されたパラメータn,δ,w,t、およびステップS1205において算出されたパラメータk,cを用いてパラメータテーブル700の記憶内容を更新して(ステップS1206)、本フローチャートによる一連の処理を終了する。
一方、ステップS1204において、記憶済みのパラメータがない場合(ステップS1204:No)、ステップS1202において取得されたパラメータn,δ,w,tを用いてパラメータテーブル700の記憶内容を更新して(ステップS1206)、本フローチャートによる一連の処理を終了する。
また、ステップS1203において、更新対象のエントリがない場合(ステップS1203:No)、更新処理を強制終了するエラー処理を実行して(ステップS1208)、本フローチャートによる一連の処理を終了する。さらに、ステップS1206において、パラメータテーブル700の記憶内容の更新に合わせて、ワーカ管理テーブル400の記憶内容(スループット値T)を更新することとしてもよい。
以上説明したように、実施の形態1によれば、ジョブ単位の実行時間がマスタM/ワーカW間の通信時間よりも短いジョブを束ねて、ジョブ群単位でワーカ群に分散処理させることができる。このとき、割当先のワーカWの処理性能に応じたジョブ数で束ねることで、ワーカW間における終了時刻を平準化することができる。
このように、実行時間の短いジョブを束ねたジョブ群を適切にワーカWに割り当てることで、ジョブ処理中におけるマスタM/ワーカW間の通信トラフィックの低減を図り、効率的な分散処理を実現することができる。
ここで、複数のジョブを、処理性能が異なるワーカWa,Wb,Wcに分散処理させた場合の効果を具体的に説明する。図13は、ワーカWごとの所要時間を示すガントチャートである。図13において、(1)は、ワーカWa,Wb,Wcの処理性能(スループット値T)を考慮することなく、一定の数(ここでは、3個)のジョブを束ねた場合の所要時間を表わしている。
(2)は、本実施の形態で説明したように、ワーカWa,Wb,Wcの処理性能(スループット値T)に応じて、束ねるジョブ数を変化させた場合の所要時間を表わしている。(1)では、処理性能が低いワーカWbに律速され、全ジョブの終了時刻が遅くなっている。
一方、(2)では、ワーカWa,Wb,Wcの処理性能に応じて求めたジョブ数からなるジョブ群を割り当てているため、各ワーカWa,Wb,Wcのジョブ処理にかかる所要時間が平準化され、全ジョブの終了時刻が(1)の場合に比べて短縮されている。
(実施の形態2)
つぎに、実施の形態2にかかる分散処理装置について説明する。実施の形態2では、図1に示したグリッドコンピューティングシステム100を構成するワーカW1〜Wmごとに受け入れ可能(実行可能)なジョブタイプが異なる場合(同一の場合を含む)の分散処理について説明する。なお、実施の形態1において説明した箇所と同一箇所については、同一符号を付して図示および説明を省略する。
まず、実施の形態2にかかるマスタMの機能的構成について説明する。決定部601は、各ワーカが実行可能なジョブのジョブタイプに基づいて、ワーカ群の中から割当先を決定する機能を有する。ジョブタイプとは、例えば、ジョブの実行時に呼び出される関数名で分類されるジョブの種別である。
より具体的には、例えば、ジョブの実行時に起動されるアプリケーションによってジョブタイプを分類することができる。すなわち、各ワーカWが持つ機能によっては、マスタMから投入されるジョブを実行できる場合と、実行できない場合とがある。そこで、マスタMが、各ワーカWが実行可能なジョブのジョブタイプを判断し、ジョブの適切な割当先を決定する。
ここで、実施の形態2にかかるマスタMの分散処理手順の概要について説明する。図14は、分散処理手順の概要を示す説明図である。図14において、ジョブタイプの異なる3つのジョブJa,Jb,JcがマスタMに入力されたとする。ここでは、ジョブJaのジョブタイプをA、ジョブJbのジョブタイプをB、ジョブJcのジョブタイプをCと表記する。
この場合、各ジョブJa,Jb,Jcのジョブタイプを判断して、ジョブタイプごとに分類されたジョブキューA,B,Cに対応するジョブJa,Jb,Jcを配置する。ここでは、ジョブJaがジョブキューAに配置され、ジョブJbがジョブキューBに配置され、ジョブJcがジョブキューCに配置される。
このあと、決定部601は、各ワーカWが実行可能なジョブのジョブタイプに基づいて、ワーカW群の中から各ジョブキューA,B,Cに配置されたジョブJa,Jb,Jcの割当先を決定することとなる。
さらに、決定部601は、あるジョブタイプのジョブを実行可能なワーカWが複数存在する場合には、複数のワーカWの中からスループット値が最大のワーカWを割当先に決定することとしてもよい。このとき、例えば、ジョブタイプAのジョブの割当先を決定する場合には、スループット値が最大のワーカWを決定し、ジョブタイプBのジョブの割当先を決定する場合には、スループット値が2以上のワーカWをランダムに決定するなどのポリシーを設定することとしてもよい。
ここで、各ワーカWが実行可能なジョブのジョブタイプを特定する場合に用いられるワーカ管理テーブルについて説明する。図15は、ワーカ管理テーブルの記憶内容を示す説明図である。図15において、ワーカ管理テーブル1500には、ワーカW1〜Wmごとに、IPアドレス、状態および実行可能タイプが記憶されている。実行可能タイプとは、各ワーカWが実行可能なジョブのジョブタイプである。
つぎに、ワーカW1〜Wmのジョブタイプごとの処理性能を特定する場合に用いられるスループットテーブルについて説明する。図16は、スループットテーブルの記憶内容を示す説明図である。図16において、スループットテーブル1600には、ワーカW1〜Wmごとに、実行可能なジョブのジョブタイプごとのスループット値が記憶されている。
ワーカWiを例に挙げると、ジョブタイプAのジョブに関するスループット値Tia、ジョブタイプBのジョブに関するスループット値Tib、およびジョブタイプCのジョブに関するスループット値Ticを有している。
ここで、決定部601による割当先決定処理の具体例について説明する。まず、決定部601は、ワーカ管理テーブル1500からワーカWごとの状態および実行可能タイプを読み出して、ジョブキューにあるジョブを実行可能でかつ使用状態が「空き」であるワーカWをワーカW群の中から特定する。そして、スループットテーブル1600から特定されたワーカWのスループット値を読み出し、スループット値が最大のワーカWを割当先に決定する。
(分散処理装置の分散処理手順)
つぎに、実施の形態2にかかる分散処理装置の分散処理手順について説明する。なお、分散処理装置の分散処理手順のうち、決定部601による割当先決定処理(図9で示したステップS902に相当)以外は、実施の形態1と同様のため説明を省略する。図17は、割当先決定処理手順の他の一例を示すフローチャートである。
図17において、まず、ジョブキューにあるジョブのジョブタイプを取得する(ステップS1701)。このあと、ワーカ管理テーブル1500に基づいて、ステップS1701において取得されたジョブタイプのジョブを実行可能なワーカWがあるか否かを判断する(ステップS1702)。
ここで、実行可能なワーカWがある場合(ステップS1702:Yes)、ワーカ管理テーブル1500に基づいて、上記ジョブタイプのジョブを実行可能なワーカWのうち、未使用(空き)のワーカWがあるか否かを判断する(ステップS1703)。ここで、未使用のワーカWがなかった場合には(ステップS1703:No)、いずれかのワーカWが使用可能となるのを待つ。
一方、未使用のワーカWがあった場合(ステップS1703:Yes)、スループットテーブル1600に基づいて、上記未使用のワーカWの中から、スループット値Tが最大のワーカWを選択する(ステップS1704)。そして、選択されたワーカWを割当先に決定し(ステップS1705)、図9に示したステップS903に移行する。
また、ステップS1702において、実行可能なワーカWがなかった場合には(ステップS1702:No)、入力されたジョブが実行不可能である旨を示すメッセージを出力するエラー処理を実行して(ステップS1706)、処理を終了する。
なお、実施の形態2にかかるマスタMにおける分散処理は、ワーカM内に構築されたジョブキューごとに実行することとしてもよい。また、実施の形態1で説明したパラメータテーブル700(図7参照)は、各ワーカWが実行可能なジョブのジョブタイプごとに作成することとしてもよい。これにより、各ワーカWの処理性能(スループット値)を、ジョブタイプごとに算出することができる。
以上説明したように、実施の形態2によれば、ワーカWが受け入れ可能なジョブのジョブタイプを考慮して、ジョブの割当先を決定することで、ジョブ群を適切なワーカWに割り当てることができる。これにより、割り当てられたジョブ群を実行できない場合のエラー処理や、他のワーカWへのジョブ群の再割り当てにかかる処理などを削減し、マスタM/ワーカW間の通信トラフィックの低減を図ることができる。
また、ワーカWに入力されたジョブをジョブタイプごとに設けたジョブキューに配置することで、同じ関数を読み出すジョブを束ねることとなり、ワーカWのキャッシュヒット率を向上させることができる。
なお、本実施の形態で説明した分散処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワーク(伝送媒体)を介してコンピュータに配布することが可能な形態であってもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)通信可能なワーカ計算機群に複数のジョブを分散処理させるマスタ計算機を、
前記ワーカ計算機群の中から前記ジョブの割当先を決定する決定手段、
前記決定手段によって決定された割当先のワーカ計算機の処理性能と、前記割当先との通信にかかる通信時間とに基づいて、前記割当先に割り当てる前記ジョブのジョブ数を算出する算出手段、
前記算出手段によって算出された算出結果に基づいて、前記割当先に割り当てるジョブ群を生成する生成手段、
前記生成手段によって生成されたジョブ群の処理要求を、前記割当先に送信する送信手段、
として機能させることを特徴とする分散処理プログラム。
(付記2)前記マスタ計算機を、
前記割当先により計測された、前記送信手段によって前記処理要求よりも先に送信された一のジョブ群の処理要求が受信されてから当該一のジョブ群の実行が開始されるまでの待ち時間、および前記一のジョブ群の実行時間に関する情報を受信する受信手段、
前記割当先に前記一のジョブ群の処理要求を送信してから、前記一のジョブ群の処理結果を前記割当先から受信するまでの経過時間を計測する計測手段として機能させ、
前記算出手段は、
前記受信手段によって受信された待ち時間および実行時間に関する情報と、前記計測手段によって計測された経過時間とを用いて、前記通信時間を算出することを特徴とする付記1に記載の分散処理プログラム。
(付記3)前記算出手段は、
さらに、前記一のジョブ群の実行時間に関する情報を用いて、前記処理性能を算出することを特徴とする付記2に記載の分散処理プログラム。
(付記4)前記決定手段は、
前記各ワーカ計算機の使用状態に基づいて、前記ワーカ計算機群の中から前記割当先を決定することを特徴とする付記1〜3のいずれか一つに記載の分散処理プログラム。
(付記5)前記決定手段は、
前記各ワーカ計算機の処理性能に基づいて、前記ワーカ計算機群の中から前記割当先を決定することを特徴とする付記1〜4のいずれか一つに記載の分散処理プログラム。
(付記6)前記決定手段は、
前記各ワーカ計算機が実行可能なジョブのジョブタイプに基づいて、前記ワーカ計算機群の中から前記割当先を決定することを特徴とする付記1〜5のいずれか一つに記載の分散処理プログラム。
(付記7)マスタ計算機と通信可能なワーカ計算機を、
前記マスタ計算機から割り当てられたジョブ群の処理を実行する実行手段、
前記マスタ計算機から前記ジョブ群の処理要求を受信する受信手段、
前記受信手段によって前記処理要求が受信されてから、前記実行手段によって前記ジョブ群の実行が開始されるまでの待ち時間を計測する計測手段、
前記計測手段によって計測された待ち時間に関する情報を前記マスタ計算機に送信する送信手段、
として機能させることを特徴とする分散処理プログラム。
(付記8)前記計測手段は、
前記実行手段による前記ジョブ群の実行時間を計測し、
前記送信手段は、
前記計測手段によって計測された実行時間に関する情報を前記マスタ計算機に送信することを特徴とする付記7に記載の分散処理プログラム。
(付記9)通信可能なワーカ計算機群に複数のジョブを分散処理させる分散処理装置であって、
前記ワーカ計算機群の中から前記ジョブの割当先を決定する決定手段と、
前記決定手段によって決定された割当先のワーカ計算機の処理性能と、当該割当先との通信にかかる通信時間とに基づいて、前記割当先に割り当てる前記ジョブのジョブ数を算出する算出手段と、
前記算出手段によって算出された算出結果に基づいて、前記割当先に割り当てるジョブ群を生成する生成手段と、
前記生成手段によって生成されたジョブ群の処理要求を、前記割当先に送信する送信手段と、
を備えることを特徴とする分散処理装置。
(付記10)マスタ計算機から割り当てられたジョブ群の処理を実行する実行手段と、
前記マスタ計算機から前記ジョブ群の処理要求を受信する受信手段と、
前記受信手段によって前記処理要求が受信されてから、前記実行手段によって前記ジョブ群の実行が開始されるまでの待ち時間を計測する計測手段と、
前記計測手段によって計測された待ち時間に関する情報を前記マスタ計算機に送信する送信手段と、
を備えることを特徴とする分散処理装置。
(付記11)通信可能なワーカ計算機群に複数のジョブを分散処理させる分散処理方法であって、
前記ワーカ計算機群の中から前記ジョブの割当先を決定する決定工程と、
前記決定工程によって決定された割当先のワーカ計算機の処理性能と、当該割当先との通信にかかる通信時間とに基づいて、前記割当先に割り当てる前記ジョブのジョブ数を算出する算出工程と、
前記算出工程によって算出された算出結果に基づいて、前記割当先に割り当てるジョブ群を生成する生成工程と、
前記生成工程によって生成されたジョブ群の処理要求を、前記割当先に送信する送信工程と、
を含んだことを特徴とする分散処理方法。
(付記12)マスタ計算機から割り当てられたジョブ群の処理を実行する実行工程と、
前記マスタ計算機から前記ジョブ群の処理要求を受信する受信工程と、
前記受信工程によって前記処理要求が受信されてから、前記実行工程によって前記ジョブ群の実行が開始されるまでの待ち時間を計測する計測工程と、
前記計測工程によって計測された待ち時間に関する情報を前記マスタ計算機に送信する送信工程と、
を含んだことを特徴とする分散処理方法。
グリッドコンピューティングシステムおよび分散処理装置のシステム構成図である。 ワーカWにおけるジョブ処理過程の概要を示す説明図である。 マスタMおよびワーカWのハードウェア構成を示すブロック図である。 ワーカ管理テーブルの記憶内容を示す説明図(その1)である。 スループットテーブルの記憶内容を示す説明図(その1)である。 マスタMの機能的構成を示すブロック図である。 パラメータテーブルの記憶内容を示す説明図である。 ワーカWの機能的構成を示すブロック図である。 マスタMにおける分散処理手順の一例を示すフローチャートである。 割当先決定処理手順の一例を示すフローチャートである。 ワーカWにおける分散処理手順の一例を示すフローチャートである。 パラメータテーブルの更新処理手順の一例を示すフローチャートである。 ワーカWごとの所要時間を示すガントチャートである。 分散処理手順の概要を示す説明図である。 ワーカ管理テーブルの記憶内容を示す説明図(その2)である。 スループットテーブルの記憶内容を示す説明図(その2)である。 割当先決定処理手順の他の一例を示すフローチャートである。
符号の説明
100 グリッドコンピューティングシステム
210,220 グラフ
400,1500 ワーカ管理テーブル
500,1600 スループットテーブル
601 決定部
602 算出部
603 生成部
604 送信部
605 受信部
606 計測部
700 パラメータテーブル
700−1〜700−p パラメータ情報
801 受信部
802 実行部
803 送信部
804 計測部
M マスタ
W,W1〜Wm ワーカ

Claims (6)

  1. 複数の計算機に複数のジョブを分散処理させる分散処理装置を、
    前記複数の計算機から前記ジョブの割当先を決定する決定手段、
    前記割当先により計測された、前記割当先に先に送信されたジョブ群の処理要求が受信されてから前記先に送信されたジョブ群の実行が開始されるまでの待ち時間、および前記先に送信されたジョブ群の実行時間を受信する受信手段、
    前記割当先に先に送信されたジョブ群の処理要求を送信してから、前記先に送信されたジョブ群の処理結果を前記割当先から受信するまでの経過時間を計測する計測手段、
    前記受信手段によって受信された前記待ち時間と前記実行時間と、前記計測手段によって計測された前記経過時間と、前記割当先に先に送信されたジョブ群を形成するジョブの数とに基づいて、前記割当先との通信にかかる通信時間のパラメータを算出し、前記実行時間と前記先に送信されたジョブ群を形成するジョブの数とに基づいて、ジョブ単位の実行時間を算出し、前記割当先に割り当てるジョブ群の実行時間と前記通信時間との対応情報と、出した前記通信時間のパラメータと前記算出したジョブ単位の実行時間とに基づいて、前記割当先に割り当てる前記ジョブの数を算出する算出手段、
    前記算出手段によって算出された前記ジョブの数に基づいて、前記割当先に割り当てるジョブ群を生成する生成手段、
    前記生成手段によって生成された前記ジョブ群の処理要求を、前記割当先に送信する送信手段、
    として機能させることを特徴とする分散処理プログラム。
  2. 前記決定手段は、
    前記各計算機の使用状態に基づいて、前記複数の計算機から前記割当先を決定することを特徴とする請求項1に記載の分散処理プログラム。
  3. 前記決定手段は、
    前記各計算機の処理性能に基づいて、前記複数の計算機から前記割当先を決定することを特徴とする請求項1または2に記載の分散処理プログラム。
  4. 前記決定手段は、
    前記各計算機が実行可能なジョブのジョブタイプに基づいて、前記複数の計算機から前記割当先を決定することを特徴とする請求項1〜3のいずれか一つに記載の分散処理プログラム。
  5. 複数の計算機に複数のジョブを分散処理させる分散処理装置であって、
    前記複数の計算機から前記ジョブの割当先を決定する決定手段と、
    前記割当先により計測された、前記割当先に先に送信されたジョブ群の処理要求が受信されてから前記先に送信されたジョブ群の実行が開始されるまでの待ち時間、および前記先に送信されたジョブ群の実行時間を受信する受信手段と、
    前記割当先に先に送信されたジョブ群の処理要求を送信してから、前記先に送信されたジョブ群の処理結果を前記割当先から受信するまでの経過時間を計測する計測手段と、
    前記待ち時間と前記実行時間と、計測した前記経過時間と、前記割当先に先に送信されたジョブ群を形成するジョブの数とに基づいて、前記割当先との通信にかかる通信時間のパラメータを算出し、前記実行時間と前記先に送信されたジョブ群を形成するジョブの数とに基づいて、ジョブ単位の実行時間を算出し、前記割当先に割り当てるジョブ群の実行時間と前記通信時間との対応情報と出した前記通信時間のパラメータと前記算出したジョブ単位の実行時間とに基づいて、前記割当先に割り当てる前記ジョブの数を算出する算出手段と、
    算出した前記ジョブの数に基づいて、前記割当先に割り当てるジョブ群を生成する生成手段と、
    生成した前記ジョブ群の処理要求を前記割当先に送信する送信手段と、
    を備えることを特徴とする分散処理装置。
  6. 複数の計算機に複数のジョブを分散処理させる分散処理装置が、
    前記複数の計算機から前記ジョブの割当先を決定し、
    前記割当先により計測された、前記割当先に先に送信されたジョブ群の処理要求が受信されてから前記先に送信されたジョブ群の実行が開始されるまでの待ち時間、および前記先に送信されたジョブ群の実行時間を受信し、
    前記割当先に先に送信されたジョブ群の処理要求を送信してから、前記先に送信されたジョブ群の処理結果を前記割当先から受信するまでの経過時間を計測し、
    受信した前記待ち時間と前記実行時間と、計測した前記経過時間と、前記割当先に先に送信されたジョブ群を形成するジョブの数とに基づいて、前記割当先との通信にかかる通信時間のパラメータを算出し、前記実行時間と前記先に送信されたジョブ群を形成するジョブの数とに基づいて、ジョブ単位の実行時間を算出し、前記割当先に割り当てるジョブ群の実行時間と前記通信時間との対応情報と、出した前記通信時間のパラメータと前記算出したジョブ単位の実行時間とに基づいて、前記割当先に割り当てる前記ジョブの数を算出し、
    算出した前記ジョブの数に基づいて、前記割当先に割り当てるジョブ群を生成し、
    生成した前記ジョブ群の処理要求を、前記割当先に送信する、
    処理を実行することを特徴とする分散処理方法。
JP2008008355A 2008-01-17 2008-01-17 分散処理プログラム、分散処理装置、および分散処理方法 Expired - Fee Related JP5176558B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008008355A JP5176558B2 (ja) 2008-01-17 2008-01-17 分散処理プログラム、分散処理装置、および分散処理方法
US12/346,300 US8631118B2 (en) 2008-01-17 2008-12-30 Recording medium having distributed processing program stored therein, distributed processing device and distributed processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008008355A JP5176558B2 (ja) 2008-01-17 2008-01-17 分散処理プログラム、分散処理装置、および分散処理方法

Publications (2)

Publication Number Publication Date
JP2009169756A JP2009169756A (ja) 2009-07-30
JP5176558B2 true JP5176558B2 (ja) 2013-04-03

Family

ID=40877293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008008355A Expired - Fee Related JP5176558B2 (ja) 2008-01-17 2008-01-17 分散処理プログラム、分散処理装置、および分散処理方法

Country Status (2)

Country Link
US (1) US8631118B2 (ja)
JP (1) JP5176558B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621062B1 (en) * 2013-03-15 2013-12-31 Opscode, Inc. Push signaling to run jobs on available servers
US9379954B2 (en) 2013-03-15 2016-06-28 Chef Software Inc. Configuration management for a resource with prerequisites
US10296380B1 (en) * 2016-09-19 2019-05-21 Amazon Technologies, Inc. Distributed computing with adaptive parallelization
US11182209B2 (en) * 2018-09-21 2021-11-23 Google Llc Distributed job scheduling system
JP2020144606A (ja) 2019-03-06 2020-09-10 株式会社リコー 情報処理システム、情報処理方法、情報処理装置及びプログラム
CN110362419B (zh) * 2019-07-22 2023-04-07 中国工商银行股份有限公司 应用于集中式多时区系统的数据处理方法及装置
CN115373844A (zh) * 2022-08-23 2022-11-22 中国民航信息网络股份有限公司 数据预处理性能的提升方法、装置、存储介质和设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04223548A (ja) * 1990-12-25 1992-08-13 Nippon Telegr & Teleph Corp <Ntt> 並列処理システムの負荷配分方法
JPH0512228A (ja) * 1991-06-20 1993-01-22 Hitachi Ltd 分散処理システム
JPH11195007A (ja) 1998-01-07 1999-07-21 Sanyo Electric Co Ltd 分散処理システム及び分散処理方法
JP2000242614A (ja) * 1999-02-22 2000-09-08 Nippon Steel Corp 分散処理システムおよびその方法、分散処理を行うための端末装置および記録媒体
JP4475614B2 (ja) * 2000-04-28 2010-06-09 大正製薬株式会社 並列処理方法におけるジョブの割り当て方法および並列処理方法
US6757730B1 (en) * 2000-05-31 2004-06-29 Datasynapse, Inc. Method, apparatus and articles-of-manufacture for network-based distributed computing
US7093250B1 (en) * 2001-10-11 2006-08-15 Ncr Corporation Priority scheduler for database access
JP2003208414A (ja) * 2002-01-11 2003-07-25 Hitachi Ltd 負荷分散機能付きサーバおよびクライアント
JP2004038226A (ja) * 2002-06-28 2004-02-05 Hitachi Ltd Pcクラスタおよびその中間ソフトウエア
JP2004110318A (ja) 2002-09-18 2004-04-08 Nec Corp 階層的分散処理システムおよび階層的分散処理方法
JP4265377B2 (ja) * 2003-11-12 2009-05-20 日本電気株式会社 負荷分散方法及び装置とシステム並びにプログラム
JP4962327B2 (ja) * 2008-01-17 2012-06-27 富士通株式会社 分散処理プログラム、分散処理装置、および分散処理方法

Also Published As

Publication number Publication date
US8631118B2 (en) 2014-01-14
US20090187619A1 (en) 2009-07-23
JP2009169756A (ja) 2009-07-30

Similar Documents

Publication Publication Date Title
JP5176558B2 (ja) 分散処理プログラム、分散処理装置、および分散処理方法
JP5400226B2 (ja) 計算機システムに対する処理のタスクでありユーザ操作に基づくタスクを管理するシステム、及び、その種のタスクに関する情報を表示する方法
US8631401B2 (en) Capacity planning by transaction type
US8402468B2 (en) Capacity planning based on resource utilization as a function of workload
US9594663B2 (en) Apparatus and method for collecting log information from a plurality of servers
JP4962327B2 (ja) 分散処理プログラム、分散処理装置、および分散処理方法
AU2008230964A1 (en) Methods and apparatus for dynamically allocating tasks
JP2007183883A (ja) 資源計画作成プログラム、該プログラムを記録した記録媒体、資源計画作成装置、および資源計画作成方法
JP2008217332A (ja) 仮想マシン管理システム、その方法及びそのプログラム
KR101770191B1 (ko) 자원 할당 방법 및 그 장치
JP5614318B2 (ja) スケジューリングプログラム,方法および装置
US20180247273A1 (en) Dynamic schedule creation based on knowledge
JP5845789B2 (ja) 制御プログラム、データアクセス制御装置およびデータ制御方法
JP2007179365A (ja) サービスの評価の方法、システム、コンピュータ・プログラム
JP5772973B2 (ja) 情報提供装置、方法、およびプログラム
JP2008165301A (ja) 負荷集約プログラム、該プログラムを記録した記録媒体、負荷集約装置および負荷集約方法
JP4792358B2 (ja) 資源ノード選択方法、プログラム、資源ノード選択装置および記録媒体
JP7403400B2 (ja) 情報処理システム及び情報処理方法
JPWO2025037397A5 (ja)
JP2017037469A (ja) 情報処理システム、優先処理方法、情報処理装置及びプログラム
JP2022032819A (ja) Rpa開発運用管理装置、rpa開発運用管理システム、rpa開発運用管理方法、プログラム、及び、記録媒体
WO2025037397A1 (ja) ジョブ管理プログラム、ジョブ管理方法、およびジョブ管理装置
KR20120045322A (ko) 클라우드 컴퓨팅 기반의 스프레드 시트 처리 시스템 및 방법
JP2009151376A (ja) 分散処理方法、計算機管理装置及び分散処理システム
JP2008077608A (ja) 業務進行管理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120724

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121130

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121224

LAPS Cancellation because of no payment of annual fees