(57)【要約】      （修正有）【課題】機械学習を用いる分散コンピューティング診断の方法を提供する。【解決手段】分散型コンピューティングシステムにおいて実行されるジョブの中の複数のタスクの個々の実行時間を分析して、複数のタスクのうちのサブセットがｓｔｒａｇｇｌｅｒタスクであることを決定するために、機械学習が利用する。教師あり機械学習アルゴリズムは、複数のタスクの性能属性を含む入力セットを用いて実行され、ｓｔｒａｇｇｌｅｒタスクセットの決定から生成されるラベルを使用する。性能属性は、ジョブの実行中に観測される複数のタスクの個々の属性を含む。教師あり機械学習アルゴリズムの適用は、複数のタスクの性能属性に基づく、ジョブの中のどのタスクがｓｔｒａｇｇｌｅｒタスクであるかを示す条件を定めるルールセットの識別を生じる。ルールデータは、ルールセットを記述するために生成される。【選択図】図５
2018169989.tif 000002
【特許請求の範囲】
【請求項１】
分散型コンピューティングシステムにおいて実行されるジョブの中の複数のタスクの個々の実行時間を分析するステップであって、前記ジョブの中のｓｔｒａｇｇｌｅｒタスクセットを有する前記複数のタスクのうちのサブセットを決定し、前記分散型コンピューティングシステムは、複数のコンピューティング装置を有する、ステップと、
前記複数のタスクの性能属性を有する入力セットを用いて教師あり機械学習アルゴリズムを実行するステップであって、前記教師あり機械学習アルゴリズムは、前記ｓｔｒａｇｇｌｅｒタスクセットの決定から生成されるラベルを用い、前記性能属性は、前記ジョブの実行中に観測される前記複数のタスクの個々の属性を有し、前記教師あり機械学習アルゴリズムの適用は、前記複数のタスクの前記性能属性に基づく、ジョブの中でどのタスクがｓｔｒａｇｇｌｅｒタスクであるかを示す条件を定めるルールセットの識別を生じる、ステップと、
前記ルールセットを記述するためにルールデータを生成するステップと、
を有する方法。
【請求項２】
前記複数のタスクの前記実行時間を分析して、前記ｓｔｒａｇｇｌｅｒタスクセットを決定するステップは、教師なし機械学習アルゴリズムへの入力として前記実行時間を提供するステップを有する、請求項１に記載の方法。
【請求項３】
前記教師なし機械学習アルゴリズムは、クラスタリングアルゴリズムを有し、前記クラスタリングアルゴリズムの結果は、前記タスクの前記個々の実行時間に基づき前記複数のタスクを複数のクラスタにクラスタリングし、前記ラベルは前記複数のクラスタに対応する、請求項２に記載の方法。
【請求項４】
前記複数のタスクの前記実行時間を分析して、前記ｓｔｒａｇｇｌｅｒタスクセットを決定するステップは、前記複数のクラスタのうちの１つのクラスタを前記ｓｔｒａｇｇｌｅｒタスクセットを表すとして識別するステップを更に有する、請求項３に記載の方法。
【請求項５】
前記複数のタスクの前記実行時間を分析して、前記ｓｔｒａｇｇｌｅｒタスクセットを決定するステップは、前記複数のクラスタのうちの２以上を前記ｓｔｒａｇｇｌｅｒタスクセットを表すとして識別するステップを更に有する、請求項３に記載の方法。
【請求項６】
前記クラスタリングアルゴリズムは、ｋ平均クラスタリングアルゴリズムを有する、請求項３に記載の方法。
【請求項７】
前記教師あり機械学習アルゴリズムは、決定株利用アルゴリズムを有する、請求項１に記載の方法。
【請求項８】
前記決定株利用アルゴリズムは、
前記性能属性から、各々のタスクの全ての不可分条件を決定するステップと、
前記不可分条件を結合して、各々のタスクの全ての２不可分条件の組合せを生成するステップであって、前記ルールセットは、前記不可分条件及び２不可分条件の組合せを有する検索空間から決定される、ステップと、
を有する、請求項７に記載の方法。
【請求項９】
前記性能属性は、性能カウンタ属性及びリソース割り当て属性を有する、請求項１に記載の方法。
【請求項１０】
前記リソース割り当て属性は、前記対応するタスクに割り当てられる前記分散型コンピューティングシステムの中の個々のコンピューティング装置の属性を識別する、請求項９に記載の方法。
【請求項１１】
前記性能カウンタ属性は、中央処理ユニット（ＣＰＵ）レート、基準メモリ使用量、割り当てられたメモリ、未マッピングページキャッシュ、合計ページキャッシュ、ディスクＩ／Ｏ時間、ローカルディスク空間使用量、のうちの１又は複数を有する、請求項９に記載の方法。
【請求項１２】
前記ルールデータは、自動生成された、前記ルールセットの各々の人間可読記述を有する、請求項１に記載の方法。
【請求項１３】
前記ルールデータは、分散型コンピューティングシステムにおけるジョブの将来の実行の中でタスクの割り当てを指示するために処理される機械解析可能コードを有する、請求項１に記載の方法。
【請求項１４】
分散型コンピューティングシステムにおけるジョブの前記将来の実行は、前記複数のタスクを有する前記ジョブの将来の実行を有する、請求項１３に記載の方法。
【請求項１５】
前記ジョブの前記将来の実行は、異なる複数のコンピューティング装置を利用する、請求項１３に記載の方法。
【請求項１６】
前記ラベルの一部は、前記複数のタスクの中のタスクをｓｔｒａｇｇｌｅｒタスクとしてラベル付けし、前記ラベルの別の部分は、前記複数のタスクの中の他のタスクを非ｓｔｒａｇｇｌｅｒタスクとしてラベル付けする、請求項１に記載の方法。
【請求項１７】
請求項１乃至１６のいずれか一項に記載の方法を実行する手段を有するシステム。
【請求項１８】
前記手段は、格納された命令を有する少なくとも１つの機械アクセス可能記憶媒体を有し、前記命令は、機械において実行されると、前記機械に請求項１乃至１６のいずれか一項に記載の方法を実行させる、請求項１７に記載のシステム。
【請求項１９】
コンピューティング装置を使用して、分散型コンピューティングシステムにおいて実行されるジョブの中の複数のタスクの個々の実行時間を分析するステップであって、前記ジョブの中のｓｔｒａｇｇｌｅｒタスクセットを有する前記複数のタスクのうちのサブセットを決定し、前記分散型コンピューティングシステムは、複数のコンピューティング装置を有する、ステップと、
コンピューティング装置を使用して、前記複数のタスクの性能属性を有する入力セットを用いて教師あり機械学習アルゴリズムを実行するステップであって、前記教師あり機械学習アルゴリズムは、前記ｓｔｒａｇｇｌｅｒタスクセットの決定から生成されるラベルを用い、前記性能属性は、前記ジョブの実行中に観測される前記複数のタスクの個々の属性を有し、前記教師あり機械学習アルゴリズムの適用は、前記複数のタスクの前記性能属性に基づく、ジョブの中でどのタスクがｓｔｒａｇｇｌｅｒタスクであるかを示す条件を定めるルールセットの識別を生じる、ステップと、
前記コンピューティング装置において、前記ルールセットを記述するためにルールデータを生成するステップと、
を有する方法。
【請求項２０】
少なくとも１つのプロセッサと、
少なくとも１つのメモリ要素と、
前記少なくとも１つのプロセッサにより実行可能な教師なし機械学習モジュールであって、
複数の装置を有する分散型コンピューティングシステムを用いて完了されるジョブの複数のタスクの実行時間を識別する第１入力セットを受信し、
教師無しクラスタリングアルゴリズムを前記第１入力セットに適用して、前記実行時間に基づき複数のクラスタを生成し、前記複数のクラスタの各々は、前記複数のタスクのうちの少なくとも１つを有し、
前記複数のクラスタのうちの少なくとも特定クラスタを、前記ジョブの中のｓｔｒａｇｇｌｅｒタスクを表すとして指定し、
前記複数のタスクの各々に対応するラベルを生成し、前記ラベルは前記特定クラスタの中のタスクをｓｔｒａｇｇｌｅｒタスクとして指定する、
教師なし機械学習モジュールと、
前記少なくとも１つのプロセッサにより実行可能な教師あり機械学習モジュールであって、
前記ラベルと、前記複数のタスクの性能属性を有する第２入力セットと、を受信し、前記性能属性は、前記ジョブの実行中に観測される前記複数のタスクの個々の属性を有し、
前記ラベルに基づき前記第２入力セットに決定株利用アルゴリズムを適用して、ルールセットを決定し、前記ルールセットは、前記性能属性に基づき、ジョブの中のどのタスクがｓｔｒａｇｇｌｅｒタスクであるかを示す条件を定める、
教師あり機械学習モジュールと、
を有するシステム。
【請求項２１】
１又は複数のコンピュータにより実行される監視要素であって、前記複数のタスクの性能を監視し、前記実行時間及び性能属性を識別する監視データを生成する、監視要素、を更に有する請求項２０に記載のシステム。
【請求項２２】
前記複数の装置は異種装置を有する、請求項２０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、コンピュータシステムに関し、より具体的には、機械学習を用いる分散コンピューティング診断に関する。
【背景技術】
【０００２】
インターネットは、全世界に渡り異なるコンピュータネットワークの相互接続を可能にしてきた。これまで、インターネット接続性は、伝統的な汎用目的コンピューティングシステムに限定されていたが、インターネットを含むコンピュータネットワークを介した他の装置との接続性に対応するために再設計されている製品の数及び種類が増大している。例えば、スマートフォン、タブレットコンピュータ、ウェアラブル機器、及び他のモバイルコンピューティング装置は、非常に一般的になっており、近年の伝統的なデスクトップコンピュータのような、より大きな、より伝統的な汎用目的コンピューティング装置の地位を奪い取っている。汎用目的コンピュータで従来実行されたタスクは、次第に、小さな寸法且つより限られた特徴セット及びオペレーティングシステムを有するモバイルコンピューティング装置を用いて実行されている。さらに、伝統的な機器及び装置は、それらがユビキタスになりインターネットに接続し及びインターネットからのコンテンツを消費する機能を備えられるにつれ、「よりスマートに」なってきている。例えば、テレビ、ゲームシステム、家庭用電気機器、サーモスタット、自動車、腕時計のような装置は、ネットワークアダプタを取り付けられて、該装置はインターネット（又は別の装置）に、直接に又はネットワークに接続された別のコンピュータとの接続を通じて、接続できるようになる。さらに、相互接続された装置のこの増大する母集団は、増大する計算能力及び新しいアプリケーションを実現するために協働し得る分散型コンピューティングシステムを実現する機会の増大も手伝っている。
【図面の簡単な説明】
【０００３】
【図１Ａ】例示的なジョブ分析システムを含むシステムの一実施形態を示す。
【図１Ｂ】クラウドコンピューティングネットワークの一実施形態を示す。
【図２】例示的なジョブ分析システム及びジョブ管理システムを含むシステムの一実施形態を示す。
【図３】例示的なジョブ分析システムを含むフローを示す簡略ブロック図である。
【図４】例示的なジョブ分析システムの使用を示す簡略ブロック図である。
【図５】分散型コンピューティングシステムにおいてタスクを分析する例示的な技術を示すフローチャートである。
【図６】一実施形態に従う、例示的なプロセッサのブロック図である。
【図７】一実施形態に従う、例示的なコンピューティングシステムのブロック図である。  種々の図面を通じて同様の参照符号及び記号は同様の要素を示す。
【発明を実施するための形態】
【０００４】
図１Ａは、分散型コンピューティング環境と一緒に使用され得るコンピューティング装置（例えば、１０５ａ〜ｃ、１３５ａ〜ｃ、等）を含むシステム１００の簡略表現を示すブロック図である。種々のコンピューティング装置は、同じ種類の装置のインスタンスであって良く、又は異種装置であって良く、これらは、特定の目標又は目的を達成するために互いに（例えば、１又は複数のネットワーク１４０を介して）接続する又は通信する能力を有する。ジョブ管理システム１２０は、例示的な分散型コンピューティングシステムの中のコンピューティング装置の連携を編成するために設けられて良い。幾つかの例では、分散型コンピューティングシステムの中に参加している装置は、特に、（例えば別個のシステムとして設けられるジョブ管理システムではなく）ジョブ管理システム１２０の機能を提供して良い。
【０００５】
幾つかの実装では、１又は複数のジョブが定められ、例示的な分散型コンピューティングシステムに提供されて良い。ここで、ジョブはタスクセットにより構成され、タスクは、個々の装置を用いて完了するために分散型コンピューティングシステムの中の個々の装置に分散されて良い。この方法では、単一のジョブは、並列に動作する複数の別個の装置により処理され完了されて良く、ジョブはより迅速に又はシステムの中のコンピューティング装置のより柔軟な利用を通じて完了できる。ユーザインタフェースは、例示的なジョブ管理システム１２０に接続されて設けられて良い。ユーザインタフェースを通じて、ユーザは（例えば、ユーザ装置（例えば、１３０ａ〜ｃ）を通じて）分散型コンピューティングシステムによる実行のためにジョブを定めて良い。ジョブ管理システム１２０は、ジョブ管理システム１２０が、分散型コンピューティングシステムの中に含まれる又はその中で利用され得る特定のコンピューティング装置のうちの１又は複数への見通しを有することができる機能を更に備えられて良い。ジョブ管理システム１２０は、ジョブ管理システム１２０（及び／又はその人間のユーザ）が分散型コンピューティングシステムの中の種々の装置の計算リソース（例えば、プロセッサ、メモリ、Ｉ／Ｏ、ネットワーク通信、及びタスクを完了するために使用され得る他のリソース）の相対的可用性をどのように認識するかに従い、ジョブのタスクの割り当てを分散させるために、この見通しに基づきルール又は設定を定めて良い。これは、（ジョブの中で装置が実行するタスクの種類及び数の観点で）他より重い負荷を負っている幾つかの装置を生じ得る。
【０００６】
幾つかの例では、分散型コンピューティングシステムの中の種々の装置へのタスクの割り当ては、準最適でる場合がある。例えば、タスクの割り当ては、装置の計算能力又はジョブの中で指定される種々のタスクの必要の誤った又は不正確な仮定に基づくことがある。幾つかの例では、このような不効率及び欠陥は、解明することが困難な場合がある。幾つかの実装では、特定の分散型コンピューティングシステムによるジョブの性能を分析する機能を備えられるジョブ分析システム１２５は、ジョブの実行に伴う問題を診断する。例えば、ジョブの中の幾つかのタスクは、他より完了するのに長くかかることがあり、ジョブの最終的な終結を遅らせる「ｓｔｒａｇｇｌｅｒ」として動作する。幾つかの実装では、ジョブ分析システム１２５は、診断結果を導出するために、分散型コンピューティング装置によるジョブの実行を記述する性能データを受け付ける機械学習機能を備えられて良い。これは、特にジョブ管理システム（例えば、１２０）のタスク割り当て及び他のジョブ管理機能を向上し又は拡張するために使用されて良い。
【０００７】
分散型コンピューティングシステムは、種々の異なる装置により構成されて良い。幾つかの実装では、特定ジョブのタスクは、複数のサーバシステム（例えば、１３５ａ〜ｃ）の間で（例えば、均等に又は能力に基づき不均等に）分散されて良い。幾つかの実装では、このようなシステム（例えば、１３５ａ〜ｃ）は、専ら、例示的なジョブ管理システム１２０により管理される種々のジョブの種々のタスクを処理する際の使用に専用の又はそのために設けられる計算リソースを備えられて良い。他の例では、サーバシステム（例えば、１３５ａ〜ｃ）は、その主な目的又は負荷が分散型コンピューティングシステムに対して選出されたジョブの外に定められるシステムを有して良い。このような例では、サーバシステムは、分散型コンピューティングシステムの中での使用のための自身の主目的を提供し及び分散型コンピューティングシステムにより実行されるジョブの中で定められるタスクのサブセットを処理した後に、自身の有する任意の追加計算リソースを利用可能にしても良い。実際に、幾つかの例では、汎用目的又は専用コンピューティング装置は、両方とも、（例えば、特定のネットワーク又は環境の中での）主な役割を提供して良いが、分散型コンピューティング環境により実行されるべきジョブのタスクを処理するために（装置において能力が利用可能なときに）利用可能にされて良い。このような装置は、例えば、特に、ユーザコンピューティング装置（例えば、１３０ａ〜１３０ｃ）、センサ又はＩｏＴ（Internet  of  Things）エンドポイント装置（例えば、１０５ａ〜１０５ｃ）、他のエッジコンピューティング装置、を有して良い。分散型コンピューティングシステムは、他の例示的なシステムの中でも特に、図１の例で示され説明された装置（例えば、１０５ａ〜１０５ｃ、１３０ａ〜１３０ｃ、１３５ａ〜ｃ）を含む異なる装置の異種混合により構成される可能性があって良い。
【０００８】
エッジ装置の場合、数百万個ものセンサ装置及びアクチュエータ装置が展開されることがあり、その各々は（対応するＩｏＴシステムの中の特定機能のような）特定目的機能のために主に供され得る計算リソースを備えられるが、分散型コンピューティングシステムの中の種々のジョブの実行の際に支援するために役立てられ及び集約される場合もあることが理解される。これは、例えば、特に、ジョブがこれらの同じエンドポイント装置に又は該装置のより大きなＩｏＴソリューションに関連するジョブにローカルな、それにより生成される、又はそれに直ちに利用可能なデータの処理を含むとき、特に有益であり得る。
【０００９】
幾つかの実装では、エッジ装置（例えば、１０５ａ〜ｃ）は、各々の装置１０５ａ〜ｃが環境の中の１又は複数の他の装置（例えば、１０５ａ〜ｃ）又はシステムと相互運用することを可能にするために、コンピュータプロセッサ及び／又は通信モジュールを有して良い。各々の装置は、機械対機械、又はＩｏＴ（Internet  of  Things）システム若しくはアプリケーションの中で（例えば、他の装置又はソフトウェアにより）活用され又は利用され得る様々な種類のセンサ（例えば、１１０ａ〜ｃ）、アクチュエータ（例えば、１１５ａ〜ｂ）、記憶装置、電源、コンピュータ処理、及び通信機能の１又は複数のインスタンスを更に有することができる。幾つかの例では、装置間通信及びＩｏＴアプリケーションの展開さえも、装置のうちの１又は複数（例えば１０５ａ〜ｃ）が通信し１又は複数のネットワーク（例えば１４０）の中の他の装置及びシステムへのアクセスを得る１又は複数のゲートウェイ装置（例えば１５０）により容易にされて良い。同じ通信設備は、装置（例えば１５０ａ〜ｃ）の（例えば、ジョブ管理システム１２０により管理される）分散型コンピューティング装置への参加を可能にするために活用されて良い。
【００１０】
例示的なエッジ装置（例えば１０５ａ〜ｃ）のセンサ又はセンサ提供者は、それらが存在し、取り付けられ、又は連絡する、環境の特性を記述するセンサデータを検出し、測定し、及び生成することができて良い。例えば、所与のセンサ（例えば、１１０ａ〜ｃ）は、特に、動き、重さ、物理的接触、温度、風、雑音、光、コンピュータ通信、無線信号、位置、湿度、放射の存在、液体、又は特定の化学組成のような１又は複数の個々の特性を検出するよう構成されて良い。実際に、本願明細書に記載のようなセンサ（例えば、１１０ａ〜ｃ）は、それぞれ新しい及び知られている環境特性を検出し及びそれについての対応するセンサデータを生成するために指定された及びその能力のある、種々のセンサの可能な無限の母集団の展開を期待している。アクチュエータ（例えば、１１５ａ〜ｂ）は、装置が、その環境に影響を与えるために、ある種の動作を実行可能にできる。例えば、装置のうちの１又は複数（例えば、１０５ａ、ｃ）は、入力を受け付け及び応答してその個々の動作を実行する１又は複数の個々のアクチュエータ（例えば、１１５ａ〜ｂ）を有して良い。幾つかの例では、センサ装置により生成される生センサデータを使用し及びそれに反応する代わりに、アクチュエータは、このセンサデータの中間処理から生成された結果に対して作用して良い。幾つかの例では、センサデータの処理は、分散型コンピューティングシステムにより処理されるジョブとして実施されて良い。したがって、幾つかの例では、分散型コンピューティングジョブは、（種々の他の例示的なアプリケーションの中でも）例示的なＩｏＴシステムの中の装置のアクチュエータに提供される結果を生成して良い。アクチュエータは、アクチュエータに、特にアラーム、カメラ（又は他のセンサ）、加熱、換気、及び空調（ＨＶＡＣ）機器、家電、車内装置、照明の電力又は動作を選択的にトグルさせるような、追加機能を起動する制御部を有し得る。
【００１１】
ＩｏＴシステムは、１又は複数の結果又は成果物を供給するために相互運用し及び相乗作用を与える複数の異なる装置により構成される新しい又は向上したアドホックシステム及びネットワークを表し得る。このようなアドホックシステムは益々多くの製品として出現しており、機器は発展して、それらがコンピューティングプロセッサにより制御され又は監視され、及び他のコンピューティング装置（及びネットワーク通信能力を有する製品）と通信する機能を備えられる点で、「スマート」になってきている。例えば、ＩｏＴシステムは、機器、おもちゃ、道具、車両等のような「物（things）」に及び生物（例えば、植物、動物、人間、等）にさえ統合され又は取り付けられるセンサ及び通信モジュールから構築されるネットワークを含み得る。幾つかの例では、ＩｏＴシステムは、元来又は予想外に、種々の事柄及び関連する環境を監視する及びデータ分析システム及び／又は１又は複数の他のスマート装置を制御するシステムと相互接続するセンサの集合を備えて展開し、予め知られていない使用例を含む種々の使用例及び用途を可能にできる。さらに、ＩｏＴシステムは、これまで互いに連絡していなかった装置から形成でき、システムは、自然に又はオンザフライで（例えば、相互作用を定め又は制御するＩｏＴアプリケーションに従い）作られ及び自動的に構成される。さらに、ＩｏＴシステムは、変化するエンティティグループに起点を置く又はそれにより制御され及び多様なハードウェア、オペレーティングシステム、ソフトウェアアプリケーション、及び技術を利用する装置のような、接続された装置（例えば、１０５ａ〜ｃ）の複雑な及び多様な集合から構成される場合が多い。幾つかの例では、ＩｏＴシステムの中で集められたデータの処理は、ＩｏＴシステム（例えば、参加するために十分な計算能力を備える装置）の中の装置（例えば、１０５ａ〜ｃ）を用いて分散型コンピューティングシステムを構築することにより、処理されて良く、このような処理に対応するジョブが定められて良い。
【００１２】
図１の例に示すように、ユーザ装置（例えば、１３０ａ〜ｃ）、ＩｏＴ装置（例えば、１０５ａ〜ｃ）、及び他のコンピューティング装置は、例示的な分散型コンピューティング環境の中で利用されて良い。例えば、コンピューティング装置は、スマートフォン又はタブレット装置、ウェアラブルコンピューティング装置（例えば、スマートウォッチ、スマートガーメント、スマートグラス、スマートヘルメット、ヘッドセット、等）のようなモバイルパーソナルコンピューティング装置、特定目的装置、及び、家庭、建物、車両自動化装置（例えば、スマート熱交換空調（ＨＶＡＣ）制御部及びセンサ、照明検出及び制御部、エネルギ管理ツール、等）、スマート家電（例えば、スマートテレビジョン、スマート冷蔵庫、等）のような非従来型コンピュータ拡張製品、のような例を含み得る。幾つかの装置は、特に、気象監視に関連する複数のセンサ（例えば、温度、風、湿度センサ、等）を含む気象センサ装置、交通センサ及び制御部のような、センサ及び／又はアクチュエータリソースをホスティングするための特定目的であり得る。幾つかの装置は、建物内に、街灯柱、標識、給水塔に固定的に、床（例えば、屋内又は屋外）に肯定され、又は他の固定若しくは静的構造に配置されて良い。他の装置は、特に、車両の内部又は外部に設けられるセンサ、パッケージ内センサ（例えば、貨物を追跡する）、活動する人間若しくは動物ユーザにより装着されるウェアラブル装置、アンテナ、地上若しくは水中無人飛行機、のようにモバイルであって良い。実際に、幾つかのセンサが環境内を移動し、特に、移動及び静止装置の両方を巻き込む使用例を含む、このような装置を用いる移動する対象又は変化する環境を含む使用例に関して用途が構築できる。
【００１３】
１又は複数のネットワーク（例えば、１４０）は、コンピューティング装置（例えば、１０５ａ〜ｃｍ、１３０ａ〜ｃ、１３５ａ〜ｃ、等）、ジョブ管理システム１２０、ジョブ分析システム１２５、ゲートウェイ（例えば、ＩｏＴシステムのための）、及び分散型コンピューティングシステムを実装し、管理し及びサポートする他のシステムの間の通信を助けることができる。このようなネットワークは、有線及び／又は無線ローカルネットワーク、公衆ネットワーク、広域ネットワーク、ブロードバンドセルラネットワーク、インターネット、等を含み得る。
【００１４】
一般に、例示的なコンピューティング環境１００の中にある「サーバ」、「クライアント」、「コンピューティング装置」、「ネットワーク要素」、「ホスト」、「システムタイプシステムエンティティ」、「ユーザ装置」、「ゲートウェイ」、「ＩｏＴ装置」、「センサ装置」、「サーバ」、及び「システム」（例えば、１０５ａ〜ｃ、１２０、１２５、１３０ａ〜ｃ、１３５ａ〜ｃ、等）は、コンピューティング環境１００に関連するデータ及び情報を受信し、送信し、処理し、格納し、又は管理するよう動作する。本願明細書で使用されるとき、用語「コンピュータ」、「プロセッサ」、「プロセッサ装置」、又は「処理装置」は、任意の適切な処理装置を包含することを意図する。例えば、コンピューティング環境１００の中に単一の装置として示される要素は、複数のサーバコンピュータを含むサーバプールのような、複数のコンピューティング装置及びプロセッサを用いて実装されて良い。さらに、コンピューティング装置のうちの任意のもの、全部、又は一部は、Ｌｉｎｕｘ（登録商標）、ＵＮＩＸ（登録商標）、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ、Ａｐｐｌｅ  ＯＳ、Ａｐｐｌｅ  ｉＯＳ、Ｇｏｏｇｌｅ  Ａｎｄｒｏｉｄ、Ｗｉｎｄｏｗｓ  Ｓｅｒｖｅｒ、等、を含む任意のオペレーティングシステム、並びに、カスタマイズされた及び独自仕様のオペレーティングシステムを含む特定のオペレーティングシステムの実行を仮想化するために適応される仮想機械を実行するよう適応可能であって良い。
【００１５】
図１Ａは複数の要素を含む又はそれに関連付けられるとして記載されるが、図１Ａのコンピューティング環境１００の中に示される必ずしも全部の要素が本開示の各々の代替の実装方法で利用されなくて良い。さらに、図１Ａの例に関連して記載される要素のうちの１又は複数は、コンピューティング環境１００の外部に置かれて良い。一方で、他の例では、特定の要素は、他の記載される要素のうちの１又は複数の中に含まれ又はその一部として含まれて良く、他の要素は図示の実装方法において記載されない。さらに、図１Ａに示した特定の要素は、他のコンポーネントと結合され、及び本願明細書に記載の目的に加えて、代替又は追加の目的のために使用されて良い。
【００１６】
上述のように、装置又はエンドポイントの集合は、ＩＥＥＥ８０２．１１標準ファミリの下で標準化されたようなＷＬＡＮ（wireless  local  area  network）、Ｚｉｇｂｅｅ  Ａｌｌｉａｎｃｅの下で標準化されたようなホームエリアネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐにより標準化されたような個人域ネットワーク、３ＧＰＰ（Third−Generation  Partnership  Project）により標準化されたようなセルラデータネットワーク、及び無線若しくは有線接続性を有する他の種類のネットワークを利用し得るＩｏＴ（Internet−of−things）ネットワーキングに参加して良い。例えば、エンドポイント装置は、ＵＳＢ（universal  serial  bus）型接続、ＨＤＭＩ（High−Definition  Multimedia  Interface）、等のようなバスインタフェースを通じてセキュアドメインへの接続性も達成して良い。これらの同じ装置ネットワークは、例示的な分散型コンピューティングシステムを実装するために利用されて良い。
【００１７】
図１Ｂの簡略ブロック図に示すように、幾つかの例では、「フォグ（fog）」と呼ばれることのあるＩｏＴ装置（例えば１０５ａ〜ｄ）のメッシュネットワークと通信するクラウドコンピューティングネットワーク又はクラウドは、クラウドのエッジで動作して良い。図を簡単にするために、必ずしも全てのＩｏＴ装置１０５がラベル付けされない。
【００１８】
フォグ１７０は、大規模相互接続ネットワークと考えられる。多数のＩｏＴ装置１０５が、例えば無線リンク１６５により、互いに通信する。これは、ＯＣＦ（Open  Connectivity  Foundation）（商標）により２０１５年１２月２３日に発表されたＯＩＣ（open  interconnect  consortium）標準仕様１．０を用いて実行されて良い。この標準は、装置が互いを発見し相互接続のために通信を確立できるようにする。例えば、特にＯＬＳＲ（optimized  link  state  routing）プロトコル又はＢ．Ａ．Ｔ．Ｍ．Ａ．Ｎ．（better  approach  to  mobile  ad−hoc  networking）を含む他の相互接続プロトコルも使用できる。
【００１９】
本例では、３種類のＩｏＴ装置１０５、つまりゲートウェイ１５０、データアグリゲータ１７５、及びセンサ１８０が示される。しかしながら、ＩｏＴ装置１０５及び機能の任意の組合せが使用されて良い。ゲートウェイ１５０は、クラウド１６０とフォグ１７０との間の通信を提供するエッジ装置であって良く、センサ１８０のための装置を充電し及び位置を特定するよう機能しても良い。データアグリゲータ１７５は、センサ１８０の充電を提供して良く、センサ１８０の位置も特定して良い。位置、充電警報、バッテリ警報、及び他のデータは、又はそれらの両者は、ゲートウェイ１５０を通じてクラウド１６０に伝えられて良い。本願明細書に記載のように、センサ１８０は、電力、位置特定サービス、又はそれらの両者を他の装置又はアイテムに提供して良い。
【００２０】
任意のＩｏＴ装置１０５からの通信は、ゲートウェイ１５０に到達するまで、ＩｏＴ装置１０５のうちの任意のものの間の最適経路に沿って渡されて良い。これらのネットワークでは、相互接続の数は、実質的な冗長を提供し、多数のＩｏＴ装置１０５を伴っても、通信を維持できるようにする。
【００２１】
これらのＩｏＴ装置１０５のフォグ１７０は、クラウド１６０のエッジに置かれた単一の装置、例えばフォグ１７０装置として、サーバ１４５のような、クラウド１６０の中の装置に提示されて良い。本例では、フォグ１７０装置から来る警報は、フォグ１７０の中の特定のＩｏＴ装置１０５から来ていると識別されずに、送信されて良い。例えば、警報は、その警報を送信する任意の特定のデータアグリゲータ１７５を識別することなく、センサ１８０が、センサ１８０の充電及び配置のために返却される必要があることを示して良い。
【００２２】
幾つかの例では、ＩｏＴ装置１０５は、例えば特定機能を有する各々のＩｏＴ装置１０５と共に、命令型プログラミングスタイルを用いて構成されて良い。しかしながら、フォグ１７０を形成するＩｏＴ装置１０５は、宣言型プログラミングスタイルで構成されて良く、ＩｏＴ装置１０５が条件、クエリ、装置障害に応答して、自身の動作を再構成し及び必要なリソースを決定できるようにする。対応するサービスロジックは、特に、論理的に単一装置として機能する装置アセンブリを含むアドホック装置アセンブリを生成するために装置がどのように構成され得るかを指示するために提供されて良い。例えば、センサ１８０の位置に関する、サーバ１４５の位置に居るユーザからのクエリは、フォグ１７０装置が、該クエリに応えるために必要な、特定のデータアグリゲータ１７５のようなＩｏＴ装置１０５を選択することをもたらす。センサ１８０が装置に電力を供給している場合、電力需要、温度、等のようなセンサ１８０に関連するセンサは、クエリに回答するために、装置にあるセンサ又は他の装置との協力の中で使用されて良い。本例では、フォグ１７０の中のＩｏＴ装置１０５は、電力センサ又は温度センサからのデータを追加するようなクエリに基づき、特定のセンサ１８０にあるセンサを選択して良い。さらに、ＩｏＴ装置１０５のうちの幾つかが使用できない場合、例えば、データアグリゲータ１７５が故障している場合、フォグ１７０の中の他のＩｏＴ装置１０５は、代替を提供し、位置を決定可能にして良い。
【００２３】
さらに、フォグ１７０は、センサ１８０及びデータアグリゲータ１７５の相対的物理位置に基づき、自身をより小さなユニットに分割して良い。本例では、フォグ１７０の一部の中でインスタンス化されたセンサ１８０のための通信は、センサ１８０の移動経路に沿ってＩｏＴ装置１０５に伝えられて良い。さらに、センサ１８０がある位置からフォグ１７０の異なる領域にある別の位置へ移動された場合、異なるデータアグリゲータ１７５は、センサ１８０の充電ステーションとして識別されて良い。
【００２４】
一例として、センサ１８０が個人用炭化水素検出器のような化学工場で使用されるポータブル装置に電力供給するために使用される場合、装置は、倉庫又は制御室のような初期位置から、初期位置から数百フィート乃至数千フィートであり得る化学工場の中の位置へ移動されるだろう。設備全体が単一のフォグ１７０充電構造に含まれる場合、装置が移動するとき、データ、例えばセンサ１８０の設置情報は、センサ１８０のための警報及び位置機能を有するデータアグリゲータ１７５の間で交換されて良い。したがって、センサ１８０のバッテリ警報が、センサ１８０は充電される必要があることを示す場合、フォグ１７０は、ポータブル装置の中のセンサ１８０と交換する準備の整った、完全に充電されたセンサ１８０を有する最も近いデータアグリゲータ１７５を示して良い。
【００２５】
クラウドコンピューティング及び高性能コンピューティングでは、大きなジョブは、分散型コンピューティング環境の中で並列実行するために、多くの小さなタスクに分割されて良い。ジョブの中の同種タスク実行時間を通じて（又は、ジョブが異なる異種ステージから構成される場合、ジョブのステージの間）最大並列処理を達成することが望ましいが、実際のシステムでは、これは達成することが困難であり得る。例えば、このような最大並列処理は、特に、分散型コンピューティングシステムの中の装置の間のハードウェアの相違、同じ装置で同時に実行しているタスクへの制約されたリソースの優先順位付けされた動的割り当て、負荷の不均等区分、データ局所性、のような様々な理由で達成可能ではないことがある。並列処理が達成されない場合には、ジョブの中の幾つかのタスクは、ジョブの中の残りのタスクより相当に遅く完了され、それによりジョブ（又はジョブのステージ）の完了を遅延させる、「ｓｔｒａｇｇｌｅｒ」タスク（本願明細書では単に「ｓｔｒａｇｇｌｅｒ」としても参照される）として明示されて良い。ｓｔｒａｇｇｌｅｒタスクの識別及び診断は、特に、分散型コンピューティングシステムの性能を評価する際に、及びジョブ完了性能を向上させる機会を識別する際に、重要なコンポーネントであり得る。
【００２６】
伝統的データ分析ツールは、コンピューティングシステムの中で性能データを収集するために、様々なツール及びＡＰＩ（application  programming  interface）を利用している。特に、性能データのスケーラブルな表示、性能データの双方向視覚化、を実装するツールが使用されて良い。このようなツールは、生の消費にとって大きすぎ且つ複雑すぎる性能データセットを分析するために提供されて良い。しかしながら、このようなツールは、依然として、労働集約的な、間違いを起こしやすい、且つ非効率である相当の手作業による人間の分析に依存することがある。一例では、例示的なジョブ分析システムは、分散型コンピューティングシステムにより処理されるジョブの中の基礎にある低速タスクの条件を自動的に識別し及び診断する機能を備えられる。例えば、ジョブ分析システムは、ジョブの中のｓｔｒａｇｇｌｅｒタスクの診断を実行するために、教師なし学習及び教師あり学習を結合して良い。
【００２７】
一例では、例示的なジョブ分析システムは、先ず、教師なし学習技術を用いて、ジョブの中のｓｔｒａｇｇｌｅｒタスクを識別して良い。教師なしクラスタリング技術は、ジョブ（又はジョブステージ）のタスクを、それらの実行時間に基づき、クラスタにグループ分けするために用いられて良い。１又は複数のクラスタは、低速タスクに対応して識別されて良く、タスクのこれらのクラスタはｓｔｒａｇｇｌｅｒとしてラベル付けされる。その後、タスクｓｔｒａｇｇｌｅｒラベル、追加タスク性能属性、及びタスクの個々のリソース割り当てを入力として取り入れる教師ありルール学習技術が、用いられて良い。教師ありルール学習技術は、これにより、ジョブについての診断結果を提示し及びｓｔｒａｇｇｌｅｒタスクを推測する単純な且つ読み易いルールを学習して良い（タスクの割り当てメモリがγより小さい場合、タスクは「低速」である、等）。単純な且つ読み易いルールの生成を通じて、分析後調整又はオンラインリソース割り当て及びスケジューリングさえも、ジョブ完了性能を向上するために生じ得る。
【００２８】
本願明細書に示され及び図示されるシステムのようなシステムは、（特に）本願明細書で紹介されるソリューションを実装し及び上述の例示的な問題の少なくとも一部を解決するために、ハードウェア及び／又はソフトウェアの中に実装される機械ロジックを有し得る。例えば、図２は、分散型コンピューティングジョブを実行するために一緒に使用され得る複数のコンピューティング装置（例えば、１０５、１３５、２０５、等）を含むシステムを示す簡略ブロック図２００を示す。本例では、分散型コンピューティングジョブの実行を編成し及び監視し、並びに、監視中に生成される性能データに対して分析を実行し、又は（同一ジョブの将来のインスタンスを含む）将来の分散型コンピューティングジョブの中で実行され得る最適条件の識別において支援するために、例示的なジョブ管理システム１２０及びジョブ分析システム１２５が更に提供される。このような分析は、例えば特にジョブ分析システム１２５のｓｔｒａｇｇｌｅｒ診断エンジン２１０を用いて分散型コンピューティングジョブの中のｓｔｒａｇｇｌｅｒタスクを識別し及び診断するために、機械学習により実施される分析を含んで良い。
【００２９】
幾つかの実装では、ジョブ分析システム１２５は、特に、１又は複数のデータ処理装置（又は「プロセッサ」）（例えば２０６）、又は１又は複数のメモリ要素（例えば２０８）、及びｓｔｒａｇｇｌｅｒ診断エンジン２１０のようなプロセッサ２０６及び／又はハードウェア実装回路及びロジックにより実行されるコードを用いて実装されるコンポーネント、追加データ分析機能を提供するための他のエンジン（図示しない）、レポート生成器２１５、を含んで良い。一例では、ｓｔｒａｇｇｌｅｒ診断エンジン２１０は、クラスタリングエンジン２２０及びルールエンジン２２５のようなコンポーネントを有して良い。一例では、クラスタリングエンジン２２０は、タスクの監視から生成される実行記録データ２３０の中で（例えば、ジョブ監視ユーティリティ２３５により）報告される個々の実行時間に基づき、所与のジョブの中のタスクをクラスタリングするために、教師なし機械学習アルゴリズムとして実装されて良い。例えば、クラスタリングアルゴリズムが利用されて良く、報告するジョブタスクの実行時間を入力として取り入れる。例えば、クラスタリングエンジン２１０の幾つかの実装で、ｋ平均クラスタリングアルゴリズムが利用されて良い。（以下の例で議論される技術を含む）このような機械学習技術を通じて、クラスタリングエンジン２１０は、クラスタを生成し、クラスタの少なくとも一部（例えば、最長実行時間を有するタスクを有するクラスタ）をｓｔｒａｇｇｌｅｒタスクとして識別して良い。このような識別は、実行データ（及び対応するタスク）のラベル２４０として機能する。ここで、特に、幾つかのタスクはｓｔｒａｇｇｌｅｒとして、他のタスクは非ｓｔｒａｇｇｌｅｒ又は他のカテゴリ（例えば、更に精細な粒度レベルに基づき、及びｓｔｒａｇｇｌｅｒと非ｓｔｒａｇｇｌｅｒとの間のどこかに包含されるようなタスクを表す）として、ラベル付けされる。対応するラベルデータ２４０は、（観測される実行時間に基づき）クラスタリングエンジン２２０によりタスクの分類と関連して生成されて良い。
【００３０】
例示的なｓｔｒａｇｇｌｅｒ診断エンジン２１０は、ルールエンジン２２５を更に有して良い。ルールエンジン２２５は、特定の分散型コンピューティングジョブの中のタスクの性能の詳細を記述する実行記録に対して更なる機械学習タスクを実行するために、クラスタリングエンジン２２０により生成されるラベル２４０を利用して良い。ルールエンジン２２５は、一例では、教師あり機械学習技術を実行して、特定のジョブの中のｓｔｒａｇｇｌｅｒタスクを示す又はそれと正相関を有する条件及びパラメータを識別して良い。例えば、（どのタスクがｓｔｒａｇｇｌｅｒであるか及びどれがそうでないかを識別する）ラベルを用いて、ルールエンジン２２５の機械学習ロジックは、入力として、タスク（ｓｔｒａｇｇｌｅｒ及び非ｓｔｒａｇｇｌｅｒ）の各々に対応し及びタスクの各々の詳細な性能特性を記述する実行記録２３０データを取り入れて良い。このような性能特性は、ジョブの実行の中で各々のタスクにより利用される処理、メモリ、Ｉ／Ｏ、ネットワーキング、及び他の計算リソースの実際の量のような性能カウンタ情報を有して良い。性能特性は、特に、（タスクを実行する）ホスト装置が（タスクが完了するために実際に利用したものと異なって良い）タスクに割り当てる又は指定する計算リソースの識別のようなリソース割り当て特性、又は特定ホスト装置がタスクを完了するために利用した特定の属性を更に有して良い。これらの種々の性能特性は、学習アルゴリズムの中の特徴として機能して良く、ルール又は観測は、所与のジョブの中のｓｔｒａｇｇｌｅｒ（及び／又は非ｓｔｒａｇｇｌｅｒ）タスクを生じるように見える性能特性の種々の組合せを識別するために機械学習分析から生成されて良い。１つの例示的な実装では、（以下の１又は複数の例において議論されるような）決定株利用教師あり機械学習アルゴリズムは、ルールエンジンの結果の発見を記述するルールデータ２４５を生成するために、例示的なルールエンジン２２５により利用されて良い。この意味で、「ルール」は、特定タスクの中のｓｔｒａｇｇｌｅｒタスクを生じる又はその可能性のある予測条件又はルールを表して良い。しかしながら、これらの「ルール」は、特に、代わりに、ルールエンジン２２５のｓｔｒａｇｇｌｅｒタスクに基づく教師あり機械学習アルゴリズムの実行から決定される傾向及び相関の指針又は順守のみを提供して良い。
【００３１】
ルールエンジン２２５により生成されるルールデータ２４５は、幾つかの実装では、ｓｔｒａｇｇｌｅｒジョブに対する軽減及び性能分散型コンピューティングジョブをより効率的且つ最適化するために人間のユーザ及び／又は他のコンピューティングシステム（例えば、ジョブ管理システム１２０）により消費され得るルールデータ２４５（及び幾つかの例では、クラスタリング及びルールエンジン２２０、２２５の他の結果）からレポートデータを生成するために、例示的なジョブ分析システム１２５のレポート生成部２１５により利用されて良い。一例では、レポート生成部２１５は、タスクのうちの一部がなぜジョブの中のｓｔｒａｇｇｌｅｒとして明示しているかの提示と共に、（例えば、分散型コンピューティング環境の）ユーザ管理者に最近完了したジョブ（又は複数のジョブ）におけるタスクの実行時間性能を説明するために、ユーザ装置（例えば１３０）のグラフィカルユーザインタフェースの中で提示するために構成されて良いレポートデータを生成して良い。ユーザは、次に、この情報を用いて、将来のジョブがより良好に展開され得る方法を、手動で評価して良い。幾つかの例では、他の例示的な使用及び利益の中でも特に、ユーザは、これらの同じジョブの将来のインスタンスにおいてだけではなく、他の異なる分散型コンピューティングジョブにおいても適用され得る報告データから見識を得て良い。さらに、ユーザは、この情報を用いて、分散型コンピューティングシステム内のジョブの中のタスクの分散を編成するために利用されるジョブ管理システム１２０において（例えば、少なくとも部分的に）適用される特性及び設定を調整して良い。さらに他の例では、レポートデータ機械可読又は解析可能であるよう構成されて良い。ここで、幾つかのルール及び条件（例えば、ルールデータ２４５から識別される）は、ジョブ管理システム１２０を用いて展開される後続のジョブの中で、ジョブ管理システム１２０により自動的に識別され及び適用されることが可能である。幾つかの実装では、特定のジョブについてｓｔｒａｇｇｌｅｒタスク診断エンジンにより実行されるｓｔｒａｇｇｌｅｒタスク分析は、更なる見識を記述するデータを導出するためにジョブ分析システム１２５を用いて実行される他のジョブ又は他のジョブ分析結果について実行されるｓｔｒａｇｇｌｅｒタスク分析と共に利用されて良い。例えば、機械学習の更なるレイヤは、特に、最適性能のためにタスク定義及び割り当てを最適化するようジョブ固有の機会を決定するために装置の特定の組合せにより構成される分散型コンピューティングシステムに影響を与えるより広範な傾向及びルールを識別するために利用されて良い。
【００３２】
分散型コンピューティングシステムは、種々のジョブの中のタスクを定義し及び種々の装置及びシステム（例えば１０５、１３５、２０５）実装に割り当てる際に、分散型コンピューティングシステムを支援するために、ジョブ管理システム１２０を更に利用し又はそれに依存して良い。一例では、ジョブ管理システム１２０は、１又は複数のプロセッサ（例えば、２４６）、１又は複数のメモリ要素（例えば、２４８）、及び分散型コンピューティングシステム（又は場合によっては、ジョブ管理システム１２０がサービスとして提供される複数の異なる分散型コンピューティングシステム）の中の管理タスクを実行するためにソフトウェア及び／又はハードウェアで実装される種々のコンポーネントを有して良い。例えば、例示的なジョブ管理システム１２０は、特に、ジョブマネジャ２５０、ジョブ編成エンジン２６５、性能モニタ（例えば、２３５）、グラフィカルユーザインタフェース（例えば、２７０）を有して良い。
【００３３】
一例では、例示的なジョブ管理システム１２０のジョブマネジャ２５０は、ジョブ管理システム１２０により管理される分散型コンピューティング環境の中で完了のために展開され得るジョブ２５５の集合を管理するロジックを設けられて良い。ジョブ２５５の各々は、タスク２６０の個々のセットにより構成されて良い。幾つかの実装では、ジョブマネジャ２５０は、タスク２６０のこのセットを定義する又は識別する際に支援するために利用されて良い。ジョブマネジャ２５０は、幾つかの実装では、特徴の中でも特に、分散型コンピューティング環境の中でタスクをどのように分散するかを決定する際に支援するために、ジョブ及びそれらのタスクの種々の要件、依存性、又は他の特徴を識別する機能を追加で有して良い。
【００３４】
例示的なジョブ管理システム１２０は、ジョブ編成ロジック２６５を更に有して良い。ジョブ編成ロジック２６５は、分散型コンピューティング環境の中のコンピューティング装置の数を決定し、及びジョブの種々のタスクをこれらのコンピューティング装置にどのように分散するか（及び、（例えば、能力の欠如、十分なセキュリティ若しくは許可、必要な計算リソース、等に基づき）これらのコンピューティング装置のうちの幾つかが除外されるべきか否か）を決定するために利用されて良い。ジョブ編成エンジン２６５は、（合成タスク２６０のうちの１又は複数において）ジョブ２５５の中で作用されるべきデータを更に識別して良く、このようなデータの配信又はアクセスを編成して、該データを該データを使用し得るタスクを実行する装置に利用可能にして良い。さらに、幾つかの例では、幾つかのタスクは、他に依存して良い。したがって、場合によっては、特に、ジョブ編成ロジック２６５は、これらのタスクの実行の順序を編成し、依存するタスクをホスティングする異なる装置の間の通信を編成し、及び／又は特定の依存するタスクの割り当てを共通ホスト装置と統合して良い。ジョブ管理システム１２０は、所与のタスクに専用の（又は必要であると公表された）計算リソースの量を解決するためにも使用されて良く、分散型コンピューティング環境の中の種々の装置に、タスクの割り当てと関連してこのような情報を提供して良い。幾つかの実装では、グラフィカルユーザインタフェース（ＧＵＩ）２７０は、ジョブ管理システム１２０と関連して提供されて良く、ユーザがジョブ編成ロジック２６５に決定を提供し及び所与のシステムの中の分散型コンピューティングジョブの少なくとも幾つかの設定及び実装に影響を与えることを可能にする。
【００３５】
図２の例では、例示的なジョブ管理システム１２０は、ジョブ性能監視部２３５を含むよう示される。ジョブ性能監視部２３５は、分散型コンピューティングシステムによる所与のジョブの実行を監視するために使用されて良い。幾つかの例では、監視ユーティリティ２３５は、（例えば、ジョブタスクを実行する装置に存在する）複数の監視部からデータを集め及び統合して良く、ジョブ及び自身の合成タスクの実行の属性を記述する性能データ２３０を生成して良い。幾つかの例では、監視部２３５は、特に、対応するジョブ分析システムによる使用のためにフォーマット化され、標準化され、又は適応された性能データを生成して良い。
【００３６】
上述のように、分散型コンピューティング環境は、異種装置を含む種々の装置を有し得る。第１の例では、単に分散型コンピューティング環境の中のノードとして使用される目的で、ジョブハンドラシステム（例えば、２０５）が提供されて良い。ジョブハンドラシステム２０５は、一例では、装置が様々な異なるジョブの中の様々な異なるタスクを柔軟に実行できるように種々の計算リソースを備えられる汎用コンピューティング装置であって良い。一例では、ジョブハンドラシステム２０５の計算リソースは、特に、１又は複数のプロセッサ（例えば、２７２）、１又は複数のメモリ要素（例えば、２７４）、ネットワーク通信モジュール２７６、入力／出力（Ｉ／Ｏ）又は他のバス若しくは相互接続リソース（例えば、２７８）を有して良い。一例では、ジョブハンドラシステム２０５は、システム２０５が例示的な分散型コンピューティングシステムに参加し及び分散型コンピューティングシステムを用いて実行されるジョブの中のタスクを処理することを可能にする他の特徴及び機能の中でも特に、（例えば、ジョブ管理システム１２０により生成され及び場合によっては他のシステムから委任されるような）タスク割り当てを受け付け及びタスクを完了するために使用されるべき機械（例えば、リソース割り当て）を決定するためのインタフェースを提供するために、タスクハンドラロジック（例えば、２８０ａ）を設けられて良い。他の装置（例えば、１０５、１３５）は、分散型コンピューティングシステムへのそれらの参加を可能にするために、同じ又は同様のロジック（例えば２８０ｂ〜ｃ）を有して良い。
【００３７】
他の装置（例えば、１０５、１３５）の計算リソースは、同様に、これらの他の装置がそれらのリソースについての競合する要求を有するときでも、分散型コンピューティング装置において利用されて良い。例えば、主に１又は複数のアプリケーション及びサービス（例えば、２９０ａ〜ｂ）（及び対応するデータ）をホスティングするために使用される例示的なサーバシステム（例えば、１３５）が設けられて良い。しかしながら、この例示的なサーバシステムは、サーバシステムが少なくとも時には分散型コンピューティングジョブの中で使用され得るように余剰計算能力を保持して良い。例えば、例示的なサーバシステム１３５は、他の例示的なリソースの中でも特に、分散型コンピューティングジョブの中の１又は複数のタスクの実行において必要とされる又は価値のあり得る１又は複数のプロセッサ（例えば２８２）、１又は複数のコンピュータメモリ要素（例えば２８４）、通信及びネットワーキングリソース（例えば２８６）、オペレーティングシステムリソース（例えば２８８）を有して良い。
【００３８】
別の例として、センサ装置又は他の専用若しくはスマート装置のようなエンドポイント装置（例えば１０５）は、同様に、エンドポイント装置１０５の他の主要な任務又は機能にも拘わらず、分散型コンピューティングジョブを実行する際に使用を求められ得る利用可能計算リソースを有して良い。例えば、図２の例では、装置（例えば１０５）は、他のコンポーネントの中でも特に、１又は複数のデータ処理装置（例えば２９２）、１又は複数のメモリ要素（例えば２９４）、１又は複数の通信モジュール（例えば２９６）、バッテリ（例えば２９８）、又は他の電源（例えば、太陽電池、ＡＣ接続及びアダプタ、等）を有して良い。各々の装置（例えば１０５）は、（個々のセンサ及びアクチュエータの動作を含む）装置の意図される機能を実現するために、ハードウェア、センサ（例えば１１０）、アクチュエータ（例えば１１５）、及び他のロジック（例えば２３５）を有し得る。幾つかの例では、装置は、同じ又は様々な種類の１又は複数のセンサ（例えば１１０）、様々な種類のアクチュエータ（例えば１１５）、コンピューティングアセット（例えば、個々のプロセッサ及び／又はソフトウェアロジックを通じて）、セキュリティ機能、データ記憶アセット、及び他のリソースのようなこのような資産を設けられて良い。通信モジュール（例えば２９６）は、幾つかの展開の中の通信アセットとしても利用されて良く、他のシステム及び装置と共に１又は複数の技術（例えば、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ、Ｚｉｇｂｅｅ、Ｅｔｈｅｒｎｅｔ、等）を利用して１又は複数のネットワーク（例えば１４０）を介して装置の通信を実現するためにハードウェア及びソフトウェアを有して良い。これらのリソースは、主にエンドポイント装置１０５がその特定の目的を実行し又は機械対機械（Ｍ２Ｍ）、ＩｏＴ、若しくは他のシステムに参加できるようにするために、提供されて良が、これらのリソースは、利用可能なとき、様々な異なるジョブを実行可能な分散型コンピューティングシステムを実装するためにも部分的に利用されて良く、特に、これらのジョブのタスクのうちの幾つかは、このようなエンドポイント装置（例えば１０５）に割り当てられる。
【００３９】
図３の例を参照すると、簡略ブロック図３００が示され、分散型コンピューティングジョブの中のｓｔｒａｇｇｌｅｒタスクを識別し及び診断するために分析を実行するロジックを備えられる例示的なジョブ分析システム１２５の使用を説明する。例えば、複数の異なるコンピューティング装置で構成される分散型コンピューティングシステム３０５により完了される特定の分散型コンピューティングジョブの個々のタスクの実行を記述するために、性能データ２３０が生成されて良い。性能データ２３０は、システム３０５の中の様々なホスト装置によるジョブタスクの実行を監視する１又は複数の監視ツールから収集されて良い。性能データ２３０は、他の可能な例の中でも特に、タスクの実行を完了するために要した時間（又は実行時間）、各々のタスクについて性能属性アレイを記述する性能カウンタデータ（例えば、ホストシステムの性能カウンタにより生成される）、個々のホスト装置のリソースが対応するタスクの実行のためにどのように割り当てられたかを記述するリソース割り当て属性、を含むタスクの各々の性能属性を記述できる。
【００４０】
図３の例では、特定のジョブの中の各々のタスクの実行時間情報は、性能データから（例えば、実行時間データ３１０として）、モジュール２２０に提供されて良い。モジュール２２０は、ｋ平均クラスタリングアルゴリズム、期待最大化アルゴリズムとガウスの混合モデル、又は別のクラスタリングアルゴリズムのような、教師なし機械学習クラスタリングアルゴリズムを実装する。クラスタリングアルゴリズムは、実行時間によりジョブタスクをクラスタリングするために使用されて良く、１又は複数のクラスタは、ジョブの中のｓｔｒａｇｇｌｅｒタスクに対応するとして識別される。モジュール２２０は、これらのクラスタに基づくラベル２４０のセットを生成して良い。ラベル２４０のセットは、タスクがジョブの中でｓｔｒａｇｇｌｅｒであったか否かの程度を示すタスクの各々のラベルを含む。幾つかの例では、ラベル付けは２値であり、各々のタスクはｓｔｒａｇｇｌｅｒとして又はｓｔｒａｇｇｌｅｒではないとしてラベル付けされる。他の例では、非２値ラベル付けが定められ適用され、特に、ラベルは、ジョブの中の他のタスクの実行時間から分岐する対応するタスクの実行時間のより精細な指示を提供する。
【００４１】
図３の例を続けると、教師あり機械学習診断アルゴリズムは、ジョブ分析システム１２５の別のモジュール２２５を通じて提供されて良い。別のモジュール２２５は、性能データ２３０の中で定められる追加タスク性能属性と記述する入力と一緒に、（２２０における）教師なし機械学習クラスタリングから生成されるタスクラベル２４０の中で定められるラベル付けを取り入れて良い。例えば、システム性能カウンタにより収集されるような性能属性、及び各々のタスクについて生成されるリソース割り当てを記述する属性は、性能２３０の中で文書化されて良く、（モジュール２２０により決定されるラベルに拘わらず、ジョブのタスクの各々についての）これらの追加属性を識別するデータ（例えば３１５）は、評価のためにモジュール２２５に提供されて良い。一例では、決定株利用アルゴリズム、決定木又は決定リスト学習のためのＣ４．５アルゴリズム、分類及び回帰ツリー（classification  and  regression  tree：ＣＡＲＴ）、又は別のアルゴリズムのような教師あり機械学習技術は、タスクの実行時間が該タスクをｓｔｒａｇｇｌｅｒタスク又は非ｓｔｒａｇｇｌｅｒタスクとして明示させるタスクに対応する又はそのタスクを示す（データ３１５からの）属性の組合せを決定して良い。このような属性の組合せ（特徴の複数の識別される組合せが存在して良い）は、モジュール２２５により実行される教師あり機械学習ステップを用いて決定され、（例えば、幾つかの例では、ｓｔｒａｇｇｌｅｒ及び非ｓｔｒａｇｇｌｅｒタスクに対応するとして識別される属性に基づくルール又は条件の形式で）これらの属性を示すためにジョブ分析システム１２５において生成されるルールデータ２４５の基礎を形成して良い。
【００４２】
図３の例を続けると、幾つかの実装では、ルールデータ２４５の結果は、他のシステムへの提示又はそれによる使用のために、パッケージされて良い。例えば、（３２０で）ルールデータ２４５の結果に基づくレポートが生成され提供されて良い。ルールデータ（及び対応するレポート）は、（例えば、対応するユーザ装置（例えば１３０）において）ユーザに発見の人間により可読な要約（例えば、ｓｔｒａｇｇｌｅｒ関連ルール、条件、相関、等）を提示するために、生成されて良い。ユーザは、ルールデータ２４５の情報の中で具現化されるフィードバックに基づき、分散型コンピューティングジョブの将来のインスタンス（又は概して分散型コンピューティングジョブ）の中で生成され得る調整を決定して良い。ユーザは、特に、（例えば、対応するジョブ管理システム１２０とインタフェースすることにより）このような将来の分散型コンピューティングジョブに対するこれらの調整を行うために、これらの見識を利用して良い。さらに、幾つかの例では、ルールデータ２４５が生成されて良い。ルールデータ２４５の少なくとも一部は、ジョブ管理システムにより直接消費のためにパッケージされて良い（例えば、３２５）。例えば、特定のジョブに対応するルールデータ２４５は、特定のリソース割り当てレベルが、特定のタスク又は特定種類のタスクのために概して不十分であることを示して良く、この情報はジョブ管理システム１２０に（機械可読形式で）提供されて良い２４５。幾つかの例では、ジョブ管理システム１２０は、ルールデータ２４５に基づき分散型コンピューティングジョブの中の類似タスクの実行に対する調整を自動化して良い。他の例では、ジョブ管理システム１２０は、単に、特にルールデータ２４５に基づき特定の分散型コンピューティングジョブの実行についての提案を生成し及び提供することにより、例示的な分散型コンピューティングシステムを管理するユーザにガイダンスを提供して良い。
【００４３】
上述のように、計算の枠組みは、分散型及び並列計算のために、ジョブを多数の小さなジョブに分割して良い。合成タスクの完了状態が監視されて良く、ｓｔｒａｇｇｌｅｒタスクのためにバックアップタスクがジョブ実行中に開始されて良い。しかしながら、伝統的な分散型コンピューティングシステムは、標準的に、実行後分析を提供せず、ｓｔｒａｇｇｌｅｒが同一ジョブ又は類似ジョブの将来の実行の中で生じるのを防ぐためにｓｔｒａｇｇｌｅｒを診断する助けにならない。さらに、バックアップタスクがｓｔｒａｇｇｌｅｒのために開始されるとき、ジョブ性能は必ずしも影響されない。例において、図３で上述したように、自動化アプローチを有する実行後分析は、診断結果の生成と一緒に提供されて良い。ジョブオーナは、将来に類似ｓｔｒａｇｇｌｅｒタスクの発行を防ぐために、この診断結果を後に利用して良い。
【００４４】
例示的なジョブ分析システムは、上述の例のように、機械学習方法を用いてクラウドコンピューティング及び高性能コンピューティングにおけるｓｔｒａｇｇｌｅｒを識別し及び診断するために、２段階アプローチを利用して良い。例えば、図４の簡略ブロック図４００に示すように、第１段階では、ジョブの中の（又はジョブのステージの中の）タスク４０５の間のｓｔｒａｇｇｌｅｒ４１５は、クラスタ数選択のためにｋ平均クラスタリングをベイズ情報量基準（Bayesian  information  criterion：ＢＩＣ）と結合する教師なしクラスタリング４１０を用いて識別されて良い。第２段階では、ｓｔｒａｇｇｌｅｒ推定のために簡易且つ読みやすいルールセットを生成するために、カスタマイズされた決定株利用アルゴリズムのような教師ありルール学習４２５が利用されて良い。
【００４５】
図４の例をより詳細に調べると、ｓｔｒａｇｇｌｅｒ識別の第１段階で、ジョブの中の（又はジョブのステージの中の）全てのタスクの実行時間が、タスクのサブセットをｓｔｒａｇｇｌｅｒとして識別するために、ｋ平均クラスタリングアルゴリズムに入力として供給されて良い。例えば、実行時間ｔ（１），．．．，ｔ（ｎ）を有するジョブの中のｎ個のタスクに対応する入力が提供されて良い。さらに、ｋ＝１，．．．，ｋｍａｘ、及びタスクｉ＝１，．．．，ｎについて、クラスタ構成要素はｍ（ｉ）∈｛１，．．．，ｋ｝に従いランダムに割り当てられる。アルゴリズムは、次に、集束が実現するまで（例えば、クラスタ構成要素の再割り当てが無い）、繰り返されて良い。
【００４６】
一実施形態では、ｋ平均クラスタリングアルゴリズムの第１ステップは、次式に従い現在構成要素を有するクラスタの重心を計算することにより開始して良い。
【００４７】
【数１】
2018169989.tif 000003
タスクのクラスタ構成要素は、次式に従い再割り当てされて良い。
【００４８】
【数２】
2018169989.tif 000004
さらに、各々のクラスタの確率、各々のクラスタの標準偏差、及びクラスタリング結果のベイズ情報量基準（ＢＩＣ）は、次式に従い計算されて良い。
【００４９】
【数３】
2018169989.tif 000005
次に、次式に従う最適ｋ最小化ＢＩＣを有するクラスタリング結果が決定され使用されて良い。
【００５０】
【数４】
2018169989.tif 000006
クラスタリング結果において、
【００５１】
【数５】
2018169989.tif 000007
である場合、ラベルが生成されて良い。このラベルは、最も遅いクラスタの中のタスクをｓｔｒａｇｇｌｅｒとしてラベル付けする。その他の場合、ヌルが出力され、タスクセットの中で識別されるｓｔｒａｇｇｌｅｒがない。
【００５２】
上述の例及び式で紹介したように、所与のジョブの中のｓｔｒａｇｇｌｅｒタスクを識別するために利用されるクラスタリングモジュールの実装は、クラスタ数選択のためにｋ平均同種クラスタリングをベイズ情報量基準と結合するアルゴリズムを利用して良い。種々のクラスタ構成要素が試されて良い。各々の試行では、標準ｋ平均クラスタリングが実行して良く、現在クラスタ構成要素を用いてクラスタ重心を推定するステップとタスクの重心との近接性に基づきタスクをクラスタに再割り当てするステップとの間を反復する。この例示的なアルゴリズムは、反復の中でクラスタ構成要素再割り当てが生じないとき、収束する。この点で、ベイズ情報量基準（ＢＩＣ）は、特定のクラスタ構成要素ｋについて計算されて良い。ＢＩＣの最初の項は次の通りである。
【００５３】
【数６】
2018169989.tif 000008
上式は、クラスタの各々の中のタスク時間値が正規分布に従うと仮定して、クラスタリングモデル（例えば、値が低いほど、データはより高い確率で生じる）から全てのタスク実行時間データを集める負の対数尤度を記述する。第２の項は、次の通りである。
２ｋ  ｌｏｇ  ｎ    （２）
この式は、事前確率によるおよそのモデル測定の複雑性を記述する。ここで、２ｋの値は、ｋ正規分布の記述に関連するパラメータの総数である（各々の分布について、その平均のための１つのパラメータを有し、その標準偏差のための別のパラメータを有する）。最適クラスタ数が選択されて良い。これは、データ収集の負の対数尤度のモデル及びモデル複雑性との連帯目的を最小化する。対応するクラスタリング結果では、２つの最も遅いクラスタが調べられて良い。一例では、最も遅いクラスタのタスク数が所定閾を超えない、及びその平均実行時間が２番目に遅いクラスタの平均実行時間より非常に長い場合、このクラスタにグループ分けされたタスクの各々は、分散型コンピューティングジョブの中のｓｔｒａｇｇｌｅｒタスクとしてラベル付けされて良い。アルゴリズムの１回の実施の中に組み込まれる経験則は、タスクのうちの少数部分のみが速いときジョブの中の大半のタスクをｓｔｒａｇｇｌｅｒとしてラベル付けすること、又はほんの少し遅いタスクをラベル付けすること、を防止して良い。
【００５４】
タスクがｓｔｒａｇｇｌｅｒタスク又は非ｓｔｒａｇｇｌｅｒタスクとして識別されたことを示す、タスクのラベルを決定すると、第２の機械学習段階は、ｓｔｒａｇｇｌｅｒラベル（つまり、ｓｔｒａｇｇｌｅｒ識別からの出力）、リソース割り当て、及びタスクの性能カウンタが入力として採用される場合に、適用されて良い。診断結果は、それらのリソース割り当て及び性能カウンタに基づきｓｔｒａｇｇｌｅｒを推定するルールであって良い。これらのルールは、簡易な人間に（及び／又は機械に）可読なルールとして具現化されて良い。これにより、ｓｔｒａｇｇｌｅｒとして識別されたタスクが何故遅いかを説明する興味深く価値のある見識が発見され得る。これは、ジョブオーナが有望な原因を理解し及びジョブ完了性能を向上するために（ジョブ管理システムを用いて）分析後調整を実行するのを支援できる。
【００５５】
一例では、診断ルールは、教師ありｓｔｒａｇｇｌｅｒ診断アルゴリズムから返される決定株分類器を通じて提供されて良い。１レベルのみを含む決定木の特別な例として、決定株は、タスクの入力属性に対して単一の条件テストを行って良く、テスト結果に基づき、タスクがｓｔｒａｇｇｌｅｒか非ｓｔｒａｇｇｌｅｒかを決定する。決定株は、単純なルールに書き換えられる。例えば、条件テストは、１つのみの属性（例えば、「不可分条件」）に適用され、ルールは、この属性に基づき、特に次のように生成されて良い。「割り当てメモリがγより大きくない場合、タスクはｓｔｒａｇｇｌｅｒである（その他の場合、ｓｔｒａｇｇｌｅｒではない）」。幾つかの実装では、決定株アルゴリズムは、２つの不可分条件を「且つ（ａｎｄ）」又は「又は（ｏｒ）」演算子で結合するよう更に拡張されて良い。例えば、条件テストが２つの不可分条件結合体になるとき、ルールは、特に次のように生成されて良い。「ＣＰＵレートがηより大きくないａｎｄ標準メモリ使用量がλより大きい場合、タスクはｓｔｒａｇｇｌｅｒである（その他の場合、タスクはｓｔｒａｇｇｌｅｒではない）」。
【００５６】
幾つかの実装では、ｓｔｒａｇｇｌｅｒタスクセットに関連するルールを決定するために、カスタマイズされた決定株利用アルゴリズムが利用されて良い。例えば、性能属性は、特徴ベクトルｘ（ｉ）＝（ｘ（ｉ）１，．．．，ｘ（ｉ）ｄ）を形成するために各々のタスクについて組み立てられて良い。ｓｔｒａｇｇｌｅｒラベルｙ（ｉ）∈｛１，−１｝も、ｋ平均クラスタリングアルゴリズム結果に基づきタスクに割り当てられて良い。ここで、ｓｔｒａｇｇｌｅｒラベルは、分類器により予測されるべきクラスラベルとして役目を果たす。全ての属性を通じて、全ての不可分条件が列挙されて良い。次に、不可分条件は、各々のタスクについて２不可分条件の全ての組合せを生成するために結合され得る。不可分条件及び２不可分条件の組合せは、一例では、探索空間全体を形成して良い。次に、探索空間が探索されて良く、一例では、任意の条件ｃが探索される間、条件の有用性は、以下のようにトレーニングセットで評価されて良い。ルールは、条件を用いて構築されて良く、次に、タスクがｓｔｒａｇｇｌｅｒか否かを予測するためにトレーニングセットに適用されて良い。ルールの信頼性が計算でき（つまり、経験的精度ｐ（ｃ））、真陽性及び偽陽性の両方の数に対する真陽性の数である。信頼性は、ルールにより識別されたｓｔｒａｇｇｌｅｒがトレーニングセットにおいて真のｓｔｒａｇｇｌｅｒである可能性の尺度である。ルールの収束が計算でき（つまり、経験的リコールｒ（ｃ））、真陽性及び偽陰性の両方の数に対する真陽性の数を表して良い。収束は、真のｓｔｒａｇｇｌｅｒがトレーニングセットにおいてルールにより識別される可能性の尺度であって良い。高い収束ほど通常は低い信頼性を示すので（逆も同様）、２つのメトリックを、それらの調和平均、経験的ｆ指標ｆ（ｃ）を用いて結合する。この特定の例では、最適経験的ｆ指標を有するルールが選択されて良い。値が出力品質を制御するために使用される所定閾を超える場合、ルールは診断結果として出力される。
【００５７】
上述のように、カスタマイズされた決定株利用アルゴリズムのある例示的な実装では、リソース割り当てパラメータ及び性能カウンタパラメータは、タスク｛ｉ＝１，．．．，ｎ｝の各々についてｓｔｒａｇｇｌｅｒラベルｙ（ｉ）｛１，−１｝と一緒に、入力ベクトルｘ（ｉ）＝｛ｘ（ｉ）１，．．．，ｘ（ｉ）ｄ｝として提供されて良い。属性ｊ＝１，．．．，ｄについて、不可分条件Ｃｊ＝｛ｃｊ，１，．．．，ｃｊ，ｓ｝が列挙されて良い。ここで、各々の不可分条件ｃｊ，ｑは、「ｘｊ＞γ」又は「ｘｊ≦γ」の形式であり、γは学習中に与えられた閾である。属性ペア（ｊ，ｋ）、ｊ＝１，．．．，ｄ、ｊｋ＝ｊ＋１，．．．，ｄについて、２不可分条件の組合せが、以下に従い更に列挙されて良い。
【００５８】
【数７】
2018169989.tif 000009
以後、候補条件セットは、不可分条件と、２不可分条件の組合せと、の両方により、次式に従い生成されて良い。
【００５９】
【数８】
2018169989.tif 000010
本例を続けると、ｓｔｒａｇｇｌｅｒタスクセットのルールラベルを生成するために、空間Ｃが探索されて良い。ここで、条件ｃ∈Ｃについて、ルール「ｃの場合、ｙ＝１」が生成される。タスクｉ＝１，．．．，ｎについて、ルール及びタスク特徴は、そのｓｔｒａｇｇｌｅｒラベルｙ＾（ｉ）を決定するために使用されて良い。変形決定株アルゴリズムを実装するモジュールは、次に、同じデータセットについてｃによりルールの信頼性（経験的精度）ｐ（ｃ）、収束（経験的リコール）ｒ（ｃ）、及び経験的ｆ指標ｆ（ｃ）を、例えば次式に従い計算して良い。
【００６０】
【数９】
2018169989.tif 000011
次に、１又は複数のルールは、経験的ｆ指標を最大化するために、グリッド探索、山登り探索、焼き鈍し法、等のような発見的探索アルゴリズム（例えば、入力として探索空間及び評価関数を取り入れる）を用いて次式に従い選択されて良い。
【００６１】
【数１０】
2018169989.tif 000012
本例では、ｆ（ｃ＊）≧θである場合（許容可能閾、例えば７０％）、ルール「ｃ＊の場合、ｙ＝１」が出力され、その他の場合、ｎｕｌｌが出力されて、特に自動生成診断失敗の結果を示す。
【００６２】
上述の例示的な実装のような、例示的な決定株利用アルゴリズムの幾つかの実装では、データの経験的エントロピに基づき計算される決定木利用における共通基準である情報獲得は、使用されない。これは、ｓｔｒａｇｇｌｅｒのデータセットが不均衡ラベル分布の様々な拡張を実証するよう期待されるように、行われて良い。情報獲得の最大化は、不平衡データセットにおいて高い信頼性で非ｓｔｒａｇｇｌｅｒを決定するルールをもたらし得る。さらに、最適ルールは、トレーニングセットに対する性能のみに基づき選択されて良い。多くの例では、同じ確率分布から引き出された未知のタスクセットに対してルールが実行されることを保証しない。しかしながら、このような機械学習における単純な分類器は、トレーニングデータに対して実行するのと同様に、未知のデータセットに対して実行する可能性が高いことが想定される。他の例示的な利点の中でも、上述の特定のカスタマイズされた決定株利用アルゴリズムは、不可分条件及び２不可分条件の組合せを用いて単にルールを生成する。したがって、他の例示的な検討の中でも特に、ルールがトレーニングデータの中に見られない場合でも、同じジョブの異なる実行についてｓｔｒａｇｇｌｅｒを説明する際にルールが良好であることが期待される。
【００６３】
このような２段階のｓｔｒａｇｇｌｅｒタスク診断システムの一例を説明するために、大規模クラスタ管理システムを通じて管理されるジョブが評価されて良い。具体的には、追跡においてジョブのｓｔｒａｇｇｌｅｒタスクは、先ず（ジョブのタスクの個々の実行時間に基づきｋ平均クラスタリングを用いて）識別されて良い。次にｓｔｒａｇｇｌｅｒ推定のためのルールを得るために、（例えば、決定株利用アルゴリズムを用いて）ｓｔｒａｇｇｌｅｒが診断されて良い。ルールの品質を評価する目的で、同じジョブの中の提供されたタスクセットに対してルールの性能を予測するために客観的メトリックが使用されて良い。大規模クラスタ管理システムは、数万台ものサーバによりクラスタにある多くの異なるアプリケーションからの多数のジョブを実行し、ジョブの現在の実行の特徴、タスクについての処理レベルの隔離、及び異なる要因に基づくリソース割り当て、をサポートして良い。この例示的なシステムでは、各々のジョブは、同じプログラム（バイナリ）、同じリソース要求、及びほぼ同じ開始時間を有する一見同種のタスクのセットから構成される。しかしながら、実際に割り当てられるリソースは、（同じ機械で現在実行中の他のタスクと比較して）タスクの相対的重要性及びそれらのリソース使用履歴に依存して良い。
【００６４】
本例を続けると、例示的な大規模クラスタ管理システムの代表的負荷は、１００００台より多くのサーバによるクラスタの１ヶ月追跡であって良い。追跡におけるタスクの各々について、そのリソース使用量は、性能カウンタ、及び５分毎に記録されるリソース割り当てにより監視されて良い。本例では、値は、追跡の中で任意の機械にある対応するリソースの最大能力ｍに対してスケーリングされて良い。ｓｔｒａｇｇｌｅｒクラスタリング分析は、ｋ平均クラスタリングを用いて行われて良い。本例では、タスクのうちのある割合はｓｔｒａｇｇｌｅｒタスクとして識別されて良い。次に、決定株利用アルゴリズムを用いてｓｔｒａｇｇｌｅｒ診断が実行されて良い。本例では、ｓｔｒａｇｇｌｅｒ診断の間、リソース割り当て及び性能カウンタ読み取り値は、決定株利用のためのタスクの特徴ベクトルの中の属性を形成するために、ＣＰＵレート、標準メモリ使用量、割り当てメモリ、未マッピングページキャッシュ、合計ページキャッシュ、ディスクＩ／Ｏ時間、及びローカルディスク空間使用量、のような例を含んで良い。自動ｓｔｒａｇｇｌｅｒ診断は、次に、ｓｔｒａｇｇｌｅｒタスクの可能性がある条件を示す属性に基づきルールを決定するために、属性に対して作用して良い。例えば、可能な例の中でも特に、例示的なルールは以下のように生じ得る。
【００６５】
ジョブＩＤ  ６２５２５６６３９１：割り当てメモリ≦０．０００４９９→ｓｔｒａｇｇｌｅｒ、信頼性９８．８２％、収束９９．２９％；
ジョブＩＤ  ６２５２４６０９８０：ＣＰＵレート≦０．０００４５４又は割り当てメモリ≦０．０００３９６→ｓｔｒａｇｇｌｅｒ、信頼性９４．００％、収束８７．０４％；
ジョブＩＤ  ６２５１６４０７６０：ＣＰＵレート≦０.０００８８４及び標準メモリ使用量＞０．０００７８５→ｓｔｒａｇｇｌｅｒ、信頼性９０．００％、収束８７．１０％。
【００６６】
幾つかの例示的な実装は、上述の例において記載された特徴と超越して追加又は代替の特徴を有して良い。例えば、ｓｔｒａｇｇｌｅｒタスクの識別は、より精細な粒度で（例えば、非２値）あって良く、最も遅いクラスタのみを考慮するのではなく、幾つかの低速クラスタも考慮する。幾つかの例では、精細な粒度の識別から識別されたｓｔｒａｇｇｌｅｒは、診断が容易であって良い（例えば、推測ルールは、ｓｔｒａｇｇｌｅｒ予測において、より高い精度及びより高いリコールを有して良い）。幾つかの実装では、複数の外れ値メカニズムが、例示的なジョブ分析システムによりサポートされて良い。したがって、特定のジョブにおいてｓｔｒａｇｇｌｅｒが希であることを他のメカニズムが識別するとき、代替の外れ値決定メカニズムが使用されて良い。更に他の例では、ジョブ分析システムの態様は、他の例示的な特徴及び拡張の中でも特に、クラウド動作環境に統合され、ジョブに対する自動診断を実行し、診断結果を提示し、及び診断から生成される分散型コンピューティングシステムのスケジューラへのフィードバックを自動化して良く、ジョブ性能向上のループを閉じる。
【００６７】
本願明細書に記載され図示されるシステム及びソリューションのうちの幾つかは、複数の要素を含み又はそれに関連付けられるとして記載されたが、明示的に図示され又は記載された要素の必ずしも全部が、本開示の各々の代替の実装において利用されなくて良い。さらに、本願明細書に記載される要素のうちの１又は複数は、システムの外部に置かれて良い。一方で、他の例では、特定の要素は、他の記載される要素のうちの１又は複数の中に含まれ又はその一部として含まれて良く、他の要素は図示の実装方法において記載されない。さらに、特定の要素は、他のコンポーネントと結合され、及び本願明細書に記載の目的に加えて、代替又は追加の目的のために使用されて良い。
【００６８】
さらに、上述の例は特定の原理及び特徴を説明する目的で提供されただけであり、本願明細書に記載の概念の可能な実施形態を必ずしも限定し又は制約しない。例えば、種々の異なる実施形態は、本願明細書に記載のコンポーネントの種々の実装を通じて実現される組合せを含む、本願明細書に記載の特徴及びコンポーネントの種々の組合せを用いて実現できる。他の実装、特徴、及び詳細事項は、本願明細書の内容から明らかである。
【００６９】
図５は、分散型コンピューティングジョブの中のｓｔｒａｇｇｌｅｒイベントを診断する例示的な技術を示す簡略フローチャート５００である。例えば、分散型コンピューティング環境の中の複数のコンピューティング装置により実行されるジョブの監視に関連して生成された性能データが受信されて良い５０５。性能データは、ジョブに関連して完了した複数のタスクのうちの各々の１つの実行時間を示して良い。ジョブ分析システムの機械学習ソフトウェア又はハードウェアを用いて、性能データの中で識別された実行間に、ｋ平均クラスタリングアルゴリズムのような教師なし機械学習アルゴリズムが適用されて良い５１０。教師なし機械学習アルゴリズムは、一部のタスクがｓｔｒａｇｇｌｅｒタスクであることを決定するために５１５、タスクの個々の実行時間に基づき個々のタスクをクラスタリングして良い。教師なし機械学習アルゴリズムの結果は、これらのクラスタに基づきタスクをラベル付けするために更に使用されて良い。ここで、タスクのうちの幾つかはｓｔｒａｇｇｌｅｒタスクとしてラベル付けされ（つまり、ジョブの中の残りのタスクより統計的に低速な実行時間を要する）、他は非ｓｔｒａｇｇｌｅｒとしてラベル付けされる。
【００７０】
（５１０の）教師なし機械学習アルゴリズムを用いて決定されるような、ジョブの中のｓｔｒａｇｇｌｅｒ及び非ｓｔｒａｇｇｌｅｒタスクの診断又はラベルを用いて、ｓｔｒａｇｇｌｅｒタスクと相関のある属性を診断するために、教師あり機械学習アルゴリズムが適用されて良い５２０。（５０５で）受信した性能データの中で識別されたタスクの各々の追加性能属性は、ｓｔｒａｇｇｌｅｒタスクのためのルールを決定するために５２５、（５１０の）教師なし機械学習アルゴリズムの結果を用いて導出されたｓｔｒａｇｇｌｅｒ／非ｓｔｒａｇｇｌｅｒラベルと一緒に、（カスタマイズされた決定株利用アルゴリズムのような）教師あり機械学習アルゴリズムに入力として提供されて良い。ルールは、ジョブの中の所与のタスクがｓｔｒａｇｇｌｅｒタスクである可能性があることを示す又は予測する、性能属性により測定される条件を識別して良い。このようなルールのセットが決定され５２５、このルールセットを記述するためにルールデータが生成されて良い５３０。ルールデータ５３０は、幾つかの例では、人間に可読な形式で、ユーザインタフェースの中で、自動決定されたルールの記述を提示するためにレンダリングされて良い。幾つかの実装では、ルールデータは、機械可読又は消費可能であって良い。したがって、コンピュータにより実施される分散型コンピューティングジョブマネジャは、ルールデータを受け入れ、ジョブマネジャにより管理される将来の分散型コンピューティングジョブの中の設定及び割り当てを変更するために、その中に記述されるルールを適用して良い。
【００７１】
図６〜７は、本願明細書に開示の実施形態に従い使用され得る例示的なコンピュータアーキテクチャのブロック図である。プロセッサ及びコンピューティングシステムについて従来知られている他のコンピュータアーキテクチャ設計も使用されて良い。概して、本願明細書に開示の実施形態に適するコンピュータアーキテクチャは、図６〜７に示す構成を含み得るが、これに限定されない。
【００７２】
図６は、一実施形態によるプロセッサの例示的な図である。プロセッサ６００は、上述の実装に関連して使用可能なある種のハードウェア装置の一例である。プロセッサ６００は、コードを実行するために、マイクロプロセッサ、内蔵プロセッサ、ＤＳＰ（digital  signal  processor）、ネットワークプロセッサ、マルチコアプロセッサ、シングルコアプロセッサ、又は他の装置のような任意の種類のプロセッサであって良い。図６には１個のプロセッサ６００のみが示されるが、処理要素は、代替で、１個より多くの図６に示したプロセッサ６００を有して良い。プロセッサ６００はシングルスレッドコアであって良い。或いは、少なくとも一実施形態では、プロセッサ６００は、コア当たり１より多くのハードウェアスレッドコンテキスト（又は「論理プロセッサ」）を有して良いマルチスレッドであって良い。
【００７３】
図６は、一実施形態に従い、プロセッサ６００に結合されるメモリ６０２も示す。メモリ６０２は、当業者に知られている又は利用可能な（メモリ階層構造の種々のレイヤを含む）広範な種類のメモリのうちの任意のものであって良い。このようなメモリは、ＲＡＭ（random  access  memory）、ＲＯＭ（read  only  memory）、ＦＰＧＡ（field  programmable  gate  array）の論理ブロック、ＥＰＲＯＭ（erasable  programmable  read  only  memory）、及びＥＥＰＲＯＭ（electrically  erasable  programmable  ROM）を含み得るが、これらに限定されない。
【００７４】
プロセッサ６００は、本願明細書に詳述されるアルゴリズム、処理、又は工程に関連する任意の種類の命令を実行できる。概して、プロセッサ６００は、要素又はアーティクル（例えばデータ）を、ある状態若しくは物から別の状態若しくは物に変換し得る。
【００７５】
コード６０４は、プロセッサ６００により実行されるべき１又は複数の命令であって良く、メモリ６０２に格納されて良く、又は適切な場合には、特定の必要に基づき、ソフトウェア、ハードウェア、ファームウェア、若しくはそれらの任意の適切な組合せに又は任意の他の内部若しくは外部コンポーネント、装置、要素、若しくはオブジェクトに格納されて良い。一例では、プロセッサ６００は、コード６０４により示される命令のプログラムシーケンスに従い得る。各々の命令は、フロントエンドロジック６０６に入り、１又は複数のデコーダ６０８により処理される。デコーダは、出力として、所定フォーマットの固定幅マイクロ工程のようなマイクロ工程を生成して良く、又は他の命令、マイクロ命令、又は元のコード命令を反映する制御信号を生成して良い。フロントエンドロジック６０６は、レジスタ名変更ロジック６１０、及び概してリソースを割り当て実行のために命令に対応する工程をキューに入れるスケジューリングロジック６１２も有する。
【００７６】
プロセッサ６００は、実行ユニット６１６ａ、６１６ｂ、６１６ｎ、等のセットを有する実行ロジック６１４も有し得る。幾つかの実施形態は、特定機能又は機能セットに専用の多数の実行ユニットを含んで良い。他の実施形態は、１つの実行ユニットのみ又は特定の機能を実行できる１つの実行ユニットを有して良い。実行ロジック６１４は、コード命令により指定される工程を実行する。
【００７７】
コード命令により指定される工程の実行の完了の後、バックエンドロジック６１８は、コード６０４の命令を退避できる。一実施形態では、プロセッサ６００は、順序の狂った実行を認めるが、順序の正しい命令退避を要求する。退避ロジック６２０は、様々な知られている形式を取り得る（例えば、再順序付けバッファ等）。この方法で、プロセッサ６００は、コード６０４の実行中に、少なくともデコーダにより生成される出力、ハードウェアレジスタ、及びレジスタ名変更ロジック６１０により利用されるテーブル、及び実行ロジック６１４により変更される任意のレジスタ（図示しない）の観点で、変換される。
【００７８】
図６に示さないが、処理要素は、プロセッサ６００を有するチップに他の要素を有して良い。例えば、処理要素は、プロセッサ６００と共にメモリ制御ロジックを有して良い。処理要素は、Ｉ／Ｏ制御ロジックを有して良く、及び／又はメモリ制御ロジックと統合されるＩ／Ｏ制御ロジックを有して良い。処理要素は、１又は複数のキャッシュも有して良い。幾つかの実施形態では、（フラッシュメモリ又はヒューズのような）不揮発性メモリも、プロセッサ６００を有するチップに含まれて良い。
【００７９】
図７は、一実施形態によるポイントツーポイント（ＰｔＰ）構成で構成されるコンピューティングシステム７００を示す。特に、図７は、プロセッサ、メモリ、及び入力／出力装置が多数のポイントツーポイントインタフェースにより相互接続されるシステムを示す。概して、本願明細書に記載のコンピューティングシステムのうちの１又は複数は、コンピューティングシステム７００と同じ又は同様の方法で構成されて良い。
【００８０】
プロセッサ７７０及び７８０も、メモリ要素７３２及び７３４と通信するために統合メモリ制御ロジック（ＭＣ）７７２及び７８２をそれぞれ有して良い。代替の実施形態では、メモリ制御ロジック７７２及び７８２は、プロセッサ７７０及び７８０と別個のディスクリートロジックであって良い。メモリ要素７３２及び／又は７３４は、本願明細書に概説される工程及び機能を達成する際にプロセッサ７７０及び７８０により使用されるべき種々のデータを格納して良い。
【００８１】
プロセッサ７７０及び７８０は、他の図と関連して議論されたような任意の種類のプロセッサであって良い。プロセッサ７７０、７８０は、それぞれ、ポイントツーポイントインタフェース回路７７８、７８８を用いて、ポイントツーポイント（ＰｔＰ）インタフェース７５０を介してデータを交換できる。プロセッサ７７０、７８０は、それぞれ、ポイントツーポイントインタフェース回路７７６、７８６、７９４、７９８を用いて個々のポイントツーポイントインタフェース７５２、７５４を介して、チップセット７９０とデータを交換して良い。チップセット７９０も、高性能グラフィックインタフェース７３９を介して、ＰｔＰインタフェース回路であり得るインタフェース回路７９２を用いて、高性能グラフィック回路７３８とデータを交換して良い。代替の実施形態では、図７に示したＰｔＰリンクのうちの任意のもの又は全部は、ＰｔＰリンクではなくマルチドロップバスとして実装され得る。
【００８２】
チップセット７９０は、インタフェース回路７９６を介してバス７２０と通信して良い。バス７２０は、バスブリッジ７１８及びＩ／Ｏ装置７１６のような、バスを介して通信する１又は複数の装置を有して良い。バス７１０を介して、バスブリッジ７１８は、（キーボード、マウス、タッチスクリーン、又は他の入力装置のような）ユーザインタフェース７１２、（モデム、ネットワークインタフェース装置、又はコンピュータネットワーク７６０を通じて通信し得る他の種類の通信装置のような）通信装置７２６、オーディオＩ／Ｏ装置７１４、及び／又はデータ記憶装置７２８のような他の装置と通信して良い。データ記憶装置７２８は、プロセッサ７７０及び／又は７８０により実行されて良いコード７３０を格納して良い。代替の実施形態では、バスアーキテクチャの任意の部分は、１又は複数のＰｔＰリンクにより実装されて良い。
【００８３】
図７に示したコンピュータシステムは、本願明細書に議論する種々の実施形態を実装するために利用され得るコンピューティングシステムの一実施形態の概略図である。図７に示すシステムの種々のコンポーネントは、システムオンチップ（ＳｏＣ）アーキテクチャで又は本願明細書で提供される例及び実装の機能及び特徴を達成可能な任意の他の適切な構成で結合されて良い。
【００８４】
本開示は特定の実装及び概して関連する方法の観点から記載されたが、これらの実装及び方法の代替及び置換が当業者に明らかである。例えば、本願明細書に記載の動作は、記載されたものと異なる順序で実行でき、依然として所望の結果を達成する。一例として、図示された処理は、所望の結果を達成するために、必ずしも図示された特定の順序又はシーケンシャルな順序である必要はない。特定の実装では、マルチタスク及び並列処理が有利であっても良い。さらに、他のユーザインタフェースレイアウト及び機能がサポートされ得る。他の変形は添付の請求の範囲に包含される。
【００８５】
概して、本願明細書に記載の主題の一態様は、方法、及びソフトウェアコードを含むサンプルを識別する動作、該サンプルに含まれる複数の関数のうちの各々の制御フローグラフを生成する動作、関数の各々の中で、制御フローフラグメント種類のセットのインスタンスに対応する特徴を識別する動作、を含む又は生じる実行命令で具現化され得る。識別された特徴は、識別された特徴からのサンプルについての特徴セットを生成するために使用され得る。
【００８６】
これら及び他の実施形態は、それぞれ任意で、１又は複数の以下の特徴を含み得る。関数の各々について識別された特徴は、サンプルの統合ストリングを生成するために結合でき、特徴セットは、統合ストリングから生成できる。ストリングは、関数の各々について生成でき、各ストリングは、関数について識別された個々の特徴を記述する。特徴の結合は、複数の関数のうちの特定の１つの中の、複数の関数のうちの別の１つへの呼び出しを識別するステップと、他の関数を参照する特定の関数のストリングの一部を他の関数のストリングの内容で置換するステップと、を有し得る。特徴の識別は、関数のストリングの各々を抽象化するステップを含み得る。したがって、制御フローフラグメント種類のセットの特徴のみが、ストリングの中で記述される。制御フローフラグメント種類のセットは、関数及び関数による関数呼び出しによるメモリアクセスを含み得る。特徴の識別は、関数の各々によるメモリアクセスのインスタンスを識別するステップと、関数の各々による関数呼び出しのインスタンスを識別するステップと、を有し得る。特徴セットは、関数の各々について識別された特徴の各々を識別できる。特徴セットは、ｎグラフであり得る。
【００８７】
さらに、これら及び他の実施形態は、それぞれ任意で、１又は複数の以下の特徴を含み得る。特徴セットは、サンプルを分類する際に使用するために提供され得る。例えば、サンプルの分類は、サンプルの対応する特徴に基づき、他のサンプルと共にサンプルをクラスタリングするステップを含み得る。サンプルの分類は、サンプルのクラスタに関連する特徴のセットを決定するステップを更に含み得る。サンプルの分類は、サンプルをマルウェアとして分類するか否かを決定するステップ、及び／又はサンプルが１又は複数のマルウェアファミリのうちの１つである可能性があるか否かを決定するステップ、を更に含み得る。特徴の識別は、制御フローグラフの各々を抽象化するステップを含み得る。したがって、制御フローフラグメント種類のセットの特徴のみが、制御フローグラフの中で記述される。サンプルを含む複数のサンプルが受信され得る。幾つかの例では、複数のサンプルは、複数のソースから受信され得る。特徴セットは、サンプルの関数の制御フローグラフの中で識別される特徴のサブセットを識別できる。特徴のサブセットは、メモリアクセス及びサンプルコードの中の関数呼び出しに対応し得る。
【００８８】
本願明細書は多くの特定の実装の詳細を含むが、これらは、発明の範囲又は請求の範囲の限定ではなく、特定の発明の特定の実施形態に固有の特徴の説明として解釈されるべきである。本願明細書に別個の実施形態の文脈で記載された特定の特徴は、単一の実施形態の中で組み合わせて実装することもできる。反対に、本願明細書に単一の実施形態の文脈で記載された特定の特徴は、複数の実施形態で別個に又は任意の適切な実施形態で実装することもできる。さらに、特徴は、特定の組合せで動作するとして上述され、そのように最初に請求されるが、請求される組合せの中の１又は複数の特徴は、幾つかの場合には該組合せから削除され、請求される組合せは小結合又は小結合の変形を対象とし得る。
【００８９】
同様に、動作は特定の順序で図示されたが、これは、所望の結果を達成するために、このような動作が図示の特定の順序で又は連続的順序で実行されることを要求すると又は全ての図示の動作が実行されると理解されるべきではない。特定の環境では、マルチタスク及び並列処理が有利であっても良い。さらに、上述の実施形態における種々のシステムコンポーネントの分離は、全ての実施形態においてこのような分離を必要とすると理解されるべきではない。また、記載したプログラムコンポーネント及びシステムが概して単一のソフトウェアプロダクトに統合され又は複数のソフトウェアプロダクトにパッケージ化できることが理解されるべきである。
【００９０】
以下の例は、本願明細書に従う実施形態に関連する。例１は、方法、システム、又は格納された命令を有する機械アクセス可能記憶媒体であって、前記命令は、機械により実行されると該機械に、分散型コンピューティングシステムにおいて実行されるジョブの中の複数のタスクの個々の実行時間を分析させ、前記ジョブの中のｓｔｒａｇｇｌｅｒタスクセットを有する前記複数のタスクのうちのサブセットを決定し、前記分散型コンピューティングシステムは、複数のコンピューティング装置を有し、前記複数のタスクの性能属性を有する入力セットを用いて教師あり機械学習アルゴリズムを実行させ、前記教師あり機械学習アルゴリズムは、前記ｓｔｒａｇｇｌｅｒタスクセットの決定から生成されるラベルを用い、前記性能属性は、前記ジョブの実行中に観測される前記複数のタスクの個々の属性を有し、前記教師あり機械学習アルゴリズムの適用は、前記複数のタスクの前記性能属性に基づく、ジョブの中でどのタスクがｓｔｒａｇｇｌｅｒタスクであるかを示す条件を定めるルールセットの識別を生じ、前記ルールセットを記述するためにルールデータを生成させる。
【００９１】
例２は、例１の主題を含んで良く、前記複数のタスクの前記実行時間を分析して、前記ｓｔｒａｇｇｌｅｒタスクセットを決定するステップは、教師あり機械学習アルゴリズムへの入力として前記実行時間を提供するステップを有する。
【００９２】
例３は、例２の主題を含んで良く、前記教師あり機械学習アルゴリズムは、クラスタリングアルゴリズムを有し、前記クラスタリングアルゴリズムの結果は、前記タスクの前記個々の実行時間に基づき前記複数のタスクを複数のクラスタにクラスタリングし、前記ラベルは前記複数のクラスタに対応する。
【００９３】
例４は、例３の主題を含んで良く、前記複数のタスクの前記実行時間を分析して、前記ｓｔｒａｇｇｌｅｒタスクセットを決定するステップは、前記複数のクラスタのうちの１つを前記ｓｔｒａｇｇｌｅｒタスクセットを表すとして識別するステップを有する。
【００９４】
例５は、例３の主題を含んで良く、前記複数のタスクの前記実行時間を分析して、前記ｓｔｒａｇｇｌｅｒタスクセットを決定するステップは、前記複数のクラスタのうちの２以上を前記ｓｔｒａｇｇｌｅｒタスクセットを表すとして識別するステップを有する。
【００９５】
例６は、例３乃至５のいずれか１つの主題を含んで良く、前記クラスタリングアルゴリズムは、ｋ平均クラスタリングアルゴリズムを有する。
【００９６】
例７は、例１乃至６のいずれか１つの主題を含んで良く、前記教師あり学習アルゴリズムは、決定株利用アルゴリズムを有する。
【００９７】
例８は、例７の主題を含んで良く、前記決定株利用アルゴリズムは、前記性能属性から、各々のタスクの全ての不可分条件を決定するステップと、前記不可分条件を結合して、各々のタスクの全ての２不可分条件の組合せを生成するステップであって、前記ルールセットは、前記不可分条件及び２不可分条件の組合せを有する検索空間から決定される、ステップと、を有する。
【００９８】
例９は、例１乃至８のいずれか１つの主題を含んで良く、前記性能属性は、性能カウンタ属性及びリソース割り当て属性を有する。
【００９９】
例１０は、例９の主題を含んで良く、前記リソース割り当て属性は、前記対応するタスクに割り当てられる前記分散型コンピューティングシステムの中の個々のコンピューティング装置の属性を識別する。
【０１００】
例１１は、例９乃至１０のいずれか１つの主題を含んで良く、前記性能カウンタ属性は、中央処理ユニット（ＣＰＵ）レート、基準メモリ使用量、割り当てられたメモリ、未マッピングページキャッシュ、合計ページキャッシュ、ディスクＩ／Ｏ時間、ローカルディスク空間使用量、のうちの１又は複数を有する。
【０１０１】
例１２は、例１乃至１１のいずれか１つの主題を含んで良く、前記ルールデータは、自動生成された、前記ルールセットの各々の人間可読記述を有する。
【０１０２】
例１３は、例１乃至１２のいずれか１つの主題を含んで良く、前記ルールデータは、分散型コンピューティングシステムにおいてジョブの将来の実行の中でタスクの割り当てを指示するために処理される機械解析可能コードを有する。
【０１０３】
例１４は、例１３の主題を含んで良く、分散型コンピューティングシステムにおけるジョブの前記将来の実行は、前記複数のタスクを有する前記ジョブの将来の実行を有する。
【０１０４】
例１５は、例１３の主題を含んで良く、前記ジョブの前記将来の実行は、異なる複数のコンピューティング装置を利用する。
【０１０５】
例１６は、例１乃至１５のいずれか１つの主題を含んで良く、前記ラベルの一部は、前記複数のタスクの中のタスクをｓｔｒａｇｇｌｅｒタスクとしてラベル付けし、前記ラベルの別の部分は、前記複数のタスクの中の他のタスクを非ｓｔｒａｇｇｌｅｒタスクとしてラベル付けする。
【０１０６】
例１７は、コンピューティング装置を使用して、分散型コンピューティングシステムにおいて実行されるジョブの中の複数のタスクの個々の実行時間を分析するステップであって、前記ジョブの中のｓｔｒａｇｇｌｅｒタスクセットを有する前記複数のタスクのうちのサブセットを決定し、前記分散型コンピューティングシステムは、複数のコンピューティング装置を有する、ステップと、コンピューティング装置を使用して、前記複数のタスクの性能属性を有する入力セットを用いて教師あり機械学習アルゴリズムを実行するステップであって、前記教師あり機械学習アルゴリズムは、前記ｓｔｒａｇｇｌｅｒタスクセットの決定から生成されるラベルを用い、前記性能属性は、前記ジョブの実行中に観測される前記複数のタスクの個々の属性を有し、前記教師あり機械学習アルゴリズムの適用は、前記複数のタスクの前記性能属性に基づく、ジョブの中でどのタスクがｓｔｒａｇｇｌｅｒタスクであるかを示す条件を定めるルールセットの識別を生じる、ステップと、前記コンピューティング装置において、前記ルールセットを記述するためにルールデータを生成するステップと、を有する方法である。
【０１０７】
例１８は、例１７の主題を含んで良く、前記複数のタスクの前記実行時間を分析して、前記ｓｔｒａｇｇｌｅｒタスクセットを決定するステップは、教師あり機械学習アルゴリズムへの入力として前記実行時間を提供するステップを有する。
【０１０８】
例１９は、例１８の主題を含んで良く、前記教師あり機械学習アルゴリズムは、クラスタリングアルゴリズムを有し、前記クラスタリングアルゴリズムの結果は、前記タスクの前記個々の実行時間に基づき前記複数のタスクを複数のクラスタにクラスタリングし、前記ラベルは前記複数のクラスタに対応する。
【０１０９】
例２０は、例１９の主題を含んで良く、前記複数のタスクの前記実行時間を分析して、前記ｓｔｒａｇｇｌｅｒタスクセットを決定するステップは、前記複数のクラスタのうちの１つを前記ｓｔｒａｇｇｌｅｒタスクセットを表すとして識別するステップを有する。
【０１１０】
例２１は、例１９の主題を含んで良く、前記複数のタスクの前記実行時間を分析して、前記ｓｔｒａｇｇｌｅｒタスクセットを決定するステップは、前記複数のクラスタのうちの２以上を前記ｓｔｒａｇｇｌｅｒタスクセットを表すとして識別するステップを有する。
【０１１１】
例２２は、例１９乃至２１のいずれか１つの主題を含んで良く、前記クラスタリングアルゴリズムは、ｋ平均クラスタリングアルゴリズムを有する。
【０１１２】
例２３は、例１７乃至２２のいずれか１つの主題を含んで良く、前記教師あり学習アルゴリズムは、決定株利用アルゴリズムを有する。
【０１１３】
例２４は、例２３の主題を含んで良く、前記決定株利用アルゴリズムは、前記性能属性から、各々のタスクの全ての不可分条件を決定するステップと、前記不可分条件を結合して、各々のタスクの全ての２不可分条件の組合せを生成するステップであって、前記ルールセットは、前記不可分条件及び２不可分条件の組合せを有する検索空間から決定される、ステップと、を有する。
【０１１４】
例２５は、例１７乃至２４のいずれか１つの主題を含んで良く、前記性能属性は、性能カウンタ属性及びリソース割り当て属性を有する。
【０１１５】
例２６は、例２５の主題を含んで良く、前記リソース割り当て属性は、前記対応するタスクに割り当てられる前記分散型コンピューティングシステムの中の個々のコンピューティング装置の属性を識別する。
【０１１６】
例２７は、例２５乃至２６のいずれか１つの主題を含んで良く、前記性能カウンタ属性は、中央処理ユニット（ＣＰＵ）レート、基準メモリ使用量、割り当てられたメモリ、未マッピングページキャッシュ、合計ページキャッシュ、ディスクＩ／Ｏ時間、ローカルディスク空間使用量、のうちの１又は複数を有する。
【０１１７】
例２８は、例１７乃至２７のいずれか１つの主題を含んで良く、前記ルールデータは、自動生成された、前記ルールセットの各々の人間可読記述を有する。
【０１１８】
例２９は、例１７乃至２８のいずれか１つの主題を含んで良く、前記ルールデータは、分散型コンピューティングシステムにおいてジョブの将来の実行の中でタスクの割り当てを指示するために処理される機械解析可能コードを有する。
【０１１９】
例３０は、例２９の主題を含んで良く、分散型コンピューティングシステムにおけるジョブの前記将来の実行は、前記複数のタスクを有する前記ジョブの将来の実行を有する。
【０１２０】
例３１は、例２９の主題を含んで良く、前記ジョブの前記将来の実行は、異なる複数のコンピューティング装置を利用する。
【０１２１】
例３２は、例１７乃至３１のいずれか１つの主題を含んで良く、前記ラベルの一部は、前記複数のタスクの中のタスクをｓｔｒａｇｇｌｅｒタスクとしてラベル付けし、前記ラベルの別の部分は、前記複数のタスクの中の他のタスクを非ｓｔｒａｇｇｌｅｒタスクとしてラベル付けする。
【０１２２】
例３３は、例１７−３２のいずれか１つの方法を実行する手段を有するシステムである。
【０１２３】
例３４は、少なくとも１つのプロセッサ、少なくとも１つのメモリ要素、教師なし機械学習モジュール、及び教師あり機械学習モジュールを有するシステムである。前記教師なし機械学習モジュールは、前記少なくとも１つのプロセッサにより実行可能であって良く、複数の装置を含む分散型コンピューティングシステムを用いて完了されるジョブの複数のタスクの実行時間を識別する第１入力セットを受信し、前記第１入力セットに教師なしクラスタリングアルゴリズムを適用して、前記実行時間に基づく複数のクラスタを生成し、前記複数のクラスタは前記複数のタスクのうちの少なくとも１つを含み、前記複数のクラスタのうちの少なくとも１つの特定クラスタを前記ジョブの中でｓｔｒａｇｇｌｅｒタスクを表すとして指定し、前記複数のタスクの各々に対応するラベルを生成し、前記ラベルは前記特定クラスタの中のタスクをｓｔｒａｇｇｌｅｒタスクとして指定する。教師あり機械学習モジュールは、前記少なくとも１つのプロセッサにより実行可能であって良く、前記ラベルと、前記複数のタスクの性能属性を含む第２入力セットと、を受信し、前記性能属性は、前記ジョブの実行中に観測された前記複数のタスクの個々の属性を含み、前記第２入力セットに決定株利用アルゴリズムを適用して、前記ラベルに基づき、ルールセットを決定し、前記ルールセットは、前記性能属性に基づき、どのタスクがジョブの中のｓｔｒａｇｇｌｅｒタスクであるかを示す条件を定める。
【０１２４】
例３５は、例３４の主題を含んで良く、１又は複数のコンピュータにより実行される監視要素であって、前記複数のタスクの性能を監視し、前記実行時間及び性能属性を識別する監視データを生成する、監視要素、を更に有する。
【０１２５】
例３６は、例３４乃至３５のいずれか１つの主題を含んで良く、前記複数の装置を更に有する。
【０１２６】
例３７は、例３６の主題を含んで良く、前記複数の装置は異種装置を含む。
【０１２７】
例３８は、例３４乃至３７のいずれか１つの主題を含んで良く、前記システムは、前記ルールセットを記述するルールデータを生成するルールデータ生成器を更に有する。
【０１２８】
例３９は、例３８の主題を含んで良く、前記複数の装置において前記複数のタスクを編成するために実行可能なジョブマネジャを更に含む。
【０１２９】
例４０は、例３９の主題を含んで良く、前記ジョブマネジャは、さらに、前記ルールデータを受信し、前記ルールセットに基づき後続の分散型コンピューティングジョブにおいて装置へのタスクの割り当てを自動化する。
【０１３０】
例４１は、例３８乃至４０のいずれか１つの主題を含んで良く、前記ルールセットの人間可読記述を含む提示を生成するためにグラフィカルユーザインタフェースモジュールを更に含む。
【０１３１】
したがって、主題の特定の実施形態が記載された。他の実施形態も添付の請求の範囲に包含される。幾つかの例では、請求項に記載された動作は、異なる順序で実行でき、依然として所望の結果を達成する。さらに、図示された処理は、所望の結果を達成するために、必ずしも図示された特定の順序又はシーケンシャルな順序である必要はない。
【符号の説明】
【０１３２】
１００  システム
１０５  エンドポイント装置
１１０  センサ
１１５  アクチュエータ
１２０  ジョブ管理システム
１２５  ジョブ分析システム
１３０  ユーザ装置
１３５  サーバシステム
１４０  ネットワーク
１６０  クラウド
２０５  ジョブハンドラシステム
２０６  プロセッサ
２０８  メモリ
２１０  ｓｔｒａｇｇｌｅｒ診断エンジン
２１５  レポート生成器
２２０  クラスタリングエンジン
２３０  性能データ
２４０  ラベル
２４５  ルール
２４６  プロセッサ
２４８  メモリ
２５０  ジョブマネジャ
２５５  ジョブ
２６０  タスク
２６５  ジョブ編成
２７２  プロセッサ
２７４  メモリ
２７６  通信
２８０  タスクハンドラ
２８２  プロセッサ
２８４  メモリ
２８６  通信
２９０  アプリケーション
２９２  プロセッサ
２９４  メモリ
２９６  通信
２９８  バッテリ
【図１Ａ】
2018169989.tif 000013
【図１Ｂ】
2018169989.tif 000014
【図２】
2018169989.tif 000015
【図３】
2018169989.tif 000016
【図４】
2018169989.tif 000017
【図５】
2018169989.tif 000018
【図６】
2018169989.tif 000019
【図７】
2018169989.tif 000020
【外国語明細書】
2018169989000001.pdf