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

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

Info

Publication number
JP4962327B2
JP4962327B2 JP2008008356A JP2008008356A JP4962327B2 JP 4962327 B2 JP4962327 B2 JP 4962327B2 JP 2008008356 A JP2008008356 A JP 2008008356A JP 2008008356 A JP2008008356 A JP 2008008356A JP 4962327 B2 JP4962327 B2 JP 4962327B2
Authority
JP
Japan
Prior art keywords
processing
worker
time
group
execution
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
JP2008008356A
Other languages
English (en)
Other versions
JP2009169757A (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 JP2008008356A priority Critical patent/JP4962327B2/ja
Priority to US12/345,342 priority patent/US8544009B2/en
Publication of JP2009169757A publication Critical patent/JP2009169757A/ja
Application granted granted Critical
Publication of JP4962327B2 publication Critical patent/JP4962327B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Description

この発明は、マスタ計算機(以下、単に「マスタ」という)が複数のワーカ計算機(以下、単に「ワーカ」という)に一連の処理群を分散処理させる分散処理プログラム、分散処理装置、および分散処理方法に関する。
従来、ネットワークを介して通信可能なマスタ/ワーカ間でやり取りされる処理の流れでは、まず、マスタが処理(その実行に必要なデータを含む)をワーカに投入する。つぎに、投入されたワーカは、処理を実行する。そして、そのワーカは、処理の実行結果をマスタに返す。マスタは、これらを複数のワーカに対しておこなうことにより、処理全体をワーカに分散処理させている。
また、下記特許文献1には、オンライン分散システムにおいて、同じ処理プロセスで処理する1つ以上のトランザクションをまとめて処理要求する技術が記載されている。具体的には、トランザクションデータを処理するための処理プロセスを決定し、処理プロセスにトランザクションデータを引き渡すオンラインコントロール処理において、処理待ち状態にあるトランザクションから同じ処理プロセスで処理する1つ以上のトランザクションをまとめて1回の処理要求で処理プロセスにデータを引き渡す。
また、下記特許文献2には、複数のタスクから構成されるタスクグループ単位で処理の割り当てをおこなう技術が記載されている。具体的には、まず、上位管理装置から下位管理装置にタスクグループの処理を割り当てる。つぎに、下位管理装置からタスク実行装置にタスクグループに含まれるタスクを割り当て、タスク実行装置によりタスクを実行し、その実行結果を下位管理装置に送信する。そして、下位管理装置により、タスクの実行結果を収集し、その収集結果を上位管理装置に送信する。最後に、上位管理装置により、収集結果を集約して出力する。
特開平9−73432号公報 特開2004−110318号公報
しかしながら、上述した特許文献1に記載の従来技術は、いくつのトランザクションをまとめて処理プロセスに引き渡すのかが、分散処理の効率性に大きな影響を与えるにもかかわらず、そのまとめ数については何ら言及されていない。
例えば、トランザクションのまとめ数を多くすれば、処理要求の転送回数を削減することはできるが、その実行結果を得るまでの応答時間は増加する一方である。また、トランザクションを過剰にまとめてしまうと、利用可能なワーカ数が増加したときに、トランザクションを各ワーカに均等に割り当てることができない場合がある。
さらに、利用可能なワーカ数が少ない場合には、キューにあるトランザクションの数が少なくなったときに、全トランザクションを1台のワーカで処理することとなる可能性がある。このように、不適切にトランザクションをまとめてしまうと、利用可能なワーカを十分に活用することができず、ひいては分散処理にかかる所要時間の長期化を招くという問題がある。
上述した特許文献2に記載の従来技術に関しても、タスクグループを構成するタスクの数(まとめ数)については何ら言及されておらず、特許文献1に記載の従来技術と同様に、利用可能なワーカを十分に活用することができず、ひいては分散処理にかかる所要時間の長期化を招くという問題がある。
この発明は、上述した従来技術による問題点を解消するため、実行時間の短い処理を適切にまとめた処理群を割り当てることにより、マスタ/ワーカ間の通信トラフィックの低減化および分散処理の効率化を図ることができる分散処理プログラム、分散処理装置、および分散処理方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この分散処理プログラム、分散処理装置、および分散処理方法は、一連の処理群のうち、先に送信された処理群の実行時間と、当該先に送信された処理群を受信してから実行を開始するまでの待機時間とに関する情報をワーカ計算機から受信し、前記先に送信された処理群を前記ワーカ計算機に送信してから、前記先に送信された処理群の実行結果を前記ワーカ計算機から受信するまでの経過時間を取得し、受信された情報と取得された経過時間とに基づいて、前記ワーカ計算機との通信にかかる通信時間を算出し、算出された通信時間に基づいて、前記ワーカ計算機に割り当てる処理の処理数を算出し、算出された処理数に基づいて、前記ワーカ計算機に割り当てる処理群を生成し、生成された処理群を前記ワーカ計算機に送信することを要件とする。
この分散処理プログラム、分散処理装置、および分散処理方法によれば、実行時間の短い処理をマスタ/ワーカ間の通信時間に応じた適切な処理数でまとめた処理群を、ワーカに割り当てることができる。
また、この分散処理プログラム、分散処理装置、および分散処理方法において、さらに、前記ワーカ計算機のスループット値から処理性能値を算出し、算出された通信時間および処理性能値に基づいて、前記ワーカ計算機に割り当てる前記処理の処理数を算出する。
この分散処理プログラム、分散処理装置、および分散処理方法によれば、実行時間の短い処理を動的に変化するワーカの処理性能に応じた適切な処理数でまとめた処理群を、ワーカに割り当てることができる。
また、この分散処理プログラム、分散処理装置、および分散処理方法において、前記ワーカ計算機に割り当て済みの2つの処理群のうち、先に送信された処理群の実行が完了した場合に、受信処理、第1の算出処理、第2の算出処理、生成処理および送信処理を再度実行する。
この分散処理プログラム、分散処理装置、および分散処理方法によれば、前々回に割り当てた処理群の実行が完了した場合に、つぎの処理群を割り当てることで、前回に割り当てた処理群の実行中に、つぎの処理群の受け渡しをおこなうことができる。
また、この分散処理プログラム、分散処理装置、および分散処理方法において、前記通信時間が、前記ワーカ計算機における処理群の実行時間以下となる処理数を算出する。
この分散処理プログラム、分散処理装置、および分散処理方法によれば、実行時間が通信時間よりも長くなると予測される処理群を割り当てることで、マスタ/ワーカ間の通信オーバーヘッドを適切に削減することができる。
この分散処理プログラム、分散処理装置、および分散処理方法によれば、実行時間の短い処理を適切にまとめた処理群を割り当てることにより、マスタ/ワーカ間の通信トラフィックの低減化および分散処理の効率化を図ることができるという効果を奏する。
以下に添付図面を参照して、この分散処理プログラム、分散処理装置、および分散処理方法の好適な実施の形態を詳細に説明する。なお、本明細書において、分散処理装置とは、マスタまたはワーカであり、分散処理プログラムとは、分散処理装置にインストールされたプログラムである。
(システムのシステム構成)
まず、本実施の形態にかかるシステム100のシステム構成について説明する。図1は、システムのシステム構成図である。図1において、システム100は、インターネット、LAN、WANなどのネットワーク110を介して通信可能なマスタMとワーカW1〜Wm群とから構成される。
システム100には、本実施の形態で説明するマスタMとワーカW1〜Wmとからなる分散処理システムの他に、例えば、複数のデータベースサーバを仮想的に1台の統合データベースサーバとしてみなす検索システムや、ポータルサーバと複数のアプリケーションサーバとからなるWebサービスシステムなどを適用することができる。
各ワーカW1〜Wmは、異なる処理能力を持つこととしてもよく、また、OSやハードウェア・アーキテクチャなど異なる構造を持つこととしてもよい。さらに、ネットワーク110の通信品質は、一定または画一的である必要もない。
このシステム100では、マスタMが実行時間の短い処理をまとめた処理群を生成し、生成された一連の処理群を適切なワーカW1〜Wmに投入する。そして、ワーカW1〜Wmが投入された処理群を実行し、その実行結果をマスタMに返す。このとき、処理の実行結果は、処理単位で返すのではなく、処理群単位で返す。
ここでは、処理群を構成する各処理の実行時間は一様であることとする。つまり、各処理の粒度(処理量)は揃っている、あるいは、無視できる程度のばらつきである。また、各処理の実行時間は、マスタ/ワーカ間の通信時間(転送時間)よりも短い時間とする。
処理の具体例としては、例えば、金融機関などのオプション・リスク計算において、モンテカルロ法を用いて確率的にシナリオをシミュレーションする際の数万〜数千万個の処理や、統合データベースに対して発行されるデータの検索、更新、削除などの命令を表わすクエリが挙げられる。
このような実行時間の短い処理を大量に実行するケースでは、処理単位でマスタMからワーカW1〜Wmに投入すると、マスタ/ワーカ間の通信時間やワーカW1〜Wmにおけるアイドル時間といった通信オーバーヘッドが顕在化してしまう。そこで、複数の処理をまとめた処理群を1つの処理単位とすることにより、レイテンシハイディングによる通信オーバーヘッドの隠蔽を可能とするのに十分な実行時間を確保する。
ここで、ワーカW1を例に挙げて、システム100における処理の投入例を説明する。まず、マスタMにおいて、入力された処理T1,T2,T3を3個にまとめた処理群TG1を生成する。つぎに、割当先に決定されたワーカW1に生成された処理群TG1を投入(ネットワーク110経由で送信)する。
このあと、ワーカW1において、マスタMから投入された処理群TG1を実行し、処理群TG1を構成するすべての処理T1,T2,T3の実行が完了したあと、処理T1,T2,T3の処理結果R1,R2,R3をまとめた処理結果RG1をマスタMに返す。
このように、複数の処理T1,T2,T3をまとめた処理群TG1を1つの処理単位として分散処理させることにより、マスタ/ワーカ間の通信回数を削減し、通信時間やアイドル時間などの通信オーバーヘッドの隠蔽を図る。実行結果は、すべての処理T1,T2,T3の実行が完了したあとに、ワーカW1からマスタMに一括して返すことで、ネットワーク110上のトラフィックの低減化を図る。
また、各ワーカW1〜Wmにおいて、マスタMから投入された処理群の実行が完了すると、直ちにつぎの処理群の実行を開始できるように、処理群の実行処理と並列に他の処理群の受信処理をおこなう。このとき、ワーカW1〜Wmにおける、実行中の処理群を除く実行待ちの処理群の数を「1」とする。この場合、各ワーカW1〜Wmは、以下に説明する3つの状態間の状態遷移を繰り返すこととなる。
図2は、ワーカWの状態遷移を示す説明図である。以降において、特に指定する場合を除いて「ワーカW1〜Wm」を単に「ワーカW」と表記する。図2において、状態1はマスタMからの処理群が未割当の状態である。状態2はマスタMから処理群が1つ割り当てられた状態である。状態3はマスタMから処理群が2つ割り当てられた状態である。
状態遷移の流れは、まず、マスタMからワーカWに処理群が1つ割り当てられると、状態1から状態2に遷移する。さらに、状態2において、マスタMから割り当てられた処理群の実行中に、マスタMから新たな処理群が割り当てられると、状態2から状態3に遷移する。
一方、状態3において、マスタMから割り当てられた2つ処理群のうち1つの処理群の実行が完了し、その実行結果をマスタMに返すと、状態3から状態2に遷移する。また、状態2において、マスタMから割り当てられた処理群の実行が完了し、その実行結果をマスタMに返すと、状態2から状態1に遷移する。
ここで、一連の処理群の分散処理にかかる所要時間について具体的に説明する。図3は、分散処理にかかる所要時間を具体的に示すガントチャートである。図3中、「通信1」はマスタ/ワーカ間の処理群の受け渡しにかかる通信時間である。「処理実行」はワーカWにおける処理群の実行にかかる実行時間である。「通信2」はマスタ/ワーカ間の実行結果の受け渡しにかかる通信時間である。
図3において、グラフ310は、1つの処理群の分散処理が完了したあとに、つぎの処理群の分散処理を開始する場合の所要時間を示している。この場合、全体の所要時間(開始時刻〜終了時刻1)は、処理群ごとの「通信1」、「処理実行」および「通信2」を直列に並べたものとなる。
一方、グラフ320は、1つの処理群の実行中に、つぎの処理群の受信を開始する場合の所要時間を示している。この場合、全体の所要時間(開始時刻〜終了時刻2)は、「処理実行」と「通信1」および「通信2」とを並列に並べた分だけ、グラフ310に示す所要時間(開始時刻〜終了時刻1)に比べて短縮されている。
このように、ワーカWによる処理群の実行処理と並列に、マスタ/ワーカ間の通信処理を実行することで、マスタ/ワーカ間の通信時間(通信1,通信2)を、処理群の実行時間によって隠蔽し、一連の処理群の分散処理にかかる所要時間の短縮化を図る。
(分散処理装置のハードウェア構成)
つぎに、本実施の形態にかかる分散処理装置のハードウェア構成について説明する。図4は、分散処理装置のハードウェア構成を示すブロック図である。
図4において、分散処理装置は、CPU401と、ROM402と、RAM403と、HDD(ハードディスクドライブ)404と、HD(ハードディスク)405と、FDD(フレキシブルディスクドライブ)406と、着脱可能な記録媒体の一例としてのFD(フレキシブルディスク)407と、ディスプレイ408と、I/F(インターフェース)409と、キーボード410と、マウス411とを備えている。また、各構成部は、バス400によってそれぞれ接続されている。
ここで、CPU401は、分散処理装置の全体の制御を司る。ROM402は、ブートプログラムなどのプログラムを記録している。RAM403は、CPU401のワークウェアとして使用される。HDD404は、CPU401の制御にしたがってHD405に対するデータのリード/ライトを制御する。HD405は、HDD404の制御で書き込まれたデータを記憶する。
FDD406は、CPU401の制御にしたがってFD407に対するデータのリード/ライトを制御する。FD407は、FDD406の制御で書き込まれたデータを記憶したり、FD407に記憶されたデータを分散処理装置に読み取らせたりする。
また、着脱可能な記録媒体として、FD407のほか、CD−ROM(CD−R、CD−RW)、MO、DVD(Digital Versatile Disk)、メモリカードなどであってもよい。ディスプレイ408は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ408には、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F409は、通信回線を通じてインターネットなどのネットワーク110に接続され、このネットワーク110を介して他の装置に接続される。そして、I/F409は、ネットワーク110と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F409には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード410は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス411は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様の機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
(ワーカ管理テーブルの記憶内容)
ここで、割当先となるワーカWのIPアドレスおよび使用状態を特定する場合に用いられるワーカ管理テーブルについて説明する。図5は、ワーカ管理テーブルの記憶内容を示す説明図である。ワーカ管理テーブル500はマスタMに備えられる。図5において、ワーカ管理テーブル500には、マスタMの管理下にあるワーカWごとに、IPアドレスおよび状態情報が記憶されている。
状態情報は、各ワーカWの使用状態を表している。具体的には、この状態は、マスタMからの処理投入前は「空き」となる。そして、マスタMから処理が投入されると「空き」から「使用中」に書き換えられる。また、ワーカWから実行結果が返ってくると「使用中」から「空き」に書き換えられる。なお、ワーカWの機能が停止している場合は「停止中」となり、停止から復帰すると「停止中」から「空き」に書き換えられる。
図示は省略するが、上記「使用中」の項目を詳細化して表わすこととしてもよい。例えば、図2に示した状態2または状態3を「使用中」の付加情報として記憶することとしてもよい。ワーカ管理テーブル500は、図4に示したRAM403やHD405などの記憶部によりその機能を実現する。
(スループットテーブルの記憶内容)
つぎに、ワーカWの処理性能を特定する場合に用いられるスループットテーブルについて説明する。図6は、スループットテーブルの記憶内容を示す説明図である。スループットテーブル600はマスタMに備えられる。図6において、スループットテーブル600には、ワーカWごとのスループット値が記憶されている。
スループット値は、各ワーカWの処理性能を表わす指標であり、例えば、単位時間当たりに実行可能な処理数によって表現することができる。このスループット値は、例えば、各ワーカWのCPU401の処理能力(例えば、クロック周波数)を基準として、使用状況など(例えば、マスタMとは異なる他のコンピュータ装置から投入された処理を実行中)に応じて動的に変化する。
また、未だ処理の割当先となっていないワーカW(例えば、ワーカW2)のスループット値は未登録となっている(図5中、「−」と表記)。スループットテーブル600は、図4に示したRAM403やHD405などの記憶部によりその機能を実現する。
(分散処理装置の機能的構成)
つぎに、分散処理装置の機能的構成について説明する。まず、マスタMの機能的構成について説明する。図7は、マスタMの機能的構成を示すブロック図である。図7において、マスタMは、受信部701と、取得部702と、第1の算出部703と、第2の算出部704と、生成部705と、送信部706と、決定部707と、から構成されている。
これら各機能701〜707は、マスタMの記憶部に記憶された当該機能701〜707に関するプログラムをCPUに実行させることにより、または、入出力I/Fにより、当該機能を実現することができる。また、各機能701〜707からの出力データは上記記憶部に保持される。また、図7中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをCPUに実行させるものとする。
まず、受信部701は、一連の処理群のうち、先に送信された処理群の実行時間と、当該先に送信された処理群を受信してから実行を開始するまでの待機時間とに関する情報をワーカWから受信する機能を有する。実行時間とは、ワーカWが処理群の実行を開始してから、その処理群を構成するすべての処理の実行が完了するまでにかかった時間である。
また、待機時間とは、処理群がワーカWに到達してから実際に実行が開始されるまでの待ち時間である。すなわち、受信部701は、マスタMから割当先のワーカWに処理群が割り当てられた結果、割り当てられた処理群の実行時間および待機時間に関する情報を割当先から受信することとなる。これら実行時間と待機時間とに関する情報は、受信された都度、例えば、後述するパラメータテーブル800に記憶される。
取得部702は、先に送信された処理群をワーカWに送信してから、先に送信された処理群の実行結果をワーカWから受信するまでの経過時間を取得する機能を有する。具体的には、例えば、ワーカWに処理群を送信してから、その処理群の実行結果をワーカWから受信するまでの時間を計測することで、経過時間を取得することとしてもよい。
より具体的に説明すると、例えば、割当先に処理群を送信した送信日時と、その処理群の実行結果を割当先から受信した受信日時と、から経過時間を計測することができる。また、外部のコンピュータ装置により計測された経過時間を取得することとしてもよい。この経過時間は、例えば、取得された都度、後述するパラメータテーブル800に記憶される。
第1の算出部703は、受信部701によって受信された情報と取得部702によって取得された経過時間とに基づいて、ワーカWとの通信にかかる通信時間を算出する機能を有する。具体的には、例えば、マスタ/ワーカ間の処理群の受け渡し、およびマスタ/ワーカ間の処理群の実行結果の受け渡しにかかる通信時間を算出する。
また、第1の算出部703は、先に送信された処理群の実行時間に関する情報を用いて、ワーカWの処理性能を算出する機能を有する。ワーカWの処理性能とは、例えば、図6に示したワーカWごとのスループット値である。詳細は後述するが、これら通信時間および処理性能は、ワーカWごとに保持されているパラメータテーブル(例えば、パラメータテーブル800)の記憶内容を用いて算出することができる。
第2の算出部704は、第1の算出部703によって算出された算出結果に基づいて、ワーカWに割り当てる処理の処理数を算出する機能を有する。具体的には、例えば、ワーカWとの通信にかかる通信時間およびワーカWの処理性能に基づいて処理数を算出する。なお、第2の算出部704は、ワーカWとの通信にかかる通信時間またはワーカWの処理性能のいずれか一方に基づいて、処理数を算出することとしてもよい。
第2の算出部704は、例えば、ワーカWとの通信にかかる通信時間が、ワーカWにおける処理群の実行時間以下となる処理数を算出する。より具体的には、例えば、処理数nの処理をまとめた処理群のワーカWにおける実行時間が、マスタ/ワーカ間の通信時間と同程度(例えば、1〜2倍程度)になるような処理数nを算出する。
生成部705は、第2の算出部704によって算出された算出結果に基づいて、ワーカWに割り当てる処理群を生成する機能を有する。具体的には、例えば、マスタM内のキューにある複数の処理を処理数nでまとめることで1つの処理群を生成する。このとき、処理数n分の処理がキューにない場合は、キューにあるすべての処理をまとめた処理群を生成する。
各処理には、固有の処理ID(例えば、図1に示したT1,T2,T3)が割り付けられており、さらに、1つの処理群を構成する各処理には共通の処理群ID(例えば、TG1)が割り付けられている。このように処理IDおよび処理群IDを割り付けることにより、複数の処理からなる処理群を認識することができる。
なお、キューとは、マスタM内の記憶部に構築されるデータ構造であり、マスタMに入力された処理をキューイングする機能を有する。また、分散処理対象となる処理は、マスタMに直接入力することとしてもよく、また、ネットワーク110を介して外部のコンピュータ装置から取得することとしてもよい。
送信部706は、生成部705によって生成された処理群をワーカWに送信する機能を有する。具体的には、例えば、ワーカ管理テーブル500を参照して、割当先のワーカWのIPアドレスを宛先に設定することで処理群をワーカWに送信することができる。また、送信部706により処理群が送信されると、ワーカ管理テーブル500の記憶内容のうち、割当先のワーカWの状態が「使用中」に書き換えられる。
このように、複数の処理をまとめた処理群をワーカWに割り当てることで、処理単位でワーカWに割り当てる場合に比べてマスタ/ワーカ間の通信回数を削減することができる。この結果、ワーカWとの通信にかかる通信時間やワーカWのアイドル時間などのオーバーヘッドを削減するとともに、分散処理の効率化を図ることができる。
ここで、第1および第2の算出部703,704による算出処理の具体例について説明する。まず、第1および第2の算出部703,704による算出処理に用いられるパラメータテーブルについて説明する。パラメータテーブルは、例えば、ワーカWごとに、そのワーカ名と関連付けて、マスタMに備えられる。
ここでは、ワーカWiのパラメータテーブルを例に挙げて説明する。図8は、パラメータテーブルの記憶内容の一例を示す説明図である。図8において、パラメータテーブル800には、処理群を構成する処理数n1〜npごとに、パラメータ情報800−1〜800−pが記憶されている。
パラメータ情報800−1〜800−pは、パラメータt,w,δを有している。パラメータtは、ワーカWiに処理群を送信してから、その処理群の実行結果をワーカWiから受信するまでの経過時間を表わしている。パラメータwは、ワーカWiが処理群を受信してから、その処理群の実行を開始するまでの待機時間を表わしている。パラメータδは、ワーカWiにおける処理群の実行時間を表わしている。
上記パラメータt,w,δのうち、パラメータw,δは、受信部701によって実行時間と待機時間とに関する情報が受信された都度、記憶内容が更新される。具体的には、例えば、処理数n1の処理群の実行時間および待機時間に関する情報をワーカWiから受信すると、パラメータ情報800−1のうち、パラメータw1が受信された待機時間に書き換えられ、パラメータδ1が受信された実行時間に書き換えられる。
また、パラメータtは、取得部702によって経過時間が取得された都度、記憶内容が更新される。具体的には、例えば、処理数n1の処理群の経過時間を取得すると、パラメータ情報800−1のうち、パラメータt1が取得された経過時間に書き換えられる。
なお、受信部701によって受信された情報が、パラメータテーブル800に登録されていない処理数に関するものであった場合には、新たなパラメータ情報としてパラメータテーブル800に登録される。パラメータテーブル800は、図4に示したRAM403やHD405などの記憶部によりその機能を実現する。
第1の算出部703は、パラメータテーブル800の記憶内容を用いて、ワーカWiとの通信にかかる通信時間を算出する。マスタ/ワーカ間の通信時間とは、例えば、マスタMからワーカWへの処理群の受け渡し、およびワーカWからマスタMへの実行結果の受け渡しにかかる時間である。
ここで、マスタ/ワーカ間の通信時間は、例えば、下記式(1)に示す1次式によって表現することができる。ただし、通信時間をK、ジョブ群を構成するジョブ数をnとし、マスタ/ワーカ間の通信時間に関するパラメータをk,cとする。
K=k×n+c …(1)
これらパラメータk,cは、例えば、パラメータテーブル800に記憶されているパラメータ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)
つぎに、パラメータテーブル800から、nx≠nyである2つのパラメータ情報800−1〜800−pを読み出す。そして、読み出したパラメータ情報800−1〜800−pに含まれるパラメータnx,ny,tx,ty,wx,wy,δx,δyを上記式(3)および(4)に代入して、パラメータk,cを求める。
x≠nyである2つのパラメータ情報800−1〜800−pを読み出す場合、例えば、現在時刻から遡って最も直近の時刻に記憶された2つのパラメータ情報800−1〜800−pを読み出すこととしてもよい。これにより、最近のワーカWの使用状況が反映されたパラメータk,cを求めることができる。
なお、上記式(3)および(4)を用いて求めたパラメータk,cが「0以下」となった場合には、予め設定された初期値をパラメータk,cとして用いることとしてもよい。パラメータk,cの初期値は、任意に設定することとしてもよく、また、過去に求めたパラメータk,cの平均値を設定することとしてもよい。
また、パラメータk,cを求めるために必要となるパラメータ情報800−1〜800−pがパラメータテーブル800に記憶されていない場合には(例えば、初回の分散処理時)、予め設定されている初期値を用いることとしてもよい。
具体的には、上記パラメータnx,ny,tx,ty,wx,wy,δx,δyに相当する初期値を上記式(3)および(4)に代入することで、パラメータk,cを求める。なお、パラメータn,t,w,δ,k,cに関する初期値は、図4に示したRAM403やHD405などの記憶部に予め記憶されている。
また、第1の算出部703は、パラメータテーブル800の記憶内容を用いて、ワーカWの処理性能を算出する。具体的には、例えば、パラメータテーブル800に記憶されているパラメータδ,nを用いて、処理単位の実行時間を表わすパラメータτを算出する。より具体的には、例えば、パラメータτは、下記式(5)を用いて求めることができる。
Figure 0004962327
これは、パラメータテーブル800に記憶されているパラメータδ1〜δpおよびパラメータn1〜npを用いて、処理単位の実行時間の平均値を求めることを意味している。なお、図6に示したスループット値は、パラメータτの逆数(1/τ)によって表現することができる。このスループット値は、パラメータτの値が算出された都度、その逆数(1/τ)を求めることで更新される。
まず、第2の算出部704は、上記式(3)および(4)から求めたパラメータk,cと、上記式(5)から求めたパラメータτとを下記式(6)に代入することにより、割当先に割り当てる処理の仮処理数n’を算出する。ただし、sは、処理数nの処理群の実行時間が通信時間Kのs倍であることを示す数値(例えば、s=1)である。
Figure 0004962327
つぎに、第2の算出部704は、上記式(6)から求めた仮処理数n’を下記式(7)に代入することにより、割当先に割り当てる処理の処理数nを算出する。これは、上記式(6)を用いて求めた仮処理数n’に、数%のゆらぎを持たせたものを実際にワーカWに割り当てる処理の処理数nとすることを意味している。
Figure 0004962327
なお、「n’≦0」となった場合の処理数n(ここでは、n=1)は、例えば、図4に示したキーボード410やマウス411などをユーザが操作することで、任意に設定可能である。同様に、パラメータsの値も任意に設定可能である。具体的には、キューにある処理数が多い場合には、パラメータsの値を大きくし(例えばs=3)、キューにある処理数が少なくなるにつれて、パラメータsの値を小さくする(例えばs=1)こととしてもよい。
さらに、割当先のワーカWから割り当てる処理の処理数を増やすリクエストを受信した場合に、パラメータsの値を増加(例えば、1増やす)させることとしてもよい。また、パラメータwの値が正、かつ割当先のワーカWの処理群の実行が完了したときに、つぎに実行すべき処理群が割当済みのときに、実行時間の通信時間に対する割合がパラメータsに比べて小さかった場合、パラメータsの値を減少(例えば、1減らす)させることとしてもよい。なお、増減の繰り返しを回避するため、パラメータsの値を減らすのは、例えば、一定周期(例えば、3つの処理群の分散処理終了時)ごとにおこなうこととしてもよい。
決定部707は、管理下にあるワーカW群の中から一連の処理群の割当先を決定する機能を有する。つまり、システム100内のワーカW群の中から、適切なワーカWを割当先に決定し、その割当先に一連の処理群を分散処理させる。
具体的には、例えば、決定部707は、各ワーカWの使用状態に基づいて、ワーカW群の中から割当先を決定することとしてもよい。より具体的には、例えば、ワーカ管理テーブル500を参照して、使用状態が「空き」のワーカW群の中から割当先を決定する。
このように、ワーカW群のうち、マスタMから割り当てられた処理群を実行中、または、機能を停止中のワーカWを排除することで、割当先候補を絞り込むことができる。さらに、使用状態が「空き」のワーカWが存在しない場合に、「使用中」のワーカ群のうち、状態2(処理群が1つ割当済み)のワーカWを割当先に決定することとしてもよい。
また、決定部707は、各ワーカWの処理性能に基づいて、ワーカW群の中から割当先を決定することとしてもよい。より具体的には、例えば、スループットテーブル600を参照して、スループット値が最大のワーカWを割当先に決定する。これにより、処理群を高速に実行可能なワーカWを割当先に決定することができる。
また、上記受信部701、取得部702、第1の算出部703、第2の算出部704、生成部705および送信部706は、ワーカWに割当済みの2つの処理群のうち、先に送信された処理群の実行が完了した場合に、受信処理、取得処理、第1の算出処理、第2の算出処理、生成処理および送信処理を再度実行することとしてもよい。
より具体的には、例えば、前々回に送信された処理群の実行時間と、当該前々回に送信された処理群を受信してから実行を開始するまでの待機時間とに関する情報がワーカWから送信された場合に、受信部701、取得部702、第1の算出部703、第2の算出部704、生成部705および送信部706による各種処理を再度実行することとなる。
この結果、ワーカWは、マスタM内のキューにある処理がなくなるまで、図2に示した状態2と状態3との間の状態遷移を繰り返すこととなる。これにより、ワーカWにおける処理群の実行時間によって、マスタ/ワーカ間の通信時間を隠蔽し、一連の処理群の分散処理にかかる所要時間の短縮化を図ることができる。
つぎに、ワーカWの機能的構成について説明する。図9は、ワーカWの機能的構成を示すブロック図である。図9において、ワーカWは、受信部901と、実行部902と、送信部903と、計測部904と、から構成されている。
これら各機能901〜904は、ワーカWの記憶部に記憶された当該機能901〜904に関するプログラムをCPU301に実行させることにより、または、入出力I/Fにより、当該機能を実現することができる。また、各機能901〜904からの出力データは上記記憶部に保持される。また、図9中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをCPUに実行させるものとする。
まず、受信部901は、処理群をマスタMから受信する機能を有する。また、実行部902は、マスタMから割り当てられた処理群を実行する機能を有する。処理群は、ワーカWのCPUによって実行され、その実行結果はワーカW内の記憶部に保持される。
送信部903は、実行部902によって処理群を構成するすべての処理の実行が完了した結果、処理群の実行結果をマスタMに送信する機能を有する。具体的には、例えば、不図示の検出部により、実行部902によって処理群を構成するすべての処理の実行が完了したことを検出する。
そして、送信部903は、不図示の検出部によってすべての処理の実行が完了したことが検出された場合、処理群の実行結果をマスタMに送信する。このとき、処理群から特定されるIPアドレスを宛先に設定することで実行結果をマスタMに送信することができる。
計測部904は、受信部901によって処理群が受信されてから、実行部902によって処理群の実行が開始されるまでの待機時間を計測する機能を有する。具体的には、例えば、処理群が受信された受信日時と、処理群の実行が開始された開始日時とから待機時間を計測することができる。
また、計測部904は、実行部902による処理群の実行時間を計測する機能を有する。具体的には、例えば、処理群の実行が開始された開始日時と、処理群の実行が完了した完了日時とから実行時間を計測することができる。
また、送信部903は、計測部904によって計測された待機時間または/および実行時間に関する情報をマスタMに送信する機能を有する。この情報は、マスタMの第1の算出部703による算出処理に用いられる。
また、送信部903は、実行部902による処理群の実行完了時に、受信部901によるつぎに実行すべき処理群の受信が完了していない場合は、割り当てる処理の処理数を増やすリクエストをマスタMに送信することとしてもよい。
具体的には、例えば、マスタMから割り当てられた前回の処理群の実行時間に比べて、今回の処理群の受け渡しにかかる通信時間が大きい場合に、次回の処理群の処理数を増やすリクエストをマスタMにする。これにより、マスタ/ワーカ間の処理群の受け渡しにかかる通信時間を適切に隠蔽することができる。
(分散処理装置の分散処理手順)
つぎに、分散処理装置の分散処理手順について説明する。ここでは、マスタM内のキューに処理があり、その処理をワーカWに分散処理させる場合の分散処理手順について説明する。まず、マスタMにおける分散処理手順について説明する。図10は、マスタMにおける分散処理手順の一例を示すフローチャートである。
図10のフローチャートにおいて、まず、決定部707により、管理下にあるワーカW群の中から、キューにある処理の割当先のワーカWを決定する割当先決定処理を実行する(ステップS1001)。このあと、ステップS1001において決定された割当先のワーカWに割り当てる処理の処理数を算出する処理数算出処理を実行する(ステップS1002)。
つぎに、生成部705により、ステップS1002において算出された処理数nに基づいて、割当先のワーカWに割り当てる処理群を生成する(ステップS1003)。このとき、処理数nがキューにある全処理数Nよりも大きい場合には、キューにある処理数Nの処理をまとめた処理群を生成することとなる。
このあと、送信部706により、ステップS1003において生成された処理群を割当先のワーカWに送信する(ステップS1004)。つぎに、キューに残余の処理があるか否かを判断し(ステップS1005)、残余の処理がある場合には(ステップS1005:Yes)、割当先のワーカWに2つの処理群を割当済みか否かを判断する(ステップS1006)。
ここで、2つの処理群を割当済みではない場合(ステップS1006:No)、ステップS1003に戻って一連の処理を繰り返す。一方、2つの処理群を割当済みの場合は(ステップS1006:Yes)、前々回に送信された処理群の実行結果を受信したか否かを判断する(ステップS1007)。
ここで、前々回に送信された処理群の実行結果を受信するのを待って(ステップS1007:No)、受信した場合(ステップS1007:Yes)、ステップS1002に戻って一連の処理を繰り返す。また、ステップS1005において、残余の処理がない場合には(ステップS1005:No)、本フローチャートによる一連の処理を終了する。
つぎに、図10に示したステップS1001における割当先決定処理の詳細な処理手順について説明する。図11は、割当先決定処理手順の一例を示すフローチャートである。図11において、まず、ワーカ管理テーブル500に基づいて、未使用(空き)のワーカWがあるか否かを判断する(ステップS1101)。ここで、未使用のワーカWがない場合には、いずれかのワーカWが使用可能となるのを待つ(ステップS1101:No)。
一方、未使用のワーカWがあった場合(ステップS1101:Yes)、スループットテーブル600に基づいて、未使用のワーカWの中から、スループット値Tが最大のワーカWを選択する(ステップS1102)。そして、ステップS1102において選択されたワーカWを割当先に決定し(ステップS1103)、図10に示したステップS1002に移行する。
つぎに、図10に示したステップS1002における処理数算出処理の詳細な処理手順について説明する。図12は、処理数算出処理手順の一例を示すフローチャートである。図11において、受信部701により、先に送信された処理群の実行時間と、当該先に送信された処理群を受信してから実行を開始するまでの待機時間とに関する情報を割当先のワーカWから受信したか否かを判断する(ステップS1201)。
ここで、実行時間と待機時間とに関する情報を受信した場合(ステップS1201:Yes)、取得部702により、先に送信された処理群を割当先に送信してから、先に送信された処理群の実行結果を割当先から受信するまでの経過時間を表わすパラメータt、およびステップS1201において受信された実行時間と待機時間とに関する情報から特定されるパラメータn,δ,wを取得する(ステップS1202)。
このあと、ステップS1201における情報の受信が初回の受信か否かを判断し(ステップS1203)する。ここで、初回の受信ではない場合(ステップS1203:No)、第1の算出部703により、ステップS1202において取得されたパラメータt,n,δ,wと、パラメータテーブルの記憶内容とを用いて、割当先との通信にかかる通信時間に関するパラメータk,cを算出する(ステップS1204)。
このあと、第1の算出部703により、ステップS1202において取得されたパラメータδと、パラメータテーブル800の記憶内容とを用いて、処理単位の実行時間を表わすパラメータτを算出する(ステップS1205)。そして、第2の算出部704により、パラメータk,c,τを用いて、割当先に割り当てる処理の処理数nを算出して(ステップS1206)、図10に示したステップS1003に移行する。
また、ステップS1201において実行時間と待機時間とに関する情報を受信していない場合(ステップS1201:No)、または、ステップS1203において初回の受信の場合(ステップS1203:Yes)、予め設定されている初期値を用いて、割当先との通信にかかる通信時間に関するパラメータk,cを算出する(ステップS1207)。このあと、予め設定されている初期値を用いて、処理単位の実行時間を表わすパラメータτを算出して(ステップS1208)、ステップS1206に移行する。
つぎに、ワーカWにおける分散処理手順について説明する。図13は、ワーカWにおける分散処理手順の一例を示すフローチャートである。図13のフローチャートにおいて、まず、受信部901により、処理群をマスタMから受信したか否かを判断する(ステップS1301)。
ここで、処理群を受信するのを待って(ステップS1301:No)、受信した場合(ステップS1301:Yes)、計測部904により、処理群が受信されてから、処理群の実行が開始されるまでの待機時間の計測を開始する(ステップS1302)。
このあと、実行部902により、マスタMから割り当てられた処理群を実行する(ステップS1303)。このとき、計測部904により、待機時間の計測を終了するとともに、処理群の実行時間の計測を開始する(ステップS1304)。
そして、処理群を構成するすべての処理の実行が完了したことが検出されると(ステップS1305)、計測部904により、処理群の実行時間の計測を終了する(ステップS1306)。最後に、送信部903により、計測部904による計測結果とともに処理群の実行結果をマスタMに送信して(ステップS1307)、本フローチャートによる一連の処理を終了する。
以上説明したように、本実施の形態によれば、実行時間の短い処理をマスタ/ワーカ間の通信時間とワーカWの処理性能とに応じた適切な処理数でまとめた処理群を、ワーカWに割り当てることができる。これにより、マスタ/ワーカ間の通信回数を削減し、通信オーバーヘッドの隠蔽化を図ることができる。
また、ワーカWによる処理群の実行処理と並列に、マスタ/ワーカ間の通信処理を実行することで、マスタ/ワーカ間の通信時間を処理群の実行時間によって隠蔽することができる。これにより、一連の処理群の分散処理にかかる所要時間の短縮化を図ることができる。
より具体的には、例えば、マスタ/ワーカ間の通信時間が、処理群の実行時間以下となる最小の処理数でまとめた処理群をワーカWに割り当てることで、実行結果を得るまでの応答時間の増大化を抑えるとともに、マスタ/ワーカ間の通信オーバーヘッドを適切に削減することができる。
さらに、処理数を最小限に抑えることで、ワーカW数の増加に柔軟に対応することができ、分散処理の効率化を図ることができる。ここで、ワーカW数の増加時における本実施の形態の効果を具体的に説明する。図14は、ワーカW数の増加時における処理群の割り当て状況を示す説明図である。図14中、両向き矢印の長さは、処理群を構成する処理の処理数を表わしている。
図14において、(1)は、ワーカWに割り当てる処理群の処理数が多い場合の一例である。この場合、多くの処理数でまとめたことにより、ワーカW数が2台から4台に増加した際に、ワーカWc,Wdに処理群を割り当てることができない。
(2)は、ワーカWに割り当てる処理群の処理数が少ない場合の一例である。この場合、少ない処理数でまとめたことにより、ワーカW数が2台から4台に増加した際に、各ワーカWa〜Wdに処理群を均等に割り当てることができる。このように、まとめる処理数を最小限に抑えることで、ワーカW数の増加時に、より多くのワーカWを利用でき、効率的な分散処理を実現することができる。
以上のことから、上述した実施の形態のシステム100では、実行時間の短い処理を適切にまとめた処理群をワーカWに割り当てることにより、マスタ/ワーカ間の通信トラフィックの低減化および分散処理の効率化を図ることができる。
また、本実施の形態で説明した分散処理装置は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、例えば、上述した分散処理装置の機能701〜706,901〜904をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、分散処理装置を製造することができる。
なお、本実施の形態で説明した分散処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)通信可能なワーカ計算機に一連の処理群を割り当てるマスタ計算機を、
前記一連の処理群のうち、先に送信された処理群の実行時間と、当該先に送信された処理群を受信してから実行を開始するまでの待機時間とに関する情報を前記ワーカ計算機から受信する受信手段、
前記先に送信された処理群を前記ワーカ計算機に送信してから、前記先に送信された処理群の実行結果を前記ワーカ計算機から受信するまでの経過時間を取得する取得手段、
前記受信手段によって受信された情報と前記取得手段によって取得された経過時間とに基づいて、前記ワーカ計算機との通信にかかる通信時間を算出する第1の算出手段、
前記第1の算出手段によって算出された通信時間に基づいて、前記ワーカ計算機に割り当てる処理の処理数を算出する第2の算出手段、
前記第2の算出手段によって算出された処理数に基づいて、前記ワーカ計算機に割り当てる処理群を生成する生成手段、
前記生成手段によって生成された処理群を前記ワーカ計算機に送信する送信手段、
として機能させることを特徴とする分散処理プログラム。
(付記2)前記第1の算出手段は、
さらに、前記ワーカ計算機のスループット値から処理性能値を算出し、
前記第2の算出手段は、
前記第1の算出手段によって算出された通信時間および処理性能値に基づいて、前記処理数を算出することを特徴とする付記1に記載の分散処理プログラム。
(付記3)前記マスタ計算機に、
前記ワーカ計算機に割り当て済みの2つの処理群のうち、先に送信された処理群の実行が完了した場合、前記受信手段、前記第1の算出手段、前記第2の算出手段、前記生成手段および前記送信手段による処理を再度実行させることを特徴とする付記1または2に記載の分散処理プログラム。
(付記4)前記第2の算出手段は、
前記通信時間が、前記ワーカ計算機における前記処理をまとめた処理群の実行時間以下となる処理数を算出することを特徴とする付記1〜3のいずれか一つに記載の分散処理プログラム。
(付記5)前記マスタ計算機を、
管理下にあるワーカ計算機群の中から前記一連の処理群の割当先を決定する決定手段として機能させ、
前記受信手段は、
前記一連の処理群のうち、先に送信された処理群の実行時間と、当該先に送信された処理群を受信してから実行を開始するまでの待機時間とに関する情報を前記決定手段によって決定された割当先のワーカ計算機から受信することを特徴とする付記1〜4のいずれか一つに記載の分散処理プログラム。
(付記6)前記決定手段は、
前記各ワーカ計算機の使用状態に基づいて、前記ワーカ計算機群の中から前記割当先を決定することを特徴とする付記5に記載の分散処理プログラム。
(付記7)前記決定手段は、
前記各ワーカ計算機の処理性能に基づいて、前記ワーカ計算機群の中から前記割当先を決定することを特徴とする付記5または6に記載の分散処理プログラム。
(付記8)マスタ計算機と通信可能なワーカ計算機を、
前記マスタ計算機から割り当てられた処理群を実行する実行手段、
前記マスタ計算機から前記処理群を受信する受信手段、
前記受信手段によって前記処理群が受信されてから、前記実行手段によって前記処理群の実行が開始されるまでの待機時間を計測する計測手段、
前記計測手段によって計測された待機時間に関する情報を前記マスタ計算機に送信する送信手段、
として機能させることを特徴とする分散処理プログラム。
(付記9)前記計測手段は、
前記実行手段による前記処理群の実行時間を計測し、
前記送信手段は、
前記計測手段によって計測された実行時間に関する情報を前記マスタ計算機に送信することを特徴とする付記8に記載の分散処理プログラム。
(付記10)通信可能なワーカ計算機に一連の処理群を割り当てる分散処理装置であって、
前記一連の処理群のうち、先に送信された処理群の実行時間と、当該先に送信された処理群を受信してから実行を開始するまでの待機時間とに関する情報を前記ワーカ計算機から受信する受信手段と、
前記先に送信された処理群を前記ワーカ計算機に送信してから、前記先に送信された処理群の実行結果を前記ワーカ計算機から受信するまでの経過時間を取得する取得手段と、
前記受信手段によって受信された情報と前記取得手段によって取得された経過時間とに基づいて、前記ワーカ計算機との通信にかかる通信時間を算出する第1の算出手段と、
前記第1の算出手段によって算出された算出結果に基づいて、前記ワーカ計算機に割り当てる処理の処理数を算出する第2の算出手段と、
前記第2の算出手段によって算出された処理数に基づいて、前記ワーカ計算機に割り当てる処理群を生成する生成手段と、
前記生成手段によって生成された処理群を前記ワーカ計算機に送信する送信手段と、
を備えることを特徴とする分散処理装置。
(付記11)マスタ計算機から割り当てられた処理群を実行する実行手段と、
前記マスタ計算機から前記処理群を受信する受信手段と、
前記受信手段によって前記処理群が受信されてから、前記実行手段によって前記処理群の実行が開始されるまでの待機時間を計測する計測手段と、
前記計測手段によって計測された待機時間に関する情報を前記マスタ計算機に送信する送信手段と、
を備えることを特徴とする分散処理装置。
(付記12)通信可能なワーカ計算機に一連の処理群を割り当てる分散処理方法であって、
前記一連の処理群のうち、先に送信された処理群の実行時間と、当該先に送信された処理群を受信してから実行を開始するまでの待機時間とに関する情報を前記ワーカ計算機から受信する受信工程と、
前記先に送信された処理群を前記ワーカ計算機に送信してから、前記先に送信された処理群の実行結果を前記ワーカ計算機から受信するまでの経過時間を取得する取得工程と、
前記受信工程によって受信された情報と前記取得工程によって取得された経過時間とに基づいて、前記ワーカ計算機との通信にかかる通信時間を算出する第1の算出工程と、
前記第1の算出工程によって算出された算出結果に基づいて、前記ワーカ計算機に割り当てる処理の処理数を算出する第2の算出工程と、
前記第2の算出工程によって算出された処理数に基づいて、前記ワーカ計算機に割り当てる処理群を生成する生成工程と、
前記生成工程によって生成された処理群を前記ワーカ計算機に送信する送信工程と、
を含んだことを特徴とする分散処理方法。
(付記13)マスタ計算機から割り当てられた処理群を実行する実行工程と、
前記マスタ計算機から前記処理群を受信する受信工程と、
前記受信工程によって前記処理群が受信されてから、前記実行工程によって前記処理群の実行が開始されるまでの待機時間を計測する計測工程と、
前記計測工程によって計測された待機時間に関する情報を前記マスタ計算機に送信する送信工程と、
を含んだことを特徴とする分散処理方法。
システムのシステム構成図である。 ワーカWの状態遷移を示す説明図である。 分散処理にかかる所要時間を具体的に示すガントチャートである。 分散処理装置のハードウェア構成を示すブロック図である。 ワーカ管理テーブルの記憶内容を示す説明図である。 スループットテーブルの記憶内容を示す説明図である。 マスタMの機能的構成を示すブロック図である。 パラメータテーブルの記憶内容の一例を示す説明図である。 ワーカWの機能的構成を示すブロック図である。 マスタMにおける分散処理手順の一例を示すフローチャートである。 割当先決定処理手順の一例を示すフローチャートである。 処理数算出処理手順の一例を示すフローチャートである。 ワーカWにおける分散処理手順の一例を示すフローチャートである。 ワーカ数の増加時における処理群の割り当て状況を示す説明図である。
符号の説明
100 システム
310,320 グラフ
500 ワーカ管理テーブル
600 スループットテーブル
701 受信部
702 取得部
703 第1の算出部
704 第2の算出部
705 生成部
706 送信部
707 決定部
800 パラメータテーブル
800−1〜800−p パラメータ情報
901 受信部
902 実行部
903 送信部
904 計測部
M マスタ
W,W1〜Wm ワーカ

Claims (5)

  1. 通信可能なワーカ計算機に処理群を割り当てるマスタ計算機を、
    前記ワーカ計算機に先に送信された処理群の実行時間と、当該先に送信された処理群を前記ワーカ計算機が受信してから実行を開始するまでの待機時間を前記ワーカ計算機から受信する受信手段、
    前記先に送信された処理群を前記ワーカ計算機に送信してから、前記先に送信された処理群の実行結果を前記ワーカ計算機から受信するまでの経過時間を取得する取得手段、
    前記受信手段によって受信された前記実行時間および前記待機時間と、前記取得手段によって取得された前記経過時間とに基づいて、前記ワーカ計算機との通信にかかる通信時間を算出する第1の算出手段、
    前記実行時間と前記先に送信された処理群の処理数とに基づいて、前記ワーカ計算機の処理性能値を算出する第2の算出手段、
    前記第1の算出手段によって算出された前記通信時間と、前記第2の算出手段によって算出された前記処理性能値とに基づいて、前記ワーカ計算機に割り当てる処理の処理数を算出する第の算出手段、
    前記第3の算出手段によって算出された前記処理数に基づいて、前記ワーカ計算機に割り当てる処理群を生成する生成手段、
    前記生成手段によって生成された前記処理群を前記ワーカ計算機に送信する送信手段、
    として機能させることを特徴とする分散処理プログラム。
  2. 前記第3の算出手段は、
    前記通信時間と前記処理性能値とに基づいて、前記通信時間が、前記ワーカ計算機における処理群の実行時間以下となる当該処理群の処理数を算出することを特徴とする請求項1に記載の分散処理プログラム。
  3. 前記受信手段は、
    前記ワーカ計算機に第1の処理群および第2の処理群がそれぞれ送信された結果、前記第1の処理群および前記第2の処理群のうちの先に送信された処理群の実行が完了した場合に、前記先に送信された処理群の実行時間と、前記先に送信された処理群を前記ワーカ計算機が受信してから実行を開始するまでの待機時間とを前記ワーカ計算機から受信することを特徴とする請求項1または2に記載の分散処理プログラム。
  4. 通信可能なワーカ計算機に処理群を割り当てる分散処理装置であって、
    前記ワーカ計算機に先に送信された処理群の実行時間と、当該先に送信された処理群を前記ワーカ計算機が受信してから実行を開始するまでの待機時間を前記ワーカ計算機から受信する受信手段と、
    前記先に送信された処理群を前記ワーカ計算機に送信してから、前記先に送信された処理群の実行結果を前記ワーカ計算機から受信するまでの経過時間を取得する取得手段と、
    前記受信手段によって受信された前記実行時間および前記待機時間と、前記取得手段によって取得された前記経過時間とに基づいて、前記ワーカ計算機との通信にかかる通信時間を算出する第1の算出手段と、
    前記実行時間と前記先に送信された処理群の処理数とに基づいて、前記ワーカ計算機の処理性能値を算出する第2の算出手段と、
    前記第1の算出手段によって算出された前記通信時間と、前記第2の算出手段によって算出された前記処理性能値とに基づいて、前記ワーカ計算機に割り当てる処理の処理数を算出する第の算出手段と、
    前記第3の算出手段によって算出された前記処理数に基づいて、前記ワーカ計算機に割り当てる処理群を生成する生成手段と、
    前記生成手段によって生成された前記処理群を前記ワーカ計算機に送信する送信手段と、
    を備えることを特徴とする分散処理装置。
  5. 通信可能なワーカ計算機に処理群を割り当てる分散処理方法であって、
    前記ワーカ計算機に先に送信された処理群の実行時間と、当該先に送信された処理群を前記ワーカ計算機が受信してから実行を開始するまでの待機時間を前記ワーカ計算機から受信する受信工程と、
    前記先に送信された処理群を前記ワーカ計算機に送信してから、前記先に送信された処理群の実行結果を前記ワーカ計算機から受信するまでの経過時間を取得する取得工程と、
    前記受信工程によって受信された前記実行時間および前記待機時間と、前記取得工程によって取得された前記経過時間とに基づいて、前記ワーカ計算機との通信にかかる通信時間を算出する第1の算出工程と、
    前記実行時間と前記先に送信された処理群の処理数とに基づいて、前記ワーカ計算機の処理性能値を算出する第2の算出工程と、
    前記第1の算出工程によって算出された前記通信時間と、前記第2の算出工程によって算出された前記処理性能値とに基づいて、前記ワーカ計算機に割り当てる処理の処理数を算出する第の算出工程と、
    前記第3の算出工程によって算出された前記処理数に基づいて、前記ワーカ計算機に割り当てる処理群を生成する生成工程と、
    前記生成工程によって生成された前記処理群を前記ワーカ計算機に送信する送信工程と、
    を含んだことを特徴とする分散処理方法。
