JP5845809B2 - 知的且つ動的なロードバランシングによる、分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化の手法 - Google Patents
知的且つ動的なロードバランシングによる、分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化の手法 Download PDFInfo
- Publication number
- JP5845809B2 JP5845809B2 JP2011237624A JP2011237624A JP5845809B2 JP 5845809 B2 JP5845809 B2 JP 5845809B2 JP 2011237624 A JP2011237624 A JP 2011237624A JP 2011237624 A JP2011237624 A JP 2011237624A JP 5845809 B2 JP5845809 B2 JP 5845809B2
- Authority
- JP
- Japan
- Prior art keywords
- job
- queue
- node
- resource
- threshold
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 90
- 230000015654 memory Effects 0.000 claims description 25
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 description 22
- 238000004364 calculation method Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000007689 inspection Methods 0.000 description 13
- 238000012795 verification Methods 0.000 description 10
- 230000008929 regeneration Effects 0.000 description 8
- 238000011069 regeneration method Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 230000014509 gene expression Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000013514 software validation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Description
本出願は、“METHOD AND SYSTEM FOR EFFICIENT PARALLELIZATION OF A SOFTWARE VERIFICATION PROBLEM THROUGH INTELLIGENT LOAD BALANCING”と題された2010年10月29日に提出された米国特許仮出願61/408167の35U.S.C§119(e)の下での利益を特許請求するものである。
(2)所与のサブツリーの実行に費やされる時間−y;
(3)所与のサブツリーで調査される判定ノードの数−z;
(4)利用可能なリソースのリストにおいて使用されていないフリーのリソースの数−w;及び
(5)(a)ある経路上の平均時間−u及び(b)終了された経路−vの平均の深さ、のようなグローバルなレベルでの計算の履歴及び/又は統計量。
a*x+b*y+c*z+d*w+e*u+f*v>T
境界関数は、たとえば1以上の上述されたパラメータを使用して閾値を超えているかを判定するため、適切な計算又は判定を使用する。たとえば、複雑な論理式、2変数関数、非線形関数、又はファジー計算が境界関数として使用される。たとえば、待機しているワーカノードの数が10を超えた場合、ジョブの可用性の閾値は、他の要素に係らず、自動的に超えられる。別の例では、ジョブは、シンプルに終了され、全ての発見された新たなジョブを解放する。更に別の例では、待機しているワーカノードに対応する要素の重み付け値が増加される。係る例は、ジョブのキュー又は利用可能なリソースのリストがある最大値を超えたか、又はある最小量よりも下回ったかを調べることでトリガされる。
この閾値関数を超えて、ワーカノード106により遭遇される調査されていない分岐は、新たなジョブとして作成される。制約の値は、唯一の例を反映しており、特定のソフトウェアの解析で遭遇される特定の状況に依存して変化する。相対的な重み及びそれぞれの極性の議論は、例について以下に与えられる。
“x”は、実行が行われている計算ツリーの深さである。深さは、それぞれの記号による分岐のレベルで1だけ増加する。従って、計算が行われているツリーの深さが増加するときに、再生の非常に高いコストが、閾値に到達して新たなジョブを開始することが困難となることを意味するとき、定数“a”は、負である可能性がある。
“y”は、ワーカノード106が現在のジョブに関して計算している時間(秒)である。係る解析により費やされる時間が多くなると、解析を終了して、新たなジョブを生じる傾向が高くなることを意味する。従って、定数“b”は、典型的に正の値である。
“z”は、サブツリーで既に遭遇された判定ノードの数である。判定のサブツリーが余りに大きくなり過ぎた場合、ジョブを終了し及び/又は新たなジョブを生じる傾向が増加する。従って、定数“c”は、典型的に正である。サブツリーにおいて既に遭遇した非常に多くの判定ノードが、動的にバランスを取る必要がある作業負荷の程度に関して重要ではないとき、“c”の値は、比較的低い。
“w”は、利用可能なリソースのキューにおける使用されていないワーカノード106の数である。使用されていないワーカノードは、有すべき非常に悪い問題であり、係るように、定数“d”は、正であって且つ大きい。大きな数は、既存のジョブをすぐに終了すると同様に、より積極的に新たなジョブに広がる。新たなジョブは、現在実行しているジョブの終了までジョブのキューに追加されないリソースの可用性のポリシーの文脈では、係る定数は、ジョブのキューへの追加のために新たなジョブを解放するように非常に高い。係る状況では、ワーカノード106により発見される未解決の新たなジョブの数は、この要素を考慮する。
“u”は、ある経路に関する平均時間(秒)である。これは、現在のジョブ内の経路の平均時間であるか、又はスケジューラノード104により集められた全てのジョブにわたる平均時間である。この要素は、幾つかの有効な作業を完了するための最少の時間量を確定するか、又は、新たなジョブの頻繁な非生産的な発生を防止するために使用される。係るように、定数“e”は、負であり、分散ネットワークシステム100の速度に従って比較的小さい。この要素は、ジョブをワーカノード106に割り当てるオーバヘッド、及びワーカノード106とスケジュールノード104との間の通信のために性能が低下する、リソースの過剰なチャーニング(churning)、又は過剰な小さく且つ実体のないジョブの過剰な発生を防止するために使用される。
“v”は、ワーカノード106によりこれまでの遭遇した解析及び実行の経路の平均の深さである。これは、現在のジョブ内の経路の平均、又はスケジューラノード104により集められる全てのジョブの平均である。この要素は、所定の深さに到達したかを判定するために使用され、所定に深さに到達した場合に、新たなジョブを生じる。幾つかのケースでは、この要素は、深い実行のレベルを促進するために使用される。従って、定数“f”は、正又は負である。
上述されたように、ジョブの可用性及びリソースの可用性の閾値は、それぞれ、個別に又は一緒に決定される。スケジューラノード104は、ワーカノード106の使用を比較的最適にする要件に依存して、ワーカノード106について何れかの閾値を調節する。ジョブの可用性及びリソースの可用性の閾値は、互いに関して調節される。
(付記1)
分散コンピューティングシステムであって、
検証されるべきコードの一部を含むジョブを実行する2以上のワーカノードと、
メモリに結合されるプロセッサを有するスケジューラノードと、前記メモリは、コードの一部を検証するために利用可能な複数のワーカノードを示すリソースのキューと、それぞれのジョブが検証されるべきコードの一部を示す、ワーカノードにより実行される1以上のジョブを示すジョブのキューとを含み、
前記リソースのキューと前記ジョブのキューの両者がエントリを含むかを判定するスケジューラノードとを備え、
前記スケジューラノードは、前記リソースのキューと前記ジョブのキューとがエントリを含む場合に、スケジューリングポリシーを適用して、第一のジョブを選択し、前記リソースのキューのエントリのうちで前記第一のジョブの特性について最も適合するノードとして第一のワーカノードを選択し、前記第一のジョブを前記第一のワーカノードに割り当て、前記第一のジョブを実行している間に前記ジョブのキューにおいて新たなジョブを作成するためのジョブ作成ポリシーのパラメータを前記第一のワーカノードに割り当て、前記第一のジョブの実行を停止するための終了ポリシーのパラメータを前記第一のワーカノードに割り当てる、
ことを特徴とするシステム。
(付記2)
前記コードを検証することは、コードに記号的実行を施すことを含む、
付記1記載のシステム。
(付記3)
前記スケジューラノードは、
ジョブを実行するために利用可能な初期の数のワーカノードを決定し、
前記ジョブを実行するために利用可能なワーカノードの初期の数よりも多いか又は前記前記ジョブを実行するために利用可能なワーカノードの初期の数に等しい、初期の数のジョブを作成し、
前記初期の数のワーカノードのそれぞれを、実行すべきジョブに割り当てる、
付記1記載のシステム。
(付記4)
前記スケジューラノードは、
前記ジョブのキューが空であって、全てのワーカノードが使用されていないかを判定し、
前記ジョブのキューが空であって、全てのワーカノードが使用されていない場合、全てのジョブの実行の結果を記憶する、
付記1記載のシステム。
(付記5)
前記スケジューラノードは、
前記ジョブのキューが所定の最小値未満であるか、前記リソースのキューが所定の最大値を超えるかを判定し、
前記ジョブのキューが所定の最小値未満であって、前記リソースのキューが所定の最大値を超える場合、ジョブの作成を増加するように1以上のポリシーのパラメータを調節する、
付記1記載のシステム。
(付記6)
前記スケジューラノードは、
前記ジョブのキューが第一の閾値未満であるか、前記リソースのキューが第二の閾値を超えるかを判定し、
前記ジョブのキューが第一の閾値未満であって、前記リソースのキューが第二の閾値を超える場合、所与のリソースの実行を増加するように、1以上のポリシーのパラメータを調節する、
付記1記載のシステム。
(付記7)
前記スケジューラノードは、
前記ジョブのキューが第一の閾値を超えるか、前記リソースのキューが第二の閾値未満であるかを判定し、
前記ジョブのキューが第一の閾値を超え、且つ前記リソースのキューが第二の閾値未満である場合、ジョブの作成を減少するように、1以上のポリシーのパラメータを調節する、
付記1記載のシステム。
(付記8)
前記スケジューラノードは、
前記ジョブのキューが第一の閾値を超えるか、前記リソースのキューが第二の閾値未満であるかを判定し、
前記ジョブのキューが第一の閾値を超え、且つ前記リソースのキューが第二の閾値未満である場合、所与のリソースの実行を減少するように、1以上のポリシーのパラメータを調節する、
付記1記載のシステム。
(付記9)
前記スケジューラノードは、
前記ジョブのキューの状態を評価し、
前記ジョブのキューの状態に基づいて、当該システムの1以上のポリシーのパラメータを調節する、
付記1記載のシステム。
(付記10)
前記スケジューラノードは、
前記リソースのキューの状態を評価し、
前記リソースのキューの状態に基づいて、当該システムの1以上のポリシーのパラメータを調節する、
付記1記載のシステム。
(付記11)
ソフトウェアを検証する方法であって、
コードの一部を検証するために利用可能な複数のワーカノードを示すリソースのキューと、それぞれのジョブが検証されるべきコードの一部を示す、ワーカノードにより実行される1以上のジョブを示すジョブのキューとをモニタするステップと、前記ジョブは、検証されるべきコードの一部を含み、
前記リソースのキューと前記ジョブのキューとがエントリを含むかを判定するステップと、
前記リソースのキューと前記ジョブのキューの両者がエントリを含む場合に、
スケジューリングポリシーを適用して、第一のジョブを選択するステップと、
前記リソースのキューのエントリのうちで前記第一のジョブの特性について最も適合するノードとして第一のワーカノードを選択するステップと、
前記第一のジョブを前記第一のワーカノードに割り当てるステップと、
前記第一のジョブを実行している間に前記ジョブのキューにおいて新たなジョブを作成するためのジョブ作成ポリシーのパラメータを前記第一のワーカノードに割り当てるステップと、
前記第一のジョブの実行を停止するための終了ポリシーのパラメータを前記第一のワーカノードに割り当てるステップと、
を含むことを特徴とする方法。
(付記12)
前記コードを検証することは、コードに記号的実行を施すことを含む、
付記11記載の方法。
(付記13)
ジョブを実行するために利用可能な初期の数のワーカノードを決定するステップと、
前記ジョブを実行するために利用可能なワーカノードの初期の数よりも多いか又は該初期の数に等しい、初期の数のジョブを作成するステップと、
前記初期の数のワーカノードのそれぞれを、実行すべきジョブに割り当てるステップと、
を更に含む付記11記載の方法。
(付記14)
前記ジョブのキューが空であって、全てのワーカノードが使用されていないかを判定するステップと、
前記ジョブのキューが空であって、全てのワーカノードが使用されていない場合、全てのジョブの実行の結果を記憶するステップと、
を更に含む付記11記載の方法。
(付記15)
前記ジョブのキューが第一の閾値未満であるか、前記リソースのキューが第二の閾値を超えるかを判定するステップと、
前記ジョブのキューが第一の閾値未満であって、前記リソースのキューが第二の閾値を超える場合、ジョブの作成を増加するように1以上のポリシーのパラメータを調節するステップと、
を更に含む付記11記載の方法。
(付記16)
前記ジョブのキューが第一の閾値未満であるか、前記リソースのキューが第二の閾値を超えるかを判定するステップと、
前記ジョブのキューが第一の閾値未満であって、前記リソースのキューが第二の閾値を超える場合、所与のリソースの実行を増加するように、1以上のポリシーのパラメータを調節するステップと、
を更に含む付記11記載の方法。
(付記17)
前記ジョブのキューが第一の閾値を超えるか、前記リソースのキューが第二の閾値未満であるかを判定するステップと、
前記ジョブのキューが第一の閾値を超え、且つ前記リソースのキューが第二の閾値未満である場合、ジョブの作成を減少するように、1以上のポリシーのパラメータを調節するステップと、
を更に含む付記11記載の方法。
(付記18)
前記ジョブのキューが第一の閾値を超えるか、前記リソースのキューが第二の閾値未満であるかを判定するステップと、
前記ジョブのキューが第一の閾値を超え、且つ前記リソースのキューが第二の閾値未満である場合、所与のリソースの実行を減少するように、1以上のポリシーのパラメータを調節するステップと、
を更に含む付記11記載の方法。
(付記19)
前記ジョブのキューの状態を評価するステップと、
前記ジョブのキューの状態に基づいて、当該システムの1以上のポリシーのパラメータを調節するステップと、
を更に含む付記11記載の方法。
(付記20)
前記リソースのキューの状態を評価するステップと、
前記リソースのキューの状態に基づいて、当該システムの1以上のポリシーのパラメータを調節するステップと、
を更に含む付記11記載の方法。
(付記21)
コンピュータ読み取り可能な記録媒体と、
前記コンピュータ読み取り可能な記録媒体に記録されるコンピュータ実行可能な命令とを備える製品であって、前記命令は、プロセッサにより読取り可能であって、読み取られて実行されたときに、前記プロセッサに、
コードの一部を検証するために利用可能な複数のワーカノードを示すリソースのキューと、ワーカノードにより実行される1以上のジョブを示すジョブのキューとをモニタさせ、前記ジョブは、検証されるべきコードの一部を含み、
前記リソースのキューと前記ジョブのキューとがエントリを含むかを判定させ、
前記リソースのキューと前記ジョブのキューの両者がエントリを含む場合に、
スケジューリングポリシーを適用して、第一のジョブを選択させ、
前記リソースのキューのエントリのうちで前記第一のジョブの特性について最も適合するノードとして第一のワーカノードを選択させ、
前記第一のジョブを前記第一のワーカノードに割り当てさせ、
前記第一のジョブを実行している間に前記ジョブのキューにおいて新たなジョブを作成するためのジョブ作成ポリシーのパラメータを前記第一のワーカノードに割り当てさせ、
前記第一のジョブの実行を停止するための終了ポリシーのパラメータを前記第一のワーカノードに割り当てさせる、
ことを特徴とする製品。
(付記22)
前記コードを検証することは、コードに記号的実行を施すことを含む、
付記21記載の製品。
(付記23)
前記命令は、前記プロセッサに、更に、
ジョブを実行するために利用可能な初期の数のワーカノードを決定するステップと、
前記ジョブを実行するために利用可能なワーカノードの初期の数よりも多いか又は該初期の数に等しい、初期の数のジョブを作成させ、
前記初期の数のワーカノードのそれぞれを、実行すべきジョブに割り当てさせる、
付記21記載の製品。
(付記24)
前記命令は、前記プロセッサに、更に、
前記ジョブのキューが空であって、全てのワーカノードが使用されていないかを判定させ、
前記ジョブのキューが空であって、全てのワーカノードが使用されていない場合、全てのジョブの実行の結果を記憶させる、
付記21記載の製品。
(付記25)
前記命令は、前記プロセッサに、更に、
前記ジョブのキューが第一の閾値未満であるか、前記リソースのキューが第二の閾値を超えるかを判定させ、
前記ジョブのキューが第一の閾値未満であって、前記リソースのキューが第二の閾値を超える場合、ジョブの作成を増加するように1以上のポリシーのパラメータを調節させる、
付記21記載の製品。
(付記26)
前記命令は、前記プロセッサに、更に、
前記ジョブのキューが第一の閾値未満であるか、前記リソースのキューが第二の閾値を超えるかを判定させ、
前記ジョブのキューが第一の閾値未満であって、前記リソースのキューが第二の閾値を超える場合、所与のリソースの実行を増加するように、1以上のポリシーのパラメータを調節させる、
付記21記載の製品。
(付記27)
前記命令は、前記プロセッサに、更に、
前記ジョブのキューが第一の閾値を超えるか、前記リソースのキューが第二の閾値未満であるかを判定させ、
前記ジョブのキューが第一の閾値を超え、且つ前記リソースのキューが第二の閾値未満である場合、ジョブの作成を減少するように、1以上のポリシーのパラメータを調節させる、
付記21記載の製品。
(付記28)
前記命令は、前記プロセッサに、更に、
前記ジョブのキューが第一の閾値を超えるか、前記リソースのキューが第二の閾値未満であるかを判定させ、
前記ジョブのキューが第一の閾値を超え、且つ前記リソースのキューが第二の閾値未満である場合、所与のリソースの実行を減少するように、1以上のポリシーのパラメータを調節させる、
付記21記載の製品。
(付記29)
前記命令は、前記プロセッサに、更に、
前記ジョブのキューの状態を評価させ、
前記ジョブのキューの状態に基づいて、当該システムの1以上のポリシーのパラメータを調節させる、
付記21記載の製品。
(付記30)
前記命令は、前記プロセッサに、更に、
前記リソースのキューの状態を評価させ、
前記リソースのキューの状態に基づいて、当該システムの1以上のポリシーのパラメータを調節させる、
付記21記載の製品。
102:ネットワーク
104:スケジューラノード
106:ワーカノード
108:検証のウェブサービス
Claims (20)
- 分散コンピューティングシステムであって、
ジョブを実行する2以上のワーカノードであって、前記ジョブの中に検証されるべきコードの一部が指示される、ワーカノードと、
メモリに結合されるプロセッサを有するスケジューラノードと、前記メモリは、コードの一部を検証するために利用可能な複数のワーカノードを示すリソースのキューと、それぞれのジョブが検証されるべきコードの一部を示す、ワーカノードにより実行される1以上のジョブを示すジョブのキューとを含み、
前記リソースのキューと前記ジョブのキューの両者がエントリを含むかを判定するスケジューラノードとを備え、
前記スケジューラノードは、前記リソースのキューと前記ジョブのキューとがエントリを含む場合に、スケジューリングポリシーを適用して、第一のジョブを選択し、前記リソースのキューのエントリのうちで前記第一のジョブの特性について最も適合するノードとして第一のワーカノードを選択し、前記第一のジョブを前記第一のワーカノードに割り当て、前記第一のジョブを実行している間に前記ジョブのキューにおいて新たなジョブを作成するためのジョブ作成ポリシーのパラメータを前記第一のワーカノードに割り当て、前記第一のジョブの実行を停止するための終了ポリシーのパラメータを前記第一のワーカノードに割り当てる、
ことを特徴とするシステム。 - 前記コードを検証することは、コードに記号的実行を施すことを含む、
請求項1記載のシステム。 - 前記スケジューラノードは、
ジョブを実行するために利用可能な初期の数のワーカノードを決定し、
前記ジョブを実行するために利用可能なワーカノードの初期の数よりも多いか又は前記ジョブを実行するために利用可能なワーカノードの初期の数に等しい、初期の数のジョブを作成し、
前記初期の数のワーカノードのそれぞれを、実行すべきジョブに割り当てる、
請求項1記載のシステム。 - 前記スケジューラノードは、
前記ジョブのキューが空であって、全てのワーカノードが使用されていないかを判定し、
前記ジョブのキューが空であって、全てのワーカノードが使用されていない場合、全てのジョブの実行の結果を記憶する、
請求項1記載のシステム。 - 前記スケジューラノードは、
前記ジョブのキューが所定の最小値未満であるか、前記リソースのキューが所定の最大値を超えるかを判定し、
前記ジョブのキューが所定の最小値未満であって、前記リソースのキューが所定の最大値を超える場合、ジョブの作成を増加するように1以上のポリシーのパラメータを調節する、
請求項1記載のシステム。 - 前記スケジューラノードは、
前記ジョブのキューが第一の閾値未満であるか、前記リソースのキューが第二の閾値を超えるかを判定し、
前記ジョブのキューが第一の閾値未満であって、前記リソースのキューが第二の閾値を超える場合、所与のリソースの実行を増加するように、1以上のポリシーのパラメータを調節する、
請求項1記載のシステム。 - 前記スケジューラノードは、
前記ジョブのキューが第一の閾値を超えるか、前記リソースのキューが第二の閾値未満であるかを判定し、
前記ジョブのキューが第一の閾値を超え、且つ前記リソースのキューが第二の閾値未満である場合、ジョブの作成を減少するように、1以上のポリシーのパラメータを調節する、
請求項1記載のシステム。 - 前記スケジューラノードは、
前記ジョブのキューが第一の閾値を超えるか、前記リソースのキューが第二の閾値未満であるかを判定し、
前記ジョブのキューが第一の閾値を超え、且つ前記リソースのキューが第二の閾値未満である場合、所与のリソースの実行を減少するように、1以上のポリシーのパラメータを調節する、
請求項1記載のシステム。 - 前記スケジューラノードは、
前記ジョブのキューの状態を評価し、
前記ジョブのキューの状態に基づいて、当該システムの1以上のポリシーのパラメータを調節する、
請求項1記載のシステム。 - 前記スケジューラノードは、
前記リソースのキューの状態を評価し、
前記リソースのキューの状態に基づいて、当該システムの1以上のポリシーのパラメータを調節する、
請求項1記載のシステム。 - ソフトウェアを検証する方法であって、
コードの一部を検証するために利用可能な複数のワーカノードを示すリソースのキューと、それぞれのジョブが検証されるべきコードの一部を示す、ワーカノードにより実行される1以上のジョブを示すジョブのキューとをモニタするステップと、前記ジョブは、検証されるべきコードの一部を示し、
前記リソースのキューと前記ジョブのキューとがエントリを含むかを判定するステップと、
前記リソースのキューと前記ジョブのキューの両者がエントリを含む場合に、
スケジューリングポリシーを適用して、第一のジョブを選択するステップと、
前記リソースのキューのエントリのうちで前記第一のジョブの特性について最も適合するノードとして第一のワーカノードを選択するステップと、
前記第一のジョブを前記第一のワーカノードに割り当てるステップと、
前記第一のジョブを実行している間に前記ジョブのキューにおいて新たなジョブを作成するためのジョブ作成ポリシーのパラメータを前記第一のワーカノードに割り当てるステップと、
前記第一のジョブの実行を停止するための終了ポリシーのパラメータを前記第一のワーカノードに割り当てるステップと、
を含むことを特徴とする方法。 - ジョブを実行するために利用可能な初期の数のワーカノードを決定するステップと、
前記ジョブを実行するために利用可能なワーカノードの初期の数よりも多いか又は該初期の数に等しい、初期の数のジョブを作成するステップと、
前記初期の数のワーカノードのそれぞれを、実行すべきジョブに割り当てるステップと、
を更に含む請求項11記載の方法。 - 前記ジョブのキューが空であって、全てのワーカノードが使用されていないかを判定するステップと、
前記ジョブのキューが空であって、全てのワーカノードが使用されていない場合、全てのジョブの実行の結果を記憶するステップと、
を更に含む請求項11記載の方法。 - 前記ジョブのキューが第一の閾値未満であるか、前記リソースのキューが第二の閾値を超えるかを判定するステップと、
前記ジョブのキューが第一の閾値未満であって、前記リソースのキューが第二の閾値を超える場合、ジョブの作成を増加するように1以上のポリシーのパラメータを調節するステップと、
を更に含む請求項11記載の方法。 - 前記ジョブのキューが第一の閾値未満であるか、前記リソースのキューが第二の閾値を超えるかを判定するステップと、
前記ジョブのキューが第一の閾値未満であって、前記リソースのキューが第二の閾値を超える場合、所与のリソースの実行を増加するように、1以上のポリシーのパラメータを調節するステップと、
を更に含む請求項11記載の方法。 - 前記ジョブのキューが第一の閾値を超えるか、前記リソースのキューが第二の閾値未満であるかを判定するステップと、
前記ジョブのキューが第一の閾値を超え、且つ前記リソースのキューが第二の閾値未満である場合、ジョブの作成を減少するように、1以上のポリシーのパラメータを調節するステップと、
を更に含む請求項11記載の方法。 - 前記ジョブのキューが第一の閾値を超えるか、前記リソースのキューが第二の閾値未満であるかを判定するステップと、
前記ジョブのキューが第一の閾値を超え、且つ前記リソースのキューが第二の閾値未満である場合、所与のリソースの実行を減少するように、1以上のポリシーのパラメータを調節するステップと、
を更に含む請求項11記載の方法。 - 前記ジョブのキューの状態を評価するステップと、
前記ジョブのキューの状態に基づいて、当該方法を実行するシステムの1以上のポリシーのパラメータを調節するステップと、
を更に含む請求項11記載の方法。 - 前記リソースのキューの状態を評価するステップと、
前記リソースのキューの状態に基づいて、当該方法を実行するシステムの1以上のポリシーのパラメータを調節するステップと、
を更に含む請求項11記載の方法。 - コンピュータに、ソフトウェアを検証する方法を実行させるための命令を含むプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記方法は、
コードの一部を検証するために利用可能な複数のワーカノードを示すリソースのキューと、ワーカノードにより実行される1以上のジョブを示すジョブのキューとをモニタするステップと、前記ジョブは、検証されるべきコードの一部を示し、
前記リソースのキューと前記ジョブのキューとがエントリを含むかを判定するステップと、
前記リソースのキューと前記ジョブのキューの両者がエントリを含む場合に、
スケジューリングポリシーを適用して、第一のジョブを選択するステップと、
前記リソースのキューのエントリのうちで前記第一のジョブの特性について最も適合するノードとして第一のワーカノードを選択するステップと、
前記第一のジョブを前記第一のワーカノードに割り当てるステップと、
前記第一のジョブを実行している間に前記ジョブのキューにおいて新たなジョブを作成するためのジョブ作成ポリシーのパラメータを前記第一のワーカノードに割り当てるステップと、
前記第一のジョブの実行を停止するための終了ポリシーのパラメータを前記第一のワーカノードに割り当てるステップと、
を含むことを特徴とする記録媒体。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US40816710P | 2010-10-29 | 2010-10-29 | |
US61/408,167 | 2010-10-29 | ||
US12/957,387 | 2010-11-30 | ||
US12/957,387 US8763001B2 (en) | 2010-10-29 | 2010-11-30 | Technique for efficient parallelization of software analysis in a distributed computing environment through intelligent dynamic load balancing |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012099107A JP2012099107A (ja) | 2012-05-24 |
JP5845809B2 true JP5845809B2 (ja) | 2016-01-20 |
Family
ID=45033727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011237624A Expired - Fee Related JP5845809B2 (ja) | 2010-10-29 | 2011-10-28 | 知的且つ動的なロードバランシングによる、分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化の手法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8763001B2 (ja) |
EP (1) | EP2447838B1 (ja) |
JP (1) | JP5845809B2 (ja) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8504997B2 (en) | 2009-03-19 | 2013-08-06 | Fujitsu Limited | Environment data refinement based on static analysis and symbolic execution |
US8479171B2 (en) * | 2010-05-24 | 2013-07-02 | Fujitsu Limited | Generating test sets using intelligent variable selection and test set compaction |
US8863096B1 (en) * | 2011-01-06 | 2014-10-14 | École Polytechnique Fédérale De Lausanne (Epfl) | Parallel symbolic execution on cluster of commodity hardware |
US8839348B2 (en) * | 2011-10-05 | 2014-09-16 | International Business Machines Corporation | Effective testing of authorization logic of web components which utilize claims-based authorization |
US8949839B2 (en) | 2012-07-26 | 2015-02-03 | Centurylink Intellectual Property Llc | Method and system for controlling work request queue in a multi-tenant cloud computing environment |
US20140068621A1 (en) * | 2012-08-30 | 2014-03-06 | Sriram Sitaraman | Dynamic storage-aware job scheduling |
US9317323B2 (en) * | 2012-12-26 | 2016-04-19 | Microsoft Technology Licensing, Llc | Dynamic execution log in a distributed system |
US8621062B1 (en) * | 2013-03-15 | 2013-12-31 | Opscode, Inc. | Push signaling to run jobs on available servers |
US9456014B2 (en) | 2014-12-23 | 2016-09-27 | Teradata Us, Inc. | Dynamic workload balancing for real-time stream data analytics |
US10514994B2 (en) * | 2015-06-09 | 2019-12-24 | Satori Worldwide, Llc | Distributed scalable workload testing |
US20160364307A1 (en) * | 2015-06-09 | 2016-12-15 | Machine Zone, Inc. | Distributed scalable workload testing |
CN105446818B (zh) * | 2015-12-18 | 2019-01-11 | 华为技术有限公司 | 一种业务处理的方法、相关装置以及系统 |
CN105760219B (zh) * | 2016-01-29 | 2019-02-12 | 中国人民解放军信息工程大学 | 基于多Agent分布式调度的并行符号执行系统 |
US10877796B1 (en) | 2016-06-28 | 2020-12-29 | Amazon Technologies, Inc. | Job execution with scheduled reserved compute instances |
US11281498B1 (en) * | 2016-06-28 | 2022-03-22 | Amazon Technologies, Inc. | Job execution with managed compute environments |
US10346289B2 (en) | 2016-06-30 | 2019-07-09 | International Business Machines Corporation | Run time workload threshold alerts for customer profiling visualization |
US10540265B2 (en) | 2016-06-30 | 2020-01-21 | International Business Machines Corporation | Using test workload run facts and problem discovery data as input for business analytics to determine test effectiveness |
US10380010B2 (en) | 2016-06-30 | 2019-08-13 | International Business Machines Corporation | Run time and historical workload report scores for customer profiling visualization |
KR102145795B1 (ko) * | 2016-09-07 | 2020-08-19 | 한국전자통신연구원 | 복수의 워커 노드가 분산된 환경에서 데이터 스트림을 분석하고 처리하는 방법 및 장치, 그리고 태스크를 관리하는 방법 및 장치 |
US10255162B2 (en) * | 2016-09-08 | 2019-04-09 | International Business Machines Corporation | Using customer profiling and analytics to understand customer environment and workload complexity and characteristics by industry |
US10586242B2 (en) | 2016-09-08 | 2020-03-10 | International Business Machines Corporation | Using customer profiling and analytics to understand customer workload complexity and characteristics by customer geography, country and culture |
US10592911B2 (en) | 2016-09-08 | 2020-03-17 | International Business Machines Corporation | Determining if customer characteristics by customer geography, country, culture or industry may be further applicable to a wider customer set |
US10684939B2 (en) | 2016-09-08 | 2020-06-16 | International Business Machines Corporation | Using workload profiling and analytics to understand and score complexity of test environments and workloads |
US10467128B2 (en) | 2016-09-08 | 2019-11-05 | International Business Machines Corporation | Measuring and optimizing test resources and test coverage effectiveness through run time customer profiling and analytics |
US10521751B2 (en) | 2016-09-08 | 2019-12-31 | International Business Machines Corporation | Using customer profiling and analytics to understand, rank, score, and visualize best practices |
US10423579B2 (en) | 2016-09-08 | 2019-09-24 | International Business Machines Corporation | Z/OS SMF record navigation visualization tooling |
US10643168B2 (en) | 2016-09-08 | 2020-05-05 | International Business Machines Corporation | Using customer and workload profiling and analytics to determine, score, and report portability of customer and test environments and workloads |
US10664786B2 (en) | 2016-09-08 | 2020-05-26 | International Business Machines Corporation | Using run time and historical customer profiling and analytics to determine customer test vs. production differences, and to enhance customer test effectiveness |
US10621072B2 (en) | 2016-09-14 | 2020-04-14 | International Business Machines Corporation | Using customer profiling and analytics to more accurately estimate and generate an agile bill of requirements and sprints for customer or test workload port |
US10628840B2 (en) | 2016-09-14 | 2020-04-21 | International Business Machines Corporation | Using run-time and historical customer profiling and analytics to determine and score customer adoption levels of platform technologies |
US10643228B2 (en) | 2016-09-14 | 2020-05-05 | International Business Machines Corporation | Standardizing customer and test data and information collection for run time and historical profiling environments and workload comparisons |
US10394701B2 (en) | 2016-09-14 | 2019-08-27 | International Business Machines Corporation | Using run time and historical customer profiling and analytics to iteratively design, develop, test, tune, and maintain a customer-like test workload |
WO2018068867A1 (en) * | 2016-10-14 | 2018-04-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Time-parallelized integrity testing of software code |
US20180115600A1 (en) * | 2016-10-26 | 2018-04-26 | American Express Travel Related Services Company, Inc. | System and method for health monitoring and task agility within network environments |
US10185645B2 (en) | 2017-03-08 | 2019-01-22 | Microsoft Technology Licensing, Llc | Resource lifetime analysis using a time-travel trace |
US9959194B1 (en) | 2017-03-08 | 2018-05-01 | Microsoft Technology Licensing, Llc | Indexing a trace by insertion of memory snapshots for replay responsiveness |
US9940369B1 (en) | 2017-03-08 | 2018-04-10 | Microsoft Technology Licensing, Llc | Searching an indexed time-travel trace |
US9983978B1 (en) * | 2017-03-08 | 2018-05-29 | Microsoft Technology Licensing, Llc | Querying an indexed time-travel trace |
US9934127B1 (en) | 2017-03-08 | 2018-04-03 | Microsoft Technology Licensing, Llc | Indexing a trace by insertion of key frames for replay responsiveness |
US9934126B1 (en) | 2017-03-08 | 2018-04-03 | Microsoft Technology Licensing, Llc | Indexing a trace by insertion of reverse lookup data structures |
WO2018187160A1 (en) * | 2017-04-07 | 2018-10-11 | Satori Worldwide, Llc | Distributed scalable workload testing |
CN108694118B (zh) * | 2017-04-11 | 2021-10-01 | 北京京东尚科信息技术有限公司 | 一种应用测试方法和装置 |
US10282274B2 (en) | 2017-06-14 | 2019-05-07 | Microsoft Technology Licensing, Llc | Presenting differences between code entity invocations |
CN108182111B (zh) * | 2018-01-23 | 2022-07-15 | 百度在线网络技术(北京)有限公司 | 任务调度系统、方法和装置 |
US10698737B2 (en) * | 2018-04-26 | 2020-06-30 | Hewlett Packard Enterprise Development Lp | Interoperable neural network operation scheduler |
CN109344342B (zh) * | 2018-12-17 | 2021-04-09 | 北京百度网讯科技有限公司 | 地图数据检索方法、装置、检索服务器及系统 |
JP7200659B2 (ja) * | 2018-12-21 | 2023-01-10 | 富士通株式会社 | 決定方法、決定装置及び決定プログラム |
JP2021170289A (ja) * | 2020-04-17 | 2021-10-28 | 富士通株式会社 | 情報処理システム、情報処理装置およびプログラム |
JP2023056953A (ja) * | 2021-10-08 | 2023-04-20 | 株式会社日立製作所 | 不具合解析装置及び不具合解析方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2297994A1 (en) * | 2000-02-04 | 2001-08-04 | Ibm Canada Limited-Ibm Canada Limitee | Automated testing computer system components |
US20080082969A1 (en) | 2006-04-04 | 2008-04-03 | The Board Of Trustees Of The University Of Illinois | Software Testing Technique Supporting Dynamic Data Structures |
US7945416B2 (en) | 2006-04-12 | 2011-05-17 | Ati Technologies, Ulc | Software or hardware test apparatus and method |
US20090025004A1 (en) * | 2007-07-16 | 2009-01-22 | Microsoft Corporation | Scheduling by Growing and Shrinking Resource Allocation |
US8266598B2 (en) * | 2008-05-05 | 2012-09-11 | Microsoft Corporation | Bounding resource consumption using abstract interpretation |
US8359576B2 (en) | 2008-11-14 | 2013-01-22 | Fujitsu Limited | Using symbolic execution to check global temporal requirements in an application |
US8141097B2 (en) * | 2008-12-10 | 2012-03-20 | International Business Machines Corporation | Test management system and method |
-
2010
- 2010-11-30 US US12/957,387 patent/US8763001B2/en active Active
-
2011
- 2011-10-24 EP EP11186371.8A patent/EP2447838B1/en active Active
- 2011-10-28 JP JP2011237624A patent/JP5845809B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP2447838B1 (en) | 2017-06-28 |
US20120110589A1 (en) | 2012-05-03 |
EP2447838A1 (en) | 2012-05-02 |
US8763001B2 (en) | 2014-06-24 |
JP2012099107A (ja) | 2012-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5845809B2 (ja) | 知的且つ動的なロードバランシングによる、分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化の手法 | |
JP5845812B2 (ja) | 分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化のためのポリシーのスケジューリング | |
JP5845811B2 (ja) | 分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化のための動的且つ知的な部分的計算管理 | |
JP5845813B2 (ja) | 分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化のためのノードの計算の初期化手法 | |
JP5845810B2 (ja) | 分散コンピューティング環境におけるソフトウェアの解析の並列化のための効率的な部分計算 | |
US7467291B1 (en) | System and method for calibrating headroom margin | |
US20060112388A1 (en) | Method for dynamic scheduling in a distributed environment | |
US9606899B1 (en) | Software testing using shadow requests | |
US20070250630A1 (en) | Method and a system of generating and evaluating potential resource allocations for an application | |
US20090083717A1 (en) | Benchmark profiling for distributed systems | |
US20130007244A1 (en) | Optimizing provisioning workflows in cloud computing | |
US20210117280A1 (en) | Method, device, and computer program product for scheduling backup jobs | |
Shperberg et al. | Allocating planning effort when actions expire | |
Della Vedova et al. | Probabilistic provisioning and scheduling in uncertain cloud environments | |
WO2012165937A1 (en) | System and method for optimizing physical resources of virtual machines | |
Lattuada et al. | Optimal resource allocation of cloud-based spark applications | |
JP2010224754A (ja) | リソース割当装置、リソース割当方法、及びプログラム | |
Foroni et al. | Moira: A goal-oriented incremental machine learning approach to dynamic resource cost estimation in distributed stream processing systems | |
Antonescu et al. | Improving management of distributed services using correlations and predictions in SLA-driven cloud computing systems | |
Wu et al. | Latency modeling and minimization for large-scale scientific workflows in distributed network environments | |
Bardhan et al. | A contention aware hybrid evaluator for schedulers of big data applications in computer clusters | |
Patil | Enhancing Static Auto-scaling Approach to Mitigate Resource Over-Provisioning in Cloud Computing | |
Fourati et al. | Cloud Elasticity: VM vs container: A Survey | |
KR100856468B1 (ko) | 임베디드 소프트웨어의 객체지향 태스크 모델을멀티프로세서 시스템 온 칩 하드웨어 아키텍처로 자동할당하기 위한 방법 | |
Zhang et al. | Tuning adaptive computations for the performance improvement of applications in JEE server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140704 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150310 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150416 |
|
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: 20151027 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151109 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5845809 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |