JP2008027442A - サブタスク・プロセッサの分散スケジューリング - Google Patents

サブタスク・プロセッサの分散スケジューリング Download PDF

Info

Publication number
JP2008027442A
JP2008027442A JP2007184406A JP2007184406A JP2008027442A JP 2008027442 A JP2008027442 A JP 2008027442A JP 2007184406 A JP2007184406 A JP 2007184406A JP 2007184406 A JP2007184406 A JP 2007184406A JP 2008027442 A JP2008027442 A JP 2008027442A
Authority
JP
Japan
Prior art keywords
node
subtask
task
nodes
local node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007184406A
Other languages
English (en)
Other versions
JP4421637B2 (ja
Inventor
John P Bates
ピー.ベイツ ジョン
Payton R White
アール.ホワイト ペイトン
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of JP2008027442A publication Critical patent/JP2008027442A/ja
Application granted granted Critical
Publication of JP4421637B2 publication Critical patent/JP4421637B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/5044Allocation 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 hardware capabilities
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】複数のプロセッサに計算タスクを分散させる分散コンピューティング方法の提供。
【解決手段】ローカル・ノードにタスクを生成するステップと処理タスクを1以上のサブタスクに分割するステップと、ローカル・ノードからアクセス可能なノード群においてサブタスク群を実行させるのに関連するパラメータの少なくとも一部に基づいて、前記1以上のサブタスクを実行するための最適ノード数xを判定するステップと、xに基づいて、ローカル・ノードで前記タスクを実行するか、ローカル・ノードからアクセス可能な1以上の分散ノードに前記タスクを分散させるかを判定するステップと、を備える。
【選択図】図2

Description

本実施例は、分散コンピューティングに関連し、より詳細には、複数のプロセッサに計算タスクを分散させるための技術に関する。
複数処理を同時実行可能なシステムの開発により、電子計算技術は大きく進歩した。このようなシステムによる処理は、並列処理とよばれる。計算タスクの多くは、相互に依存する「サブタスク群」と考えることができる。ローカル・プロセッサやリモート・プロセッサの間にタスクを分散させて並列処理できるように、こういったサブタスクを実装してもよい。
Lisa Cingiser et al.,、「Global Scheduling and Binding in a Real-Time Embedded Distributed System」、 Proceedings of the Real-Time & Embedded DOC 、2002.7、[online]、インターネット<URL:http://rtdoc.cs.uri.edu/downloads/dre_workshop02.pdf>
本発明の実施例は、このような文脈の中において示されるものである。
本発明の教示するところは、添付図面とあわせて以下の詳細な説明を考慮することにより容易に理解されるでろう。
以下の記述においては、例示のために多くの特定的な詳細を含むけれども、本発明の範囲内において、以下の詳細について多くの変形や変更が可能であることは、当業者には理解されるところである。したがって、下記に示す本発明の実施例は、請求項に記載の発明の一般性を失わせるものでも制約を設けるものでもない。
本発明の実施例は、図1と図2を参照することによって理解されるところである。図1は、本発明の実施例の実装例としてのシステム100である。図2は、例として、図1のシステム100により実装される処理過程200のフローチャートである。システム100は、通常、ローカル・プロセッサ・ノード102を含み、このノードは、以下において「分散ノード(distributed node)」とよばれる1以上の他プロセッサと接続可能である。プロセッサ・ノード102は、通常、1以上の個別のプロセッサ・ユニット104を含み、メモリ106を含んでもよい。制約的な意味ではない例として、プロセッサ・ユニット104は、1以上のCELLプロセッサ・ユニットを含んでもよい。各CELLプロセッサ・ユニットは、PU(Power Processing Unit)と1以上のSPU(Synergistic Processor Unit(s))を含んでもよい。各SPUは、対応ローカルメモリを有する。各プロセッサ・ユニット104を「ノード」と捉えてもよい。同様にして、プロセッサ・ユニット104内の各プロセッサ要素、たとえば、PUやSPUをノードとみなしてもよい。PUとSPUは、バス108を介して互いに接続される。
プロセッサ・ユニット104は、ローカルな分散ノード、たとえば、ローカル・ノード102内の他のプロセッサ・ユニット104と、I/O(Input/Output)要素110や「ブレード(blade)」とも呼ばれるデータバス112等を介してデータや命令を送受する。プロセッサユニット104は、PCI(Peripheral Component Interconnect)データバス、あるいは、PCIE(PCI Express)データバスといったローカル・データバス114やI/O要素110を介して、他のローカルな分散プロセッサ・ノード103と通信してもよい。ローカル・プロセッサ・ノード103は、複数のプロセッサ・ユニット105、I/O要素107および内部データバス109を含む。ローカル・プロセッサ・ノード102のプロセッサ・ユニット104は、リモートの分散プロセッサ・ノード116と、1以上のネットワーク120やI/O要素110などと接続されるネットワーク・インタフェース118を介して通信してもよい。リモートの各分散プロセッサ・ノード116も複数のプロセッサ117を含むが、これは上記した通りに構成されてもよい。
ネットワーク120には、1以上のローカル・エリア・ネットワークや1以上のワイド・エリア・ネットワークが含まれてもよい。ここでいうローカル・エリア・ネットワーク(LAN:Local Area Network)とは、たとえば、単一ビルやビル群といった比較的狭い範囲のコンピュータ・ネットワークを意味する。LANにおける各ノード(個々のデバイス)は、通常、プログラムを実行するための1以上のプロセッサを有する。LAN内であれば、各ノードはどこのデータやデバイスにもアクセスできるとしてもよい。LANは、電話線や電波などを介して、どんなに遠くにある他のLANとも接続できる。こうして接続されるLANシステムは、ワイド・エリア・ネットワーク(WAN:Wide-Area Network)とよばれる。インターネットもWANの一種である。ネットワークの実装においては、クライアント/サーバ(Client/Server)・アーキテクチャやピア・ツー・ピア(P2P:Peer-to-Peer)・アーキテクチャなど、適切なアーキテクチャを採用すればよい。P2P・アーキテクチャでは、各ノードは能力と責任において立場が等しい。これは、いずれかのノードが他のノードにサービスを提供するクライアント/サーバ・アーキテクチャとは異なる。
各プロセッサ・ユニット104は、符号命令群122の実行によって動作する。符号命令群122は、タスクのセットに分割されてもよい。ローカル・プロセッサ・ノード102(あるいは、ローカル・プロセッサ・ノード102内のプロセッサ・ユニット104)によって実行される処理タスクの多くは、更に、相互に依存するサブタスクに分割されてもよい。サブタスクは並列実行されてもよい。符号命令群122には、ローカル・プロセッサ・ノード102がアクセス可能な複数のプロセッサにサブタスクを分散させる分散スケジューラが含まれる。分散スケジューラは、ハードウェア、ソフトウェア、ファームウェア、あるいはこれら2以上の組み合わせにより実装されればよい。分散スケジューラの鍵となる処理は、利用可能な計算リソースにサブタスクを分散すべきか、また、どのように分散させるかを決定することである。
ノード数xは、利用可能なリソースと要求の性質の両方を示すリソース量ベクトルに基づいて決定されてもよい。このベクトルは、たとえば、プロセッサのサイクル(周期)、メモリの大きさ、(ハードディスクなどの)ストレージの大きさ、タスクを処理する上で必要とされるネットワーク帯域幅といったパラメータを含んでもよい。分散ノード群の利用可能性は、ミドルウェアによって推定される。即時利用性、平均的な利用性、予測される利用性等を考慮してもよい。アプリケーションは、タスクが必要とするリソースをラフに見積もってもよい。
図2は、処理タスクを他に分散させる処理過程200のフローチャートである。ブロック202において、リソース量ベクトルに関わるパラメータが収集される。たとえば、符号122は、アプリケーションのバックグラウンドで走り、処理タスクの分散要否や分散方法の決定に関わるパラメータについての情報を収集するリソース上書きルーチンを含んでもよい。このようなパラメータは、所与のノードにおけるタスクの実行時間に限らず、サブタスク間で分割されるデータのサイズ、各サブタスクに必要なコードやデータのサイズ、タスクが生成する出力データのサイズ、1以上のノードについての出入力の帯域幅、分散ノードへのラウンド・トリップ・メッセージ(round-trip message)時間(往復遅延時間)、プロセッサの利用可能性やプロセッサの使用方法(usage)等を含んでもよい。
ブロック204において、パラメータは、パラメータテーブル205に保存されてもよい。パラメータテーブル205は、ローカル・ノード102によってアクセス可能なメモリに保持されてもよい。たとえば、パラメータテーブル205は、ローカル・ノード102のメインメモリ106に保持されるデータベースDB(Database)の一部であってもよい。新しいタスクを待っているときにも条件変更が発生するので、パラメータテーブル205は時々更新されてもよい。ブロック206にてローカル・プロセッサ・ノード102がタスクを新規生成するときに、タスク処理の分散要否が判定される。つまり、ブロック208に示すようにタスクを1以上のサブタスクに分割してもよい。その後、ブロック210に示すように、1以上のサブタスクを実行するのに最適なノード数xが決定されてもよい。ノード数xは、少なくとも、ローカル・ノードがアクセス可能なノードにおけるサブタスク実行に関するパラメータの少なくとも一部、たとえば、パラメータテーブル205に保持されるパラメータに基づく。多くのタスクが、入力データやコード等を同じくする同種のサブタスクを複数含む可能性があることは重要である。また、時間経過と共に、リソースやパラメータが変化する可能性があることも重要である。このため、パラメータを再収集するためにブロック202に戻ることは意味がある。これにより、ブロック210において次の同種サブタスクにとっての最適ノード数xを決定する前に、リソースやパラメータが変化していないかチェックできる。
ブロック212においては、x値に基づいて、タスクをローカル・ノード104において実行するか、ローカル・ノードからアクセス可能な1以上の分散ノードにタスクを分散させるかを判定してもよい。分散させる意味がないとき、たとえば、x=1で、ローカルな処理の方が高速であり、ローカル処理用のリソースを利用できるときには、ブロック214に示すようにタスクはローカルに処理される。
ブロック212において、たとえば、x>1となり、他の基準も満たされ、分散させる意味があると判定されたときには、タスク(あるいは、サブタスク)は、1以上の分散ノードで実行されるように配置されてもよい。分散の本質は、x値と利用可能なノード数に依存する。たとえば、x個のノードが利用可能であれば、ブロック216に示すように、タスク(あるいは、サブタスク)はx個の分散ノードに送出されて処理される。x個未満のノードしか利用可能でないときには、ブロック218に示すように、タスクは利用可能なノードにあわせて分けられてもよい。たとえば、特定のタスクを処理するにはx=20個のノードが最適であると判定されたが、10個のノードしか利用可能ではないとする。この場合、タスクは2分割されてもよい。仕事(work)の半分は10個の利用可能なノードに割り当てられ、残りは他のノードが利用可能となったときにそれらに割り当てられてもよい。
多くの場合、タスクの分散可否や分散方法の決定は、分散ノードへのデータ転送に利用可能な帯域幅に依存する。利用可能な帯域幅は、データ転送経路の性質に依存するかもしれない。たとえば、ローカルノード104に接続されるデータバス108、112、114やネットワーク120は、お互いに帯域幅が異なるかもしれない。ここでいう「帯域幅」とは、通常、所定時間における情報の伝送率を意味する。デジタルデータの帯域幅は、通常、1秒当たりのビット数やバイト数によって表現される。たとえば、CELLプロセッサでは、SPU間におけるデータ転送の帯域幅は、1秒あたり約100ギガバイト(GByte/s)となるかもしれない。SPUからメモリ106へのデータ転送の帯域幅は、約20GByte/sとなるかもしれない。「ブレード」を介したCELL間のデータ転送は、約30GByte/sの帯域幅を持つかもしれない。PCIEなどのローカル・バス112は、20GByte/sの帯域幅を有するかもしれない。LANの帯域幅は、おおよそ10(MByte/s)から10(GByte/s)の範囲となるかもしれない。インターネットのようなWANの帯域幅は、おおよそ128(KByte/s)から10(MByte/s)の範囲となるかもしれない。
ブロック212におけるタスク分散可否、ブロック216におけるタスク分散方法の判定は、タスクのタイプにも依存するかもしれない。本実施例における分散コンピューティングにより、多くの異なるタイプのデータ処理タスクやサブタスクが実装されてもよい。各サブタスクは、サブタスクタイプによって特徴づけられるかもしれない。サブタスクタイプは、あるタイプのサブタスクと別のタイプのサブタスクを識別し、最適ノード数xや、利用可能ノード群におけるタスクやサブタスクの分配方法を決定するための情報を提供するものである。このようなタスクやサブタスクのタイプは、複合開始終了タスク(Complex start-to-finish tasks)に限らず、N分割可能タスク(Divisible-by-N tasks)、内部通信永続タスク(Intercommunicative persistent tasks)、ステートレス永続タスクやサービス(Stateless persistent tasks or services)などを含む。
複合開始終了タスクでは、タスクの依存関係や必要なデータ/コードが静的タスクファイルに記述される。最適なプロセッサ数は、静的に、タスクファイルにより決定されてもよい。一つの決定方法は、静的に、最適な分散タスクを決定することである。別の決定方法は、スレッドプールとして割り当てられているプロセッサを使ってタスクを動的に実行させることである。プロセッサはタスクを終了させると、タスクマスタ(task master)に通知して、次のタスクを待機する。バイトサイズや目的ノードの帯域幅が既知であれば、コードやデータリソースをプリフェッチ(先取得)しておいてもよい。各サブタスクの実行時間の推定がされていない場合には、タスク開始時に全サブタスクについてプリフェッチしておいてもよい。
N分割可能タスクは、利用可能なリソースの数だけ分割できるタスクである。タスクの「1ノード実行時間(one-node-execution-time)」が既知であるならば、タスク実行のために使用すべき最適ノード数Nを求めるための方程式が導かれる。方程式においては、帯域幅や分配方法(線形型/サーバと対数型/P2P)といった要素を加味してもよい。N分割可能タスクは、多くの異なるタスクタイプに分かれるかもしれない。あるタスクタイプでは、同一データが全ノードに送信される。こういったタスクタイプの一例として、レイ・トレーシング・タスクを挙げることができる。別のタスクタイプでは、データの一部が各ノードに送信される。こういったタスクタイプの一例として、SETI(Search for Extra-Terrestrial Intelligence)プロジェクトを挙げることができる。N分割可能タスクの場合、配置された各タスクは、[0,N)の範囲の一意のインデックスとNにより初期化される。Nは、実際に配置済となるプロセッサの数である。各タスクに必要なデータは、適切な方式にて分配される。複雑な階層タスク群において並列するサブタスク群は、このカテゴリに適合するかもしれない。
内部通信永続タスク(相互永続タスク(persistent interactive tasks)ともよばれる)においては、タスクと同じ数のプロセッサが割り当てられる。タスクは、自由に実行や通信を開始できる。この環境においては、複雑な階層タスク群は、全サブタスクをあらかじめ割り当てた上で、メッセージを送出することにより実行ステージを進めてもよい。さまざまなノードやプロセッサに並列タスクが割り当てられる限り、(より良いということはないかもしれないが)同じパフォーマンスを実現できる。とりわけ、サーバやゲームオブジェクトは、内部通信永続タスクの数少ない例である。
ステートレス永続タスクやサービスは、入出力を有するが状態(state)を有さないグローバル関数である。これらのタスクは汎用的であるため、ロードバランスのために複数のノードに余分に複製されてもよい。ステートレス永続タスクは、利用可能なノードであればどこで実行されてもよい。このタスクタイプには、なんらかの分散スケジューリングが内包される。たとえば、何個のノードxにタスクを分散させるかを決定するブロック210や、タスクの分散方法を決定するブロック216、218において、過負荷時にタスクをどのように複製するか知っておくことは有用かもしれない。更に、タスク分配方法をブロック216や218で決定するためには、使用率や位置(locality)といった要素も有用かもしれない。
上記に一覧した処理タスクを含む処理タスク群は、更に、2つのカテゴリのいずれかに分類されてもよい。一つは、ワンタイムタスクでありもう一つは永続タスクである。ワンタイムタスクは、ある程度の時間、プロセッサの全てまたはほぼ全てのリソースを使用する。この時間は、アプリケーションによって推定されてもよい。対照的に、永続タスクは、不確定時間、平均的には、プロセッサの全リソースよりも少ないリソースを使用する。永続タスクは、メッセージ・トラフィックなどのために、一時的にプロセッサをバースト的に使用する可能性がある。
サブタスクを適切に分散させる上で、インターネットのようなWANにおける未使用プロセッサ・リソースを使用してもよい。こういった利用可能のリソースの使用は、たとえば、コンピュータゲーム分野において、ゲームの体感を高め、共有空間のオブジェクトを提供し、メディアストリームを符号化し、あるいは、伝統的なクライアント・サーバ・モデルにおいてゲームを提供するために、実装されてもよい。このようなユース・ケースに耐えられるフレームワークの設計は、簡単な仕事ではない。たとえば、こういったフレームワークは、拡張可能で、分散化され、安全で、不正に強く、充分に経済的であることが望ましい。残念なことに、分散コンピューティングフレームワークを確立する上ではいくつかの一般的課題がある。こういったフレームワークは、集権化された核(core)を利用したり、SETIのように「無限のワークパイル(infinite workpile:仕事の無限の積み重ね)」を想定して設計されることが多い。
実行時間の見積り(や他のリソースの使用見積り)は、ブロック210においてプロセッサ・ノード数xを決定したり、ブロック216において特定のタスクをローカルに配置するか、LANに割り当てるかか、あるいは、WANに割り当てるかを決定するために必要となるかもしれない。正確かつ自動的な見積りは(不可能ではないかもしれないが)実現が難しい。実行時の平均値や静的なコード分析は、通常、定数時間アルゴリズム(constant-time algorithms)(O(c))の実行時間の決定でしか有効でないかもしれない。更に、並列実行に向いている計算集約的なタスクは、定数時間アルゴリズムから構成されることは多くはなく、むしろ不定長アルゴリズム(variable-length algorithms)から構成されることが多い。このような不定長アルゴリズムの実行時間は、実行時にならなければ利用できない入力パラメータに依存する。所与の関数の実行時間は、入力パラメータに基づいて必要なリソースを算出する第2関数によって予測されてもよい。しかし、このような第2関数は大きなオーバーヘッドとなるかもしれない。なぜならば、実行時において、関数に新しいパラメータがセットされごとに何度も第2関数が実行されなければならなくなるからである。分散処理の効率性は、おおよそ、プロセッサ使用見積りの正確さに依存する。
本実施例において、ブロック212から216において複数のタスクやサブタスクをいつどのように分散するかを決定するとき、利用可能なプロセッサの能力を計測するための他の手段を検討することも望ましいかもしれない。ワンタイムタスクにとって、均質な計算環境(homogeneous computing environment)において利用可能なプロセッサの能力を判定する上で、実行時間は有用な基準となるかもしれない。均質な環境においては、サイクル数はより有用である。永続タスクにとって、時間経過にともなうCPUの使用率(あるいは、異種環境(heterogeneous environment)における1秒あたりのサイクル数)を知ることはもっと有用であるかもしれない。このため、プロセッサの使用量は、タスクタイプにあわせて解釈されなければならない。
ブロック212では、処理タスクの分散要否に関する重要な閾値の問題がある。多くのタスクは、相互に依存する2以上のサブタスクの集合として捉えられるかもしれない。サブタスクは、しばしば並列実行される。特定のタスクを処理するために複数の選択肢が利用可能であるならば、サブタスクを(1)単一のローカル・ノード・プロセッサで実行するか、(2)複数のローカル・ノード・プロセッサに分散させるか、(3)LANに分散させるか、(4)WANに分散させるか、(5)その他の方法で分散させるか、を決定する分散スケジューラが有効である。分散の規模は、ローカル・ノードからLAN、さらに、WANまで変化する。特定のタスクがこの規模のどのあたりに位置するか判断するためには、多くの要素が考慮されてもよい。
ブロック212において分散可否を決定する上で考慮される要素の一つは、並列のサブタスクそれぞれの実行時間である。並列サブタスクの実行時間は、所与のタイプの単一プロセッサにおいて、サブタスクを実行するのに要する時間を示す。通常、実行時間は、サブタスクの性質やサブタスクを実行するプロセッサのタイプに依存する。並列サブタスクの実行時間が長時間に及ぶならば、そのようなサブタスクはWANにまで分散させる方がよい。反対に、実行時間が短いサブタスクの場合には、ローカル・ノードにて利用可能なプロセッサ群に分散させる方がよい。
考慮すべき別の要素は、実行されるサブタスクの数である。サブタスク数が多いときにはWANに分散させる方がよい。サブタスク数が少ないときだけ(実行時間が短いときには特に)、ローカル・ノードにて利用可能なプロセッサ群に分散させる方がよい。
考慮すべき更に別の要素は、並列サブタスク間における同期処理(synchronous interaction)の量(数)である。ここでいう同期処理とは、通常、サブタスク間のブロッキング通信である。たとえば、第1のタスクは、第2のタスクにメッセージを送出すると、計算を続行することなく第2のタスクから応答を待つかもしれない。もし、並列サブタスク間における同期処理の量が大きければ、ローカル・ノードにて利用可能なプロセッサ群に並列サブタスクを分散させる方がよいかもしれない。もし、並列サブタスク間における同期処理の量が比較的小さければ(あるいは、まったくなければ)、並列サブタスクをWANにまで分散させる方がよいかもしれない。同期処理についての所与の量が「大きい」か「比較的小さい」かは、多くの要素から判定されてもよい。たとえば、計算に費やす時間よりも他のサブタスクからの同期応答を待つ時間の方が長ければ、同期処理の量は大きく、サブタスク間の伝送遅延を減少させることで処理効率を向上させることができるかもしれない。伝送遅延は、たとえば、WANの代わりにLANにサブタスクを分散したり、LANの代わりにローカル・ノードにサブタスクを分散させることによって減少できるかもしれない。
更に考慮すべき要素は、各サブタスクが必要とするデータ量である。たとえば、サブタスクが使用する入力データやバイナリコードのサイズである。各サブタスクが大量のデータを必要とする場合には、並列サブタスクをローカル・ノードのプロセッサ群に分散させる方がよいかもしれない。各サブタスクが比較的少量のデータしか必要としない場合には、サブタスクをWANまで分散させる方がよいかもしれない。
ブロック210におけるノード数nの決定や、ブロック216、218におけるタスクやサブタスクの分配にとって、分散コンピューティングにより処理効率を確実に高めるためには、タスクの実行時間や要求されるデータを概算しておくことが望ましい。このような概算がなければ、(ローカルにタスクを実行するのに比べて)分散コンピューティングのタスク処理効率を悪化させる可能性がある。
本実施例においては、多くのタイプの並列計算タスクについて、ブロック210にて所与のタスクを実行するのに最適なノード数xを決定するための方程式が導かれる。このような方程式の導出には、プロセッサノード数(x)に基づく実効実行時間(EET:Effective Execution Time)の判定も含まれる。方程式では、以下の追加変数も考慮に入れてもよい。
ET:1つのノードにおける全タスクの実行時間を示す。
TS:サブタスク群で分割されるべきデータの総サイズを示す。
CS:各サブタスクが必要とする定数サイズのデータ(たとえば、コードのサイズ)を示す。
RS:タスク群が生成する出力データの総サイズを示す。
BWo,BWi:それぞれ、全プロセッサ・ノードについての出力および入力の帯域幅を示す。
RTT:プロセッサ・ノードに対するラウンドトリップメッセージ時間(往復遅延時間)を示す。
これらの値は、ブロック202のパラメータ収集時に取得され、パラメータテーブル205に保持されてもよい。
本実施例において、プロセッサノード数xに基づく実効実行時間EETは、次式によって近似される。
方程式1の右辺第1項は、全プロセッサ・ノードが処理を開始する上で必要なデータを受信するのに要する時間を示す。第2項は、単一のサブタスクを実行するのに必要な時間を示す。第3項は、サブタスクの結果をソース(要求元)へ返信するのに要する時間を示す。
一例として、方程式1の第1項の式f(x,TS,CS)は、全プロセッサ・ノードの実行開始前にシリアル伝送されるデータの量を計算する分散メトリック(分散の基準)であってもよい。データは、ソース・ノードが全プロセッサ・ノードにデータを送信する線形分散(f)か、ソース・ノードが2分木分散ツリー(binary distribution tree)のルートとなる対数分散(f)のいずれかにより分散されてもよい。線形分散の場合、式f(x,TS,CS)は、以下の形式となってもよい。
一方、対数分散の場合、式f(x,TS,CS)は、以下の形式となってもよい。
本実施例における式f(x,TS,CS)は、方程式2の線形形式のfと方程式3の対数形式のfとの合成関数fの形式であることが好ましいかもしれない。通常、データTS(このデータは全プロセッサ・ノード群の間で分割される)は、線形に送信する方が効率的である。更に、通常、データCSは対数的に送信する方が効率的である。式fは、各段階にてCSデータ全体を送信する。各段階にて、(CSデータ全体を送信するよりも、)CSデータの無限小部分を(より多くの送信段階にわけて)送信すれば、タスクの実行タイミングが改善されるかもしれない。すると、データ全体を分散させるのに要する時間は、主としてRTTにより制限されることになる。ハイブリッド型の分散関数fは以下の形式となってもよい。
TS<CSのときには、ソース・ノードにCSデータを対数分散させ、完了すると、TSデータを分割して全ての同等ノード(peer)に送出するのが特に効率的である。TS>CSのときには、データCSおよびTSを並列して分散させる方が効率的である。上記方程式4の右辺下式のMAX関数は、CSの対数送信とTSの線形送信を並行して実行する旨を示している。MAX関数は、CS+TSと2CS+BWo・RTT・log(x+1)の最大値を返す。CSとTSの両方のデータがプロセッサ・ノードに受信されなければ実行開始できない。したがってMAX関数を使っている。
たとえば、分散型のレイ・トレーシング・タスクを考える。この場合、全ノードは同じシーン・データを必要とする。CSは大きく、TSは事実上ゼロであるため、EETの方程式は以下の通りとなる。
タスクを実行する最適ノード数を求める方程式を見つけるために、EETが最も小さくなるときのノード数Xを計算してもよい。このX値を決定するために、EETを求める方程式5をxで微分し、EET’=0となるときのx値を求める。
これにより、以下が導かれる。
現実のタスクにとって、タスク細分化には最大可能数があるかもしれない。ただし、算出された最適実行ノード数が分割可能な最大の数よりも大きいときには、スケジューラは単にその最大の数だけ割り当てればよい。このような結果に基づくと、小さく、長さやサイズが等しいタスクは、分散コンピューティングにもっともふさわしいことになる。スケジューラは、総実行時間と総データサイズに基づいて最適ノード数を決定し、選択したプロセッサ・ノード群に均等に小タスクを分散できるからである。
ブロック210の最適ノード数xの決定、ブロック212における分配可否の決定、ブロック216におけるタスクやサブタスクの分散配置決定では、上記パラメータだけではなく追加的基準も考慮に入れてもよい。たとえば、このような追加的基準には、サブタスクの実行コストの決定も含まれる。このコストの決定には、xノードでタスクを実行する場合のノード当たりのコストの決定が含まれる。ノード当たりコストには、帯域幅の大きさや各分散ノードで費やされる実行時間といった多くの要素が含まれる。更に、ノード当たりコストは、ノード数x、求められるサービス品質、定数サイズデータの大きさ、伝送コスト、使用コストのうちの1以上に依存する。分散処理のコストを考慮するときには、これら全ての要素を考慮してもよい。
図3は、分散可否の数値的な例を示す。特に、図3の実線プロットは、次に示すパラメータ値において、xに対するEETのグラフである。
ET=5秒
TS=1KByte
CS=1KByte
RS=10KByte
BWo=30KByte/s
BWi=400KByte/s
RTT=0.2秒
図3の実線から分かるように、x=1のプロセッサの処理時間は5秒であり、約1.4秒という最低EETとなるのはx=17のプロセッサによる分散処理を行ったときである。この例では、17個のプロセッサでは明らかにEETが短くなっていることから、分散させる意味があるといえる。
図3の点線プロットは、次に示すパラメータ値において、xに対するEETのグラフである。
ET=5秒
TS=100KByte
CS=0KByte
RS=10KByte
BWo=30KByte/s
BWi=400KByte/s
RTT=0.2秒
図3の点線から分かるように、x=1のプロセッサの処理時間は、1秒という最低EETとなっている。100ノードのときですら、3.5秒の次善EETとなる。この例では、1よりも多くのプロセッサを使うと、明らかにEETが大きくなることから、タスク分散させる意味がないことになる。
分散処理のコストは、だれが処理のためのリソースを提供しているかによって変化する可能性がある。合理的に考えると、リソースの所有者は、リソースを利用可能とすることによる見返りを求めるかもしれない。この見返りの大きさはプロバイダ(提供者)によってさまざまに変化するかもしれない。分散処理リソースのユーザ(使用者)がそのようなリソースの使用コストを判定できれば有用である。図4は、遠隔地に分散されているリソースの使用コストを算定可能なモデル300を示している。モデル300においては、ユーザ・ノード302とプロバイダ・ノード304は、ネットワーク306を介して接続されている。プロバイダ・ノード304の所有者は、ネットワーク306上にてアクセス可能なルックアップテーブル308上に、利用可能なリソースとそのコストを示す。一例として、ルックアップテーブル308は、ネットワーク306に接続されるノードのメモリに保持されてもよい。ユーザ・ノード302は、ルックアップテーブル308へ問い合わせることにより、どのような処理リソースを利用可能で、どのくらいのコストがかかるかを検出してもよい。
図5に示す別モデル400では、ユーザ・ノード402とプロバイダ・ノード404は、ネットワーク406を介して、流動資本市場(liquid capital market)408により相互作用してもよい。ユーザ・ノード402は、流動資本市場408にリストアップするためにタスク・リクエスト410を送信してもよい。流動資本市場408は、たとえば、他のユーザ・ノード402やプロバイダ・ノード404からアクセス可能なウェブサイトにて、各タスク・リクエスト410の一覧表示する。各タスク・リクエスト410は、ユーザ・ノード402が、利用可能プロバイダ群に分散させたいタスクについての情報が含まれてもよい。この情報には、上記したさまざまなパラメータが含まれる。タスク・リクエスト410は、ユーザ・ノードの操作者がプロバイダ・ノードのリソース使用に支払う対価を含んでもよい。この対価とは、たとえば、プロバイダ・ノードのリソース使用の代わりに、ノード操作者が譲渡するリソース、あるいは、通貨といった観点から示されてもよい。プロバイダ・ノード404は、流動資本市場408にて一覧表示されているタスク・リクエスト410に入札(bid)412をしてもよい。ユーザ・ノード操作者とプロバイダ・ノード操作者は、オープンかつ競争的な入札処理(せり)により、提供すべきリソースとそれらの対価について合意してもよい。
変形例として、サブ処理タスクについて提案されている分散が1以上のユーザ定義のポリシ(方針)に合致しているかを判定するための追加的基準を考慮に入れてもよい。たとえば、もし、ユーザが、カリフォルニア州でしかサブタスクを実行したくない場合には、このユーザ定義ポリシは、他州から提供されるリソースを選択するためのリソース選択基準に適用されてもよい。
ブロック216、218における処理タスクの分散方法の決定について更に考慮してもよい。たとえば、分散ノードのキャッシュに、所与のタスクやサブタスクの実行に必要なコードやデータが既に存在するならば、データ転送や処理の時間を大きく削減できるかもしれない。ここでいうキャッシュとは、通常、特定のプロセッサやノードに対応づけられる高速ストレージ領域(たとえば、SRAM(Static Random Access Memory))である。キャッシュは、一般的には、使用頻度の高いデータや命令を保持するために使われる。タスク分散を促進するためには、1以上の分散ノードに関連づけられるタスクの内容を判定し、タスクやサブタスクを処理するために必要なデータがあるかどうかを判定することが望ましい。タスクやサブタスクは、ブロック216やブロック218において、必要なコードやデータを有するノードに優先的に分散されてもよい。
以上は、本発明の最適な実施例の完全な記述であるが、さまざまな変更、変形、等価物への置き換えが可能である。それゆえ、本発明の範囲は、上記記述に関してではなく、請求項により定義されるべきであり、完全な等価物の範囲も含まれる。記述された特徴は、それが好ましいものであれ、そうでないものであれ、上記したさまざまな特徴と組み合わされてもよい。請求項においては、通常、特に断らない限りは、各要素は1またはそれ以上の数量を想定している。請求項の記載事項は、「〜手段」のような記載によって、明示される場合のほかは、いわゆるミーンズ・プラス・ファンクション特有の限定的意味で解してはならない。
本実施例における分散処理システムのブロック図である。 本実施例における処理過程を示すフローチャートである。 本実施例において、タスクの分散要否を判定するための実行時間とプロセッサ数の関係を示すグラフである。 本実施例において、ルックアップテーブルモデルによる分散処理コストの決定方法を示すブロック図である。 本実施例において、流動資本市場モデルによる分散処理コストの決定方法を示すブロック図である。

Claims (36)

  1. ローカル・ノードにタスクを生成するステップと、
    前記タスクを1以上のサブタスクに分割するステップと、
    ローカル・ノードからアクセス可能なノード群においてサブタスク群を実行させるのに関連するパラメータの少なくとも一部に基づいて、前記1以上のサブタスクを実行するための最適ノード数xを判定するステップと、
    xに基づいて、ローカル・ノードで前記タスクを実行するか、ローカル・ノードからアクセス可能な1以上の分散ノードに前記タスクを分散させるかを判定するステップと、
    を備えることを特徴とするプロセッサにて実行可能なタスクの処理方法。
  2. サブタスク群をxノードに分散させて処理させるステップ、を更に備えることを特徴とする請求項1に記載の処理方法。
  3. xノードからサブタスクの出力データを取得するステップ、を更に備えることを特徴とする請求項2に記載の処理方法。
  4. サブタスク群の実行に関連する前記パラメータを収集するステップ、を更に備えることを特徴とする請求項1に記載の処理方法。
  5. ローカル・プロセッサによりアクセス可能なデータ記録媒体に前記パラメータを記録するステップ、を更に備えることを特徴とする請求項4に記載の処理方法。
  6. 前記パラメータは、利用可能ノード数、前記ローカル・ノードおよび1以上の分散ノード間におけるデータ伝送率、前記ローカル・ノードおよび1以上の分散ノード間におけるラウンドトリップ時間、サブタスクのプロセッサ・サイクル数、サブタスクが必要とするメモリ領域の大きさ、サブタスクが必要とするストレージ領域の大きさ、および、サブタスクの関連データの転送において利用可能なネットワーク帯域幅、のうちの1以上のを含むことを特徴とする請求項4に記載の処理方法。
  7. 前記タスクの実効実行時間(EET:Effective Execution Time)の最低値に基づいて、前記最適ノード数xを判定することを特徴とする請求項1に記載の処理方法。
  8. 前記実効実効時間は、以下の式によって計算され、
    ここで、ETは、1つのノードにおける全サブタスクの実行時間、
    TSは、サブタスク群で分割されるべきデータの総サイズ、
    CSは、各サブタスクが必要とする定数サイズのデータ、
    RSは、タスク群が生成する出力データの総サイズ、
    BWo、BWiは、それぞれ、全プロセッサ・ノードについての出力および入力の帯域幅、
    RTTは、前記ローカル・ノードから分散ノードへのラウンドトリップメッセージ時間(往復遅延時間)、をそれぞれを示すことを特徴とする請求項7に記載の処理方法。
  9. 1ノードにおける全タスクの実行時間(ET:Execution Time)と前記ローカル・ノードから分散ノードへのラウンドトリップメッセージ時間(RTT:Round-trip Message Time)に基づいてxを決定することを特徴とする請求項1に記載の処理方法。
  10. ETとRTTとの比率に基づいてxを決定することを特徴とする請求項9に記載の処理方法。
  11. 追加的基準を含めて、前記最適ノード数xを決定することを特徴とする請求項1に記載の処理方法。
  12. 前記追加的基準として、サブタスクの実行コストの判定を含むことを特徴とする請求項11に記載の処理方法。
  13. サブタスクの実行コストの判定には、ノード当たりのコストの判定が含まれることを特徴とする請求項12に記載の処理方法。
  14. ノード当たりのコストの判定には、分散ノードの帯域幅、または、実行時間の判定が含まれることを特徴とする請求項13に記載の処理方法。
  15. ノード当たりのコストの決定は、ノード数x、求められるサービス品質、定数サイズデータの大きさ、伝送コスト、使用コスト、のうちの1以上に基づくことを特徴とする請求項13に記載の処理方法。
  16. サブタスクの実行コストの判定には、プロバイダから示されるコストのルックアップテーブルからのコスト取得処理が含まれることを特徴とする請求項13に記載の処理方法。
  17. サブタスクの処理コストの判定には、プロバイダが顧客に入札する流動資本市場の使用を含むことを特徴とする請求項13に記載の処理方法。
  18. 前記追加的基準は、1以上のユーザ定義ポリシを含むことを特徴とする請求項11に記載の処理方法。
  19. サブタスクは、あるタイプのサブタスクと別のタイプのサブタスクを識別し、および/または、最適ノード数xを決定するための情報を提供するサブタスクタイプによって特定されることを特徴とする請求項1に記載の処理方法。
  20. 1以上の分散ノードに関連づけられるキャッシュの内容を判定するステップ、を更に含むことを特徴とする請求項1に記載の処理方法。
  21. サブタスクを実行するのに必要なコードやノードを有するノードに対して前記サブタスクを優先的に分散させるステップ、を更に含むことを特徴とする請求項20に記載の処理方法。
  22. 複数の分散ノードと接続されるローカル・ノードと、
    ローカル・ノードによる実行命令群であって、プロセッサにて読み取り可能な記録媒体に保持されるプロセッサ実行可能な命令群と、を備え、
    前記命令群は、
    ローカル・ノードにタスクを生成する1以上の命令と、
    前記タスクを1以上のサブタスクに分割する1以上の命令と、
    ローカル・ノードからアクセス可能なノード群においてサブタスク群を実行させるのに関連するパラメータの少なくとも一部に基づいて、前記1以上のサブタスクを実行するための最適ノード数xを判定する1以上の命令と、
    xに基づいて、ローカル・ノードで前記タスクを実行するか、1以上の分散ノードに前記タスクを分散させるかを判定する1以上の命令と、
    を含むことを特徴とする複数の分散ノード群に処理を分散させるシステム。
  23. 前記ローカル・ノードに接続されるメモリ、を更に備えることを特徴とする請求項22に記載のシステム。
  24. 前記メモリに前記パラメータに関する情報を保持することを特徴とする請求項23に記載のシステム。
  25. 前記パラメータは、利用可能ノード数、前記ローカル・ノードおよび1以上の他ノード間におけるデータ伝送率、前記ローカル・ノードおよび1以上の他ノード間におけるラウンドトリップ時間、サブタスクのプロセッサ・サイクル数、サブタスクが必要とするメモリ領域の大きさ、サブタスクが必要とするストレージ領域の大きさ、および、サブタスクの関連データの転送において利用可能なネットワーク帯域幅、のうちの1以上を含むことを特徴とする請求項22に記載のシステム。
  26. 前記プロセッサにて実行可能な命令群は、更に、分散ノードから前記パラメータを収集する1以上の命令を含むことを特徴とする請求項22に記載のシステム。
  27. 前記ローカル・ノードに接続されるメモリ、を更に備え、
    前記プロセッサにて実行可能な命令群は、前記メモリに前記パラメータを記録するの1以上の命令を含むことを特徴とする請求項26に記載のシステム。
  28. 前記プロセッサにて実行可能な命令群は、前記メモリの前記パラメータを更新する1以上の命令を含むことを特徴とする請求項27に記載のシステム。
  29. 前記プロセッサにて実行可能な命令群は、実効実行時間(EET:Effective Execution Time)の最低値に基づいて、xを決定する1以上の命令を含むことを特徴とする請求項22に記載のシステム。
  30. 前記実効実効時間は、以下の式によって計算され、
    ここで、ETは、1つのノードにおける全サブタスクの実行時間、
    TSは、サブタスク群で分割されるべきデータの総サイズ、
    CSは、各サブタスクが必要とする定数サイズのデータ、
    RSは、タスク群が生成する出力データの総サイズ、
    BWo、BWiは、それぞれ、全プロセッサ・ノードについての出力および入力の帯域幅、
    RTTは、前記ローカル・ノードから、前記ローカル・ノードによりアクセス可能なノードへのラウンドトリップメッセージ時間(往復遅延時間)、をそれぞれを示すことを特徴とする請求項29に記載のシステム。
  31. 1ノードにおける全タスクの実行時間(ET:Execution Time)と前記ローカル・ノードから、前記ローカル・ノードによりアクセス可能なノードへのラウンドトリップメッセージ時間(RTT:Round-trip Message Time)に基づいてxを決定することを特徴とする請求項22に記載のシステム。
  32. ETとRTTとの比率に基づいてxを決定することを特徴とする請求項31に記載のシステム。
  33. 1以上の追加的基準を含めて、xを決定することを特徴とする請求項22に記載のシステム。
  34. 前記追加的基準は、サブタスクの実行コスト、および/または、1以上のユーザ定義ポリシを含むことを特徴とする請求項33に記載のシステム。
  35. サブタスクは、あるタイプのサブタスクと別のタイプのサブタスクを識別し、および/または、最適ノード数xを決定するための情報を提供するサブタスクタイプによって特定されることを特徴とする請求項22に記載のシステム。
  36. プロセッサ実行可能なタスクの処理方法を実装するための命令群であって、
    ローカル・ノードにタスクを生成する1以上の命令と、
    前記タスクを1以上のサブタスクに分割する1以上の命令と、
    ローカル・ノードにからアクセス可能なノード群においてサブタスク群を処理するのに関連するパラメータの少なくとも一部に基づいて、前記1以上のサブタスクを実行するための最適ノード数xを判定する1以上の命令と、
    xに基づいて、前記ローカル・ノードで前記タスクを実行するか、前記ローカル・ノードからアクセス可能な1以上の分散ノードに前記タスクを分散させるかを判定する1以上の命令と、
    を含む命令群を保持するプロセッサにて読み取り可能な記録媒体。
JP2007184406A 2006-07-21 2007-07-13 サブタスク・プロセッサの分散スケジューリング Expired - Fee Related JP4421637B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/459,301 US7730119B2 (en) 2006-07-21 2006-07-21 Sub-task processor distribution scheduling

Publications (2)

Publication Number Publication Date
JP2008027442A true JP2008027442A (ja) 2008-02-07
JP4421637B2 JP4421637B2 (ja) 2010-02-24

Family

ID=38972678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007184406A Expired - Fee Related JP4421637B2 (ja) 2006-07-21 2007-07-13 サブタスク・プロセッサの分散スケジューリング

Country Status (2)

Country Link
US (2) US7730119B2 (ja)
JP (1) JP4421637B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012023175A1 (ja) * 2010-08-17 2012-02-23 富士通株式会社 並列処理制御プログラム、情報処理装置、および並列処理制御方法
JP2012511200A (ja) * 2008-12-06 2012-05-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 写実的画像形成の処理負荷を分散するためのシステム及び方法
JP2015053686A (ja) * 2010-03-26 2015-03-19 クゥアルコム・インコーポレイテッドQualcomm Incorporated ネットワークリソースをリースすること
WO2015071975A1 (ja) * 2013-11-13 2015-05-21 株式会社日立製作所 アプリケーション及びデータの配置管理方法、アプリケーション及びデータの配置管理システム及び記憶媒体
US10761888B2 (en) 2017-08-30 2020-09-01 Fujitsu Limited Method for deploying task to node based on execution completion point, task deployment apparatus and storage medium

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730119B2 (en) * 2006-07-21 2010-06-01 Sony Computer Entertainment Inc. Sub-task processor distribution scheduling
WO2008118613A1 (en) * 2007-03-01 2008-10-02 Microsoft Corporation Executing tasks through multiple processors consistently with dynamic assignments
US20080320088A1 (en) * 2007-06-19 2008-12-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Helping valuable message content pass apparent message filtering
US8006175B2 (en) * 2007-10-29 2011-08-23 Microsoft Corporation Calculation of spreadsheet data
US8477975B2 (en) * 2007-12-20 2013-07-02 Phonak Ag Hearing system with joint task scheduling
US9043801B2 (en) * 2008-01-15 2015-05-26 International Business Machines Corporation Two-tiered dynamic load balancing using sets of distributed thread pools
WO2009113172A1 (ja) * 2008-03-13 2009-09-17 富士通株式会社 ジョブ割当装置、ジョブ割当装置の制御プログラム及び制御方法
US8201176B2 (en) * 2008-08-06 2012-06-12 International Business Machines Corporation Detecting the starting and ending of a task when thread pooling is employed
KR20100018289A (ko) * 2008-08-06 2010-02-17 삼성전자주식회사 멀티 태스킹 성능 예측 방법 및 시스템
US9910708B2 (en) * 2008-08-28 2018-03-06 Red Hat, Inc. Promotion of calculations to cloud-based computation resources
US8661129B2 (en) * 2008-11-05 2014-02-25 Xerox Corporation System and method for decentralized job scheduling and distributed execution in a network of multifunction devices
US20130302644A1 (en) * 2009-02-20 2013-11-14 Nucor Corporation Hot rolled thin cast strip product and method for making the same
US8266289B2 (en) * 2009-04-23 2012-09-11 Microsoft Corporation Concurrent data processing in a distributed system
WO2011027302A1 (en) * 2009-09-02 2011-03-10 Plurality Ltd. Associative distribution units for a high flow-rate synchronizer/scheduler
JP2011076513A (ja) * 2009-10-01 2011-04-14 Olympus Corp 分散処理システム
CN102043673B (zh) * 2009-10-21 2015-06-03 Sap欧洲公司 并行处理中执行任务的节点数量的优化选择***及方法
US8504400B2 (en) 2010-03-24 2013-08-06 International Business Machines Corporation Dynamically optimized distributed cloud computing-based business process management (BPM) system
EP2580633A4 (en) * 2010-06-11 2015-12-30 Optuminsight Inc APPARATUSES AND METHODS FOR PARALLEL ANALYTICAL PROCESSING
JP5598229B2 (ja) * 2010-10-01 2014-10-01 富士ゼロックス株式会社 ジョブ分散処理システム、情報処理装置及びプログラム
US8768748B2 (en) * 2010-12-17 2014-07-01 Verizon Patent And Licensing Inc. Resource manager
US8589938B2 (en) 2011-03-03 2013-11-19 International Business Machines Corporation Composite contention aware task scheduling
WO2012119290A1 (zh) * 2011-03-04 2012-09-13 富士通株式会社 分布式计算方法和分布式计算***
US8949305B1 (en) * 2011-07-15 2015-02-03 Scale Computing, Inc. Distributed dynamic system configuration
WO2013021223A1 (en) * 2011-08-05 2013-02-14 Intel Corporation Method and system for work partitioning between processors with work demand feedback
US9098329B1 (en) * 2011-08-30 2015-08-04 Amazon Technologies, Inc. Managing workflows
US10257109B2 (en) 2012-01-18 2019-04-09 International Business Machines Corporation Cloud-based content management system
US8902774B1 (en) * 2012-03-28 2014-12-02 Amdocs Software Systems Limited System, method, and computer program for distributing telecommunications resources
US8869157B2 (en) * 2012-06-21 2014-10-21 Breakingpoint Systems, Inc. Systems and methods for distributing tasks and/or processing recources in a system
US10095526B2 (en) * 2012-10-12 2018-10-09 Nvidia Corporation Technique for improving performance in multi-threaded processing units
US9367357B2 (en) * 2013-01-18 2016-06-14 Nec Corporation Simultaneous scheduling of processes and offloading computation on many-core coprocessors
US9086925B2 (en) * 2013-01-18 2015-07-21 Nec Laboratories America, Inc. Methods of processing core selection for applications on manycore processors
US20140245319A1 (en) * 2013-02-27 2014-08-28 Greenbutton Limited Method for enabling an application to run on a cloud computing system
US9451025B2 (en) * 2013-07-31 2016-09-20 International Business Machines Corporation Distributed storage network with alternative foster storage approaches and methods for use therewith
US10180880B2 (en) * 2013-07-31 2019-01-15 International Business Machines Corporation Adaptive rebuilding rates based on sampling and inference
US9842152B2 (en) * 2014-02-19 2017-12-12 Snowflake Computing, Inc. Transparent discovery of semi-structured data schema
CN103905337B (zh) * 2014-03-31 2018-01-23 华为技术有限公司 一种网络资源的处理装置、方法和***
KR20160003502A (ko) * 2014-07-01 2016-01-11 삼성전자주식회사 병렬화 방법 및 전자 장치
GB2513779B (en) * 2014-08-14 2015-05-13 Imp Io Ltd A method and system for scalable job processing
US10554568B2 (en) * 2015-09-25 2020-02-04 Intel Corporation Technologies for network round-trip time estimation
US10509683B2 (en) * 2015-09-25 2019-12-17 Microsoft Technology Licensing, Llc Modeling resource usage for a job
WO2017106619A1 (en) * 2015-12-18 2017-06-22 Interdigital Patent Holdings, Inc. Systems and methods associated with edge computing
US10476322B2 (en) * 2016-06-27 2019-11-12 Abb Schweiz Ag Electrical machine
US10078468B2 (en) 2016-08-18 2018-09-18 International Business Machines Corporation Slice migration in a dispersed storage network
US10387207B2 (en) * 2016-12-06 2019-08-20 International Business Machines Corporation Data processing
CN108572863B (zh) * 2017-03-13 2022-07-12 国家新闻出版广电总局广播电视卫星直播管理中心 分布式任务调度***及方法
WO2019164644A1 (en) 2018-02-23 2019-08-29 Idac Holdings, Inc. Device-initiated service deployment through mobile application packaging
US10866837B2 (en) 2018-07-30 2020-12-15 Lendingclub Corporation Distributed job framework and task queue
US10606636B2 (en) 2018-07-30 2020-03-31 Lendingclub Corporation Automated predictions for not-yet-completed jobs
KR20210020570A (ko) 2019-08-16 2021-02-24 삼성전자주식회사 전자 장치 및 이의 제어 방법
CN110532077B (zh) * 2019-08-22 2021-12-07 腾讯科技(深圳)有限公司 任务处理方法、装置及存储介质
CN112395085B (zh) * 2020-11-05 2022-10-25 深圳市中博科创信息技术有限公司 一种基于hdfs的分布式关系数据库的调度方法
JP2022088762A (ja) * 2020-12-03 2022-06-15 富士通株式会社 情報処理装置およびジョブスケジューリング方法
CN113434273B (zh) * 2021-06-29 2022-12-23 平安科技(深圳)有限公司 数据处理方法、装置、***及存储介质
CN114020442A (zh) * 2022-01-04 2022-02-08 连连宝(杭州)信息技术有限公司 一种任务处理方法、装置、电子设备及可读存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5031089A (en) * 1988-12-30 1991-07-09 United States Of America As Represented By The Administrator, National Aeronautics And Space Administration Dynamic resource allocation scheme for distributed heterogeneous computer systems
JP3208870B2 (ja) 1992-10-30 2001-09-17 株式会社日立製作所 データ分割パタンの評価方法
JP2800884B2 (ja) 1995-10-27 1998-09-21 日本電気株式会社 横型dsaパワーmosfetを備えた半導体装置
JPH1139271A (ja) 1997-07-15 1999-02-12 Toshiba Corp ライブラリシステムおよびライブラリの割り当て方法
US6112225A (en) * 1998-03-30 2000-08-29 International Business Machines Corporation Task distribution processing system and the method for subscribing computers to perform computing tasks during idle time
US6009455A (en) * 1998-04-20 1999-12-28 Doyle; John F. Distributed computation utilizing idle networked computers
US6327050B1 (en) * 1999-04-23 2001-12-04 Electronics For Imaging, Inc. Printing method and apparatus having multiple raster image processors
JP2001325041A (ja) 2000-05-12 2001-11-22 Toyo Eng Corp 計算機資源活用方法及びシステム
US20030005068A1 (en) * 2000-12-28 2003-01-02 Nickel Ronald H. System and method for creating a virtual supercomputer using computers working collaboratively in parallel and uses for the same
WO2003048961A1 (en) * 2001-12-04 2003-06-12 Powerllel Corporation Parallel computing system, method and architecture
US7376693B2 (en) * 2002-02-08 2008-05-20 Jp Morgan Chase & Company System architecture for distributed computing and method of using the system
US7103628B2 (en) * 2002-06-20 2006-09-05 Jp Morgan Chase & Co. System and method for dividing computations
JP2004038226A (ja) 2002-06-28 2004-02-05 Hitachi Ltd Pcクラスタおよびその中間ソフトウエア
US7346906B2 (en) * 2002-07-09 2008-03-18 International Business Machines Corporation Workload management in a computing environment
US7467180B2 (en) * 2003-05-29 2008-12-16 International Business Machines Corporation Automatically segmenting and populating a distributed computing problem
US20050131893A1 (en) * 2003-12-15 2005-06-16 Sap Aktiengesellschaft Database early parallelism method and system
US8429660B2 (en) * 2004-08-23 2013-04-23 Goldman, Sachs & Co. Systems and methods to allocate application tasks to a pool of processing machines
US7210053B2 (en) * 2004-08-31 2007-04-24 Emc Corporation Systems and methods for assigning tasks to derived timers of various resolutions in real-time systems to maximize timer usage
US8463971B2 (en) * 2005-08-22 2013-06-11 Oracle America Inc. Approach for distributing interrupts from high-interrupt load devices
US20070088828A1 (en) * 2005-10-18 2007-04-19 International Business Machines Corporation System, method and program product for executing an application
US20070288638A1 (en) * 2006-04-03 2007-12-13 British Columbia, University Of Methods and distributed systems for data location and delivery
US7730119B2 (en) * 2006-07-21 2010-06-01 Sony Computer Entertainment Inc. Sub-task processor distribution scheduling

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012511200A (ja) * 2008-12-06 2012-05-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 写実的画像形成の処理負荷を分散するためのシステム及び方法
JP2015053686A (ja) * 2010-03-26 2015-03-19 クゥアルコム・インコーポレイテッドQualcomm Incorporated ネットワークリソースをリースすること
WO2012023175A1 (ja) * 2010-08-17 2012-02-23 富士通株式会社 並列処理制御プログラム、情報処理装置、および並列処理制御方法
JPWO2012023175A1 (ja) * 2010-08-17 2013-10-28 富士通株式会社 並列処理制御プログラム、情報処理装置、および並列処理制御方法
WO2015071975A1 (ja) * 2013-11-13 2015-05-21 株式会社日立製作所 アプリケーション及びデータの配置管理方法、アプリケーション及びデータの配置管理システム及び記憶媒体
US10761888B2 (en) 2017-08-30 2020-09-01 Fujitsu Limited Method for deploying task to node based on execution completion point, task deployment apparatus and storage medium

Also Published As

Publication number Publication date
US7730119B2 (en) 2010-06-01
US20100235845A1 (en) 2010-09-16
JP4421637B2 (ja) 2010-02-24
US20080021987A1 (en) 2008-01-24

Similar Documents

Publication Publication Date Title
JP4421637B2 (ja) サブタスク・プロセッサの分散スケジューリング
US11010188B1 (en) Simulated data object storage using on-demand computation of data objects
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算***以及负载均衡方法
US9940162B2 (en) Realtime optimization of compute infrastructure in a virtualized environment
US9729488B2 (en) On-demand mailbox synchronization and migration system
US20110191781A1 (en) Resources management in distributed computing environment
US9229778B2 (en) Method and system for dynamic scaling in a cloud environment
US20180349178A1 (en) A method and system for scalable job processing
GB2475897A (en) Resource allocation using estimated time to complete jobs in a grid or cloud computing environment
US8458379B2 (en) Information processing program, method, and transfer processing device
WO2014194869A1 (zh) 一种请求处理方法、装置及***
US7571088B2 (en) Simulation of connected devices
US20190182138A1 (en) Assessing performance of networked computing environments
Tang et al. Dependent task offloading for multiple jobs in edge computing
US20100293268A1 (en) Efficient message consumption in a point-to-point messaging environment
US9769022B2 (en) Timeout value adaptation
JP5479710B2 (ja) データを処理するためのプロセッサ‐サーバ・ハイブリッド・システムおよび方法
CN109842665B (zh) 用于任务分配服务器的任务处理方法和装置
Hu et al. Requirement-aware strategies with arbitrary processor release times for scheduling multiple divisible loads
CN102200928A (zh) 计算资源控制设备和计算资源控制方法
CN112019630A (zh) 一种负载均衡方法以及装置
Gokulraj et al. Integration of firefly optimization and Pearson service correlation for efficient cloud resource utilization
CN116909758B (zh) 算力任务的处理方法、装置及电子设备
WO2017028930A1 (en) Methods and apparatus for running an analytics function
Di et al. Dual-phase Just-in-time workflow scheduling in P2P Grid systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090811

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091013

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

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

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

Free format text: PAYMENT UNTIL: 20121211

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4421637

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

Year of fee payment: 4

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

LAPS Cancellation because of no payment of annual fees