JP2008008356A 2008-01-17 2008-01-17 分散処理プログラム、分散処理装置、および分散処理方法 Expired - Fee Related JP4962327B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008008356A JP4962327B2 (ja) 2008-01-17 2008-01-17 分散処理プログラム、分散処理装置、および分散処理方法
US12/345,342 US8544009B2 (en) 2008-01-17 2008-12-29 Method, apparatus, and product for scheduling of distributed processing based on average execution time and communication time

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2009169757A JP2009169757A (ja) 2009-07-30
JP4962327B2 true JP4962327B2 (ja) 2012-06-27

Family

ID=40877476

Family Applications (1)

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

Country Status (2)

Country Link
US (1) US8544009B2 (ja)
JP (1) JP4962327B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5176558B2 (ja) * 2008-01-17 2013-04-03 富士通株式会社 分散処理プログラム、分散処理装置、および分散処理方法
JP5708003B2 (ja) 2011-02-14 2015-04-30 富士通株式会社 演算処理装置、計算ノード、並列計算機システム、演算処理方法および演算処理プログラム
CN102222285B (zh) * 2011-06-28 2013-06-05 用友软件股份有限公司 多维度数据联动计算装置和多维度数据联动计算方法
WO2014141854A1 (ja) * 2013-03-12 2014-09-18 日本電気株式会社 安定化システム、安定化方法、仮想マシン環境及びプログラム
US9767151B2 (en) * 2013-11-18 2017-09-19 Sap Se Optimizing database queries having hierarchy filters
JP7200738B2 (ja) * 2019-02-21 2023-01-10 日本電信電話株式会社 分散システム、データ振り分け方法、及びプログラム
US20230153124A1 (en) * 2021-09-30 2023-05-18 Intelligent Fusion Technology, Inc. Edge network computing system with deep reinforcement learning based task scheduling

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0268651A (ja) * 1988-09-02 1990-03-08 Fujitsu Ltd くり返し制御構造の並列処理方式
JPH0973432A (ja) * 1995-09-08 1997-03-18 Hitachi Ltd オンライントランザクション高速処理方式
GB2346985B (en) * 1999-02-19 2003-07-09 Ibm Client/server transaction data processing system with optimum selection of last agent
US6618820B1 (en) * 2000-01-10 2003-09-09 Imagex.Com, Inc. Method for configuring an application server system
US6640244B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Request batcher in a transaction services patterns environment
US6557055B1 (en) * 1999-10-06 2003-04-29 Apple Computer, Inc. Adaptive throughput optimization
JP4475614B2 (ja) * 2000-04-28 2010-06-09 大正製薬株式会社 並列処理方法におけるジョブの割り当て方法および並列処理方法
US6963954B1 (en) * 2001-09-19 2005-11-08 Cisco Technology, Inc. Method and apparatus for optimizing prefetching based on memory addresses
US6980945B2 (en) * 2001-12-04 2005-12-27 Koninklijke Philips Electronics N.V. Synchronized simulation of software and hardware in the analog domain
US7000229B2 (en) * 2002-07-24 2006-02-14 Sun Microsystems, Inc. Method and system for live operating environment upgrades
JP2004110318A (ja) * 2002-09-18 2004-04-08 Nec Corp 階層的分散処理システムおよび階層的分散処理方法
US20050114826A1 (en) * 2003-07-11 2005-05-26 Phil Barthram Apparatus and method for self management of information technology component
US7388833B2 (en) * 2004-06-04 2008-06-17 Mitsubishi Electric Research Laboratories, Inc. Access control and protocol for packet switched wireless communications networks
JP4702127B2 (ja) * 2006-03-22 2011-06-15 日本電気株式会社 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
US7711797B1 (en) * 2006-07-31 2010-05-04 Juniper Networks, Inc. Optimizing batch size for prefetching data over wide area networks
US8799918B2 (en) * 2006-09-11 2014-08-05 Microsoft Corporation Dynamic network load balancing using roundtrip heuristic

Also Published As

Publication number Publication date
JP2009169757A (ja) 2009-07-30
US20090187907A1 (en) 2009-07-23
US8544009B2 (en) 2013-09-24

Similar Documents

Publication Publication Date Title
JP4962327B2 (ja) 分散処理プログラム、分散処理装置、および分散処理方法
Bao et al. Performance modeling and workflow scheduling of microservice-based applications in clouds
US9727383B2 (en) Predicting datacenter performance to improve provisioning
US8631401B2 (en) Capacity planning by transaction type
US8402468B2 (en) Capacity planning based on resource utilization as a function of workload
US7809988B1 (en) Test environment having synchronous and asynchronous distributed testing
JP6150453B2 (ja) サーバ装置、システム、およびログ収集支援方法
JP7044893B2 (ja) 業務分析方法
US11055225B2 (en) Cache and I/O management for analytics over disaggregated stores
JPWO2008007669A1 (ja) コンピュータシステムの管理装置、及び管理方法
JP5891680B2 (ja) 電力制御装置、電力制御方法、および電力制御プログラム
JP2015001828A (ja) 割当プログラム、割当装置および割当方法
JP5176558B2 (ja) 分散処理プログラム、分散処理装置、および分散処理方法
JP5112277B2 (ja) 再現処理方法、計算機システムおよびプログラム
JP5845789B2 (ja) 制御プログラム、データアクセス制御装置およびデータ制御方法
JP2011257972A (ja) 画像処理装置、プログラム及び画像処理方法
US20180247273A1 (en) Dynamic schedule creation based on knowledge
JP2002297407A (ja) Jobスケジュール管理装置、jobスケジュール管理方法及びプログラム
JP5678729B2 (ja) 情報処理装置、作業重視度算出方法、および作業重視度算出プログラム
WO2004084095A1 (ja) 情報検索システム
JP2022032819A (ja) Rpa開発運用管理装置、rpa開発運用管理システム、rpa開発運用管理方法、プログラム、及び、記録媒体
KR101221624B1 (ko) 클라우드 컴퓨팅 기반의 스프레드 시트 처리 시스템 및 방법
JP7403400B2 (ja) 情報処理システム及び情報処理方法
JP6524733B2 (ja) 並列演算装置、並列演算システム、およびジョブ制御プログラム
JP2021047561A (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: 20111118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120206

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

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees