(57)【要約】  出力装置１０は、分散処理システムのジョブの特徴を示すジョブ特徴情報に基づいて、ジョブを構成するタスクの処理に要する計算機資源量を推定する推定モデルに適した形式の情報である推定モデル適用情報を出力する出力部１１を備える。推定モデル適用情報は、ジョブ特徴情報に含まれる文字列情報が示す文字列が所定の単語を含むか否かを示す二値情報を有する単語含有情報を含んでもよい。推定モデル適用情報は、ジョブ特徴情報に含まれる数値情報が示す数値が所定の関数で変換された値を文字列ラベル情報として有する数値変換ラベル情報を含んでもよい。
2016116990.tif 000002
【特許請求の範囲】
【請求項１】
分散処理システムのジョブの特徴を示すジョブ特徴情報に基づいて、前記ジョブを構成するタスクの処理に要する計算機資源量を推定する推定モデルに適した形式の情報である推定モデル適用情報を出力する出力部を備える
ことを特徴とする出力装置。
【請求項２】
推定モデル適用情報は、ジョブ特徴情報に含まれる文字列情報が示す文字列が所定の単語を含むか否かを示す二値情報を有する単語含有情報を含む
請求項１記載の出力装置。
【請求項３】
推定モデル適用情報は、ジョブ特徴情報に含まれる数値情報が示す数値が所定の関数で変換された値を文字列ラベル情報として有する数値変換ラベル情報を含む
請求項１または請求項２記載の出力装置。
【請求項４】
推定モデルが出力した推定モデル適用情報を、前記推定モデル適用情報に対応するジョブ特徴情報と同じ形式で出力する形式変換部を備える
請求項１から請求項３のうちのいずれか１項に記載の出力装置。
【請求項５】
分散処理システムにおける、ジョブ特徴情報に対応するジョブを構成するタスクの処理に要する計算機資源量を、前記ジョブ特徴情報に基づいて出力部が出力した推定モデル適用情報を推定モデルに入力することによって推定する計算機資源量推定部を備える
請求項１から請求項４のうちのいずれか１項に記載の出力装置。
【請求項６】
分散処理システムのジョブの特徴を示すジョブ特徴情報に基づいて作成された、前記ジョブを構成するタスクの処理に要する計算機資源量を推定する推定モデルに適した形式の情報である推定モデル適用情報を含む
ことを特徴とするデータ構造。
【請求項７】
推定モデル適用情報は、ジョブ特徴情報に含まれる文字列情報が示す文字列が所定の単語を含むか否かを示す二値情報を有する単語含有情報を含む
請求項６記載のデータ構造。
【請求項８】
推定モデル適用情報は、ジョブ特徴情報に含まれる数値情報が示す数値が所定の関数で変換された値を文字列ラベル情報として有する数値変換ラベル情報を含む
請求項６または請求項７記載のデータ構造。
【請求項９】
分散処理システムのジョブの特徴を示すジョブ特徴情報に基づいて、前記ジョブを構成するタスクの処理に要する計算機資源量を推定する推定モデルに適した形式の情報である推定モデル適用情報を出力する
ことを特徴とする出力方法。
【請求項１０】
コンピュータに、
分散処理システムのジョブの特徴を示すジョブ特徴情報に基づいて、前記ジョブを構成するタスクの処理に要する計算機資源量を推定する推定モデルに適した形式の情報である推定モデル適用情報を出力する出力処理
を実行させるための出力プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力装置、データ構造、出力方法および出力プログラムに関し、特に機械学習技術を用いた分散処理システムの性能予測において使用される出力装置、データ構造、出力方法および出力プログラムに関する。
【背景技術】
【０００２】
与えられた処理（ジョブ）を１以上の処理に分割し、分割された処理（タスク）を複数の計算機で並列に実行することによって処理時間を短縮する分散処理システムが存在する。【０００３】
分散処理システムを用いてジョブを効率よく実行するために、ユーザには、分割されたタスクの特徴に合わせて適切にタスクの実行順序を制御したり、計算機資源を割り当てたりすることが求められる。【０００４】
例えば、処理時間の長いタスクから実行を開始すると、ジョブ全体の処理時間が短くなることが知られている。処理時間の長いタスクから実行が開始される実行順序制御を実現するために、ユーザには、タスクの処理時間を事前に把握することが求められる。【０００５】
また、例えば、求められる最少の計算機資源量をタスク実行の際に割り当てることによって、並列に実行されるタスク数が最大になることが知られている。求められる最少の計算機資源量の割り当てを実現するために、ユーザには、タスクを処理するために求められる計算機資源量を事前に把握することが求められる。【０００６】
処理時間や計算機資源量等のタスクの特徴を事前に把握するために、機械学習技術を用いてタスクの特徴を推定する方法がある。推定方法において、ユーザは、例えば機械学習のアルゴリズムが実装されたプログラムに対してタスクの振る舞いを示す観測情報を入力し、プログラムを実行する。【０００７】
プログラムが実行されることによって、ユーザは、出力結果としてタスクの特徴を示す数理モデルを得る。得られた数理モデルに対してまだ特徴が把握されていないタスクの観測情報を与えることによって、ユーザは、タスクの特徴の推定情報を得ることができる。【０００８】
特許文献１〜特許文献３および非特許文献１〜非特許文献２には、タスクの処理に要する計算機資源量の推定に関連する技術が記載されている。【０００９】
特許文献１には、過去に実行されたタスクにおいて使用された資源量のログから、資源使用量と負荷値の関係を推定する技術が記載されている。【００１０】
特許文献２には、プログラムが生じる負荷特性を推定するシステムが記載されている。【００１１】
特許文献３には、時間区間毎の物理リソースのピーク使用量を予測する予測部を含む仮想マシン配置構成制御装置が記載されている。【００１２】
非特許文献１には、ウェーブレット変換を用いて仮想マシンが使用した資源量の推移情報から資源量推移の基底関数を導出し、導出された基底関数を用いることによって将来の必要資源量を推定する技術が記載されている。【００１３】
非特許文献２には、協調フィルタリングを用いて、過去のタスク実行履歴と今後割り当てる予定のタスクの短時間試験実行の結果から、サービスレベル目標（ＳＬＯ：Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ｏｂｊｅｃｔｉｖｅ）を満たすために必要な資源量を推定する技術が記載されている。【００１４】
また、特許文献４には、オンライン予測およびリコメンデーションを生成するエンタープライズウェブマイニングシステムが記載されている。【００１５】
また、特許文献５〜特許文献６には、処理を行う際に使用する情報の変換に関連する技術が記載されている。【００１６】
特許文献５には、印刷出力の際の設定を補助することによってユーザの利便性を向上する印刷装置が記載されている。特許文献５に記載されている印刷装置は、印刷特徴量が文字情報である場合、文字情報を分割し、分割後の夫々の文字を独立した印刷特徴量として扱う。【００１７】
特許文献６には、個々の計算機の負荷情報だけでなく、個々の計算機で実行中のタスク、割り当てられるタスクと他のタスク間の関連度、計算機のネットワークにおける距離も考慮してタスクの割り当てを行う計算機システムが記載されている。特許文献６に記載されている計算機システムは、１００キロバイトの通信データ量を１に換算する方法、帯域毎に値を割り当てる方法、またはパケット衝突率を数値に変換する方法を用いる。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特許第５３５４１３８号公報
【特許文献２】国際公開第２０１１／０７１０１０号
【特許文献３】特開２０１２−１５９９２８号公報
【特許文献４】特許第５６２０９３３号公報
【特許文献５】特開２０１２−０２２５１６号公報
【特許文献６】特開２００５−３１０１２０号公報
【非特許文献】
【００１９】
【非特許文献１】Hiep Nguyen, Zhiming Shen, Xiaohui Gu, Sethuraman Subbiah, John Wilkes. “AGILE: elastic distributed resource scaling for Infrastructure-as-a-Service.” In Proc. of the 10th International Conference on Autonomic Computing (ICAC ’13), pp. 69-82, 2013.
【非特許文献２】Christina Delimitrou and Christos Kozyrakis. “Quasar: Resource-Efficient and QoS-Aware Cluster Management.” In Proc. of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’14), pp.127-144, 2014.
【発明の概要】
【発明が解決しようとする課題】
【００２０】
分散処理システムにおけるタスクの処理に要する計算機資源量を精度よく推定するためには、分散処理システムの動作を示すデータやタスクの観察データを、推定アルゴリズムに対して適切な形式のデータに変換することが求められる。【００２１】
特許文献１〜特許文献３および非特許文献１〜非特許文献２において、タスクの観察データ等は、推定アルゴリズムが分散処理システムにおけるタスクの処理に要する計算機資源量を精度よく推定するための形式のデータに変換されていない。よって、特許文献１〜特許文献３および非特許文献１〜非特許文献２に記載されている技術をそのまま使用した場合、ユーザは、得られるはずの推定精度で計算機資源量の推定値を得ていない可能性がある。【００２２】
また、特許文献４〜特許文献６においても、推定アルゴリズムによる分散処理システムの動作の予測に資するデータ形式は、特に言及されていない。【００２３】
そこで、本発明は、上述した課題を解決する、分散処理システムにおけるタスクの処理に要する計算機資源量を推定するモデルに適した形式の情報を提供する出力装置、データ構造、出力方法および出力プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２４】
本発明による出力装置は、分散処理システムのジョブの特徴を示すジョブ特徴情報に基づいて、ジョブを構成するタスクの処理に要する計算機資源量を推定する推定モデルに適した形式の情報である推定モデル適用情報を出力する出力部を備えることを特徴とする。【００２５】
本発明によるデータ構造は、分散処理システムのジョブの特徴を示すジョブ特徴情報に基づいて作成された、ジョブを構成するタスクの処理に要する計算機資源量を推定する推定モデルに適した形式の情報である推定モデル適用情報を含むことを特徴とする。【００２６】
本発明による出力方法は、分散処理システムのジョブの特徴を示すジョブ特徴情報に基づいて、ジョブを構成するタスクの処理に要する計算機資源量を推定する推定モデルに適した形式の情報である推定モデル適用情報を出力することを特徴とする。【００２７】
本発明による出力プログラムは、コンピュータに、分散処理システムのジョブの特徴を示すジョブ特徴情報に基づいて、ジョブを構成するタスクの処理に要する計算機資源量を推定する推定モデルに適した形式の情報である推定モデル適用情報を出力する出力処理を実行させることを特徴とする。
【発明の効果】
【００２８】
本発明によれば、分散処理システムにおけるタスクの処理に要する計算機資源量を推定するモデルに適した形式の情報を提供できる。
【図面の簡単な説明】
【００２９】
【図１】本発明による計算機資源使用量推定装置の第１の実施形態の構成例を示すブロック図である。
【図２】入力データ変換部１０１が出力する推定モデル適用情報の例を示す説明図である。
【図３】入力データ変換部１０１が出力する推定モデル適用情報の他の例を示す説明図である。
【図４】第１の実施形態における入力データ変換部１０１による単語含有情報の作成処理の動作を示すフローチャートである。
【図５】入力データ変換部１０１に入力されるジョブ特徴情報の例を示す説明図である。
【図６】入力データ変換部１０１が出力する単語含有情報の例を示す説明図である。
【図７】第１の実施形態における入力データ変換部１０１による単語含有情報の作成処理の他の動作を示すフローチャートである。
【図８】入力データ変換部１０１に入力されるジョブ特徴情報の他の例を示す説明図である。
【図９】入力データ変換部１０１が出力する単語含有情報の他の例を示す説明図である。
【図１０】第１の実施形態における入力データ変換部１０１による数値変換ラベル情報の作成処理の動作を示すフローチャートである。
【図１１】入力データ変換部１０１に入力されるジョブ特徴情報の他の例を示す説明図である。
【図１２】入力データ変換部１０１が出力する数値変換ラベル情報の例を示す説明図である。
【図１３】本発明による計算機資源使用量推定装置の第２の実施形態の構成例を示すブロック図である。
【図１４】第２の実施形態における入力データ変換部１０１による数値変換ラベル情報の作成処理の動作を示すフローチャートである。
【図１５】入力データ変換部１０１に入力されるジョブ特徴情報の他の例を示す説明図である。
【図１６】入力データ変換部１０１が出力する数値変換ラベル情報の他の例を示す説明図である。
【図１７】第２の実施形態における推定値逆変換部１０４による推定メモリ使用量への逆変換処理の動作を示すフローチャートである。
【図１８】推定モデルが出力する数値変換ラベル情報の例を示す説明図である。
【図１９】推定値逆変換部１０４が出力する推定メモリ使用量情報の例を示す説明図である。
【図２０】本発明による出力装置の概要を示すブロック図である。
【図２１】本発明によるデータ構造の概要を示すブロック図である。
【発明を実施するための形態】
【００３０】
実施形態１．
［構成の説明］
以下、本発明の実施形態を、図面を参照して説明する。図１は、本発明による計算機資源使用量推定装置の第１の実施形態の構成例を示すブロック図である。図１に示す計算機資源使用量推定装置１００は、入力データ変換部１０１と、計算機資源使用量推定モデル生成部１０２と、計算機資源使用量推定部１０３とを含む。
【００３１】
図１に示す計算機資源使用量推定装置１００は、分散処理システムを対象にしている。
計算機資源使用量推定装置１００は、単語含有情報または文字列ラベル情報を含むデータ形式の入力データを用いて、分散処理システムにおける各タスクの処理に要する計算機資源量を推定する。
【００３２】
入力データ変換部１０１は、推定モデルの生成に用いられる入力データに含まれるジョブ特徴情報を、生成する推定モデルに適した形式の情報である推定モデル適用情報に変換し、推定モデル適用情報を含むデータを出力する機能を有する。
【００３３】
図１に示すように、入力データ変換部１０１には、計算機資源使用量や処理時間が入力される。また、入力データ変換部１０１には、入力データのメタ情報や、処理プログラムの構成情報も入力される。
【００３４】
入力データ変換部１０１が出力する推定モデル適用情報の例を図２と図３に示す。図２は、入力データ変換部１０１が出力する推定モデル適用情報の例を示す説明図である。
【００３５】
図２は、推定モデル適用情報に含まれている単語含有情報を示す。図２に示す単語含有情報は、タスク識別子と、単語の候補とで構成される。
【００３６】
タスク識別子は、ジョブ特徴情報の識別記号に相当する。単語の候補は、所定の単語が含まれているか否かを示す。図２において、単語含有情報は、ジョブ特徴情報の識別記号と単語の候補の各組に対する二値情報で表現されている。
【００３７】
例えば、Ｔａｓｋ１というタスク識別子に対応するジョブ特徴情報Ａという文字列に対して、単語α１が含まれていることを示す場合を考える。単語α１が含まれていることを示すために、Ｔａｓｋ１の単語含有情報の単語の候補「ジョブ特徴情報Ａが単語α１を含むか？」には、二値情報Ｔｒｕｅ（真）が設定される。Ｔａｓｋ１の単語含有情報は、ジョブ特徴情報Ａが単語α１を含むことを示す。
【００３８】
同様に、Ｔａｓｋ２というタスク識別子に対応するジョブ特徴情報Ｂという文字列に対して、単語βｎが含まれていないことを示す場合を考える。単語βｎが含まれていないことを示すために、Ｔａｓｋ２の単語含有情報の単語の候補「ジョブ特徴情報Ｂが単語βｎを含むか？」には、二値情報Ｆａｌｓｅ（偽）が設定される。Ｔａｓｋ２の単語含有情報は、ジョブ特徴情報Ｂが単語βｎを含まないことを示す。
【００３９】
図３は、入力データ変換部１０１が出力する推定モデル適用情報の他の例を示す説明図である。図３は、推定モデル適用情報に含まれている数値変換ラベル情報を示す。図３に示す数値変換ラベル情報は、タスク識別子と、ラベル情報とで構成される。
【００４０】
タスク識別子は、数値情報の識別記号に相当する。数値情報は、数値で示されるジョブ特徴情報に相当する。図３において、数値変換ラベル情報は、数値情報の識別記号とラベル情報の各組に対する文字列情報で表現されている。
【００４１】
例えば、Ｔａｓｋ１というタスク識別子に対応する数値情報Ａのラベル情報が８であることを示す場合を考える。数値情報Ａのラベル情報が８であることを示すために、Ｔａｓｋ１の数値変換ラベル情報のラベル情報「数値情報Ａのラベル情報」には、文字列情報「８」が設定される。Ｔａｓｋ１の数値変換ラベル情報は、数値情報Ａのラベル情報が８であることを示す。
【００４２】
同様に、Ｔａｓｋ２というタスク識別子に対応する数値情報Ｂのラベル情報が０であることを示す場合を考える。数値情報Ｂのラベル情報が０であることを示すために、Ｔａｓｋ２の数値変換ラベル情報のラベル情報「数値情報Ｂのラベル情報」には、文字列情報「０」が設定される。Ｔａｓｋ２の数値変換ラベル情報は、数値情報Ｂのラベル情報が０であることを示す。
【００４３】
計算機資源使用量推定モデル生成部１０２は、入力データ変換部１０１が出力したデータを入力として、推定モデルを生成する機能を有する。図１に示すように、計算機資源使用量推定モデル生成部１０２は、生成した推定モデルを計算機資源使用量推定部１０３に入力する。
【００４４】
計算機資源使用量推定部１０３は、入力された推定モデルを用いて、特徴がまだ把握されていないタスクの計算機資源使用量を推定する機能を有する。計算機資源使用量以外にも、計算機資源使用量推定部１０３は、処理時間等、処理実行に関する指標の推定値を出力してもよい。
【００４５】
なお、本実施形態の計算機資源使用量推定装置１００は計算機資源使用量を推定の対象にしているが、計算機資源使用量以外の値を推定の対象にしてもよい。例えば、計算機資源使用量推定装置１００は、分散処理システムにおけるタスクの処理時間を推定してもよい。本実施形態において、計算機資源使用量推定装置１００が推定する推定値であれば、どのような値でも推定の精度が向上することが見込まれる。
【００４６】
なお、本実施形態の計算機資源使用量推定装置１００は、例えば、記憶媒体に格納されているプログラムに従って処理を実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によって実現される。すなわち、入力データ変換部１０１、計算機資源使用量推定モデル生成部１０２および計算機資源使用量推定部１０３は、例えば、プログラム制御に従って処理を実行するＣＰＵによって実現される。
【００４７】
また、計算機資源使用量推定装置１００における各部は、ハードウェア回路によって実現されてもよい。
【００４８】
［動作の説明］
以下、本実施形態の入力データ変換部１０１の動作を図４、図７および図１０を参照して説明する。
【００４９】
最初に、本実施形態の入力データ変換部１０１がジョブ特徴情報に基づいて、ジョブ特徴情報の１つであるジョブの名前に対して、ジョブの名前を構成する単語群の単語がそれぞれ含まれているか否かを示す単語含有情報を作成する動作を、図４を参照して説明する。図４は、第１の実施形態における入力データ変換部１０１による単語含有情報の作成処理の動作を示すフローチャートである。
【００５０】
図５は、入力データ変換部１０１に入力されるジョブ特徴情報の例を示す説明図である。図５は、分散処理システムにおける処理で観測された、タスクに関する一部の情報を示す。図５に示すジョブ特徴情報は、タスク番号と、ジョブの名前とで構成される。
【００５１】
図６は、入力データ変換部１０１が出力する単語含有情報の例を示す説明図である。図６は、図５に示すジョブ特徴情報に含まれるジョブの名前に基づいて入力データ変換部１０１が作成した単語含有情報である。以下、図４を参照して、入力データ変換部１０１が、図５に示すジョブ特徴情報に基づいて図６に示す単語含有情報を作成する動作を説明する。
【００５２】
図５に示すようなジョブ特徴情報が入力されると、入力データ変換部１０１は、出力する単語含有情報を、タスク番号と、ジョブ特徴情報に含まれるジョブの名前を構成する単語の候補群とで構成する（ステップＳ１０１）。
【００５３】
入力データ変換部１０１は、単語含有情報を構成する際に、例えば生成元にした情報の識別子を接頭辞として付与することによって、単語の候補の名前を作成する。なお、作成された名前が一意に識別されるのであれば、入力データ変換部１０１は、他の方法で単語の候補の名前を作成してもよい。
【００５４】
図５に示すジョブ特徴情報の、タスク番号が「１」のジョブの名前は「Cluster Iterator running iteration 3 over priorPath: kmeans/46/clusters-2」である。また、タスク番号が「２」のジョブの名前は「Cluster Iterator running iteration 5 over priorPath: kmeans/106/clusters-4」である。入力データ変換部１０１は、入力された２つのジョブの名前を元に、単語含有情報を、各ジョブの名前を構成する単語の候補群で構成する。
【００５５】
すなわち、入力データ変換部１０１は、タスク番号が「１」のジョブの名前に存在する「Cluster」「Iterator」「running」「iteration」「3」「over」「priorPath」「kmeans」「46」「clusters-2」の各単語に、接頭辞「Jobname」を付すことによって単語の候補の名前を作成する。
【００５６】
また、入力データ変換部１０１は、タスク番号が「１」のジョブの名前に存在せず、タスク番号が「２」のジョブの名前のみに存在する「5」「106」「clusters-4」の各単語に、接頭辞「Jobname」を付すことによって単語の候補の名前を作成する。入力データ変換部１０１は、単語含有情報を、作成した名前を示す単語の候補群で構成する。
【００５７】
なお、入力データ変換部１０１は、入力されたジョブ特徴情報の数だけ単語含有情報を作成する。入力データ変換部１０１は、作成する各単語含有情報のタスク番号に、入力されたジョブ特徴情報のタスク番号をそれぞれ設定する。
【００５８】
次いで、入力データ変換部１０１は、初期化処理として、作成された各単語含有情報の全ての単語の候補にFalseを設定する（ステップＳ１０２）。
【００５９】
次いで、入力データ変換部１０１は、入力されたジョブ特徴情報のジョブの名前を単語に分解する（ステップＳ１０４）。例えば、タスク番号が「１」のジョブの名前は、「Cluster」「Iterator」「running」「iteration」「3」「over」「priorPath」「kmeans」「46」「clusters-2」の各単語に分解される。
【００６０】
入力データ変換部１０１がジョブの名前を単語に分解する際の区切り記号や区切り文字は、例えば、ユーザやシステム等によって設定される。また、入力データ変換部１０１が、区切り記号や区切り文字を予め保持してもよい。
【００６１】
次いで、入力データ変換部１０１は、分解された単語に対応する、単語含有情報の単語の候補にTrueを設定する（ステップＳ１０６）。Trueは、設定された単語の候補がジョブの名前に含まれていることを示す二値情報である。入力データ変換部１０１は、分解された単語の数だけTrueを設定する（ステップＳ１０７）。
【００６２】
例えば、タスク番号が「１」のジョブ特徴情報の場合、対応する単語が存在する「Jobname-Cluster」「Jobname-Iterator」「Jobname-running」「Jobname-iteration」「Jobname-3」「Jobname-over」「Jobname-priorPath」「Jobname-kmeans」「Jobname-46」「Jobname-clusters-2」の各単語の候補にはTrueが設定される。対応する単語が存在しない「Jobname-5」「Jobname-106」「Jobname-clusters-4」の各単語の候補には、Falseが設定されたままになる。
【００６３】
なお、単語の候補がジョブの名前に含まれているという意味が明らかであれば、入力データ変換部１０１は、True以外の情報を単語の候補に設定してもよい。例えば、入力データ変換部１０１は、Trueの代わりに数値１を単語の候補に設定してもよい。数値１を設定する場合、入力データ変換部１０１は、ステップＳ１０２における初期化処理の際、Falseの代わりに数値０を各単語の候補に設定する。
【００６４】
入力データ変換部１０１が分解された単語の数だけTrueを設定することによって（ステップＳ１０７における判定条件が成立）、入力されたジョブ特徴情報に対応する単語含有情報が作成される。入力データ変換部１０１は、入力されたジョブ特徴情報の数だけステップＳ１０３〜ステップＳ１０８の処理を繰り返し行う。
【００６５】
入力されたジョブ特徴情報の数だけ単語含有情報を作成した後（ステップＳ１０８における判定条件が成立）、入力データ変換部１０１は、作成処理を終了する。
【００６６】
以下、図６に示すように変換された情報が計算機資源量推定アルゴリズムに対して与える効果を説明する。図６に示す単語含有情報を参照することによって、計算機資源使用量推定部１０３は、ジョブの名前を構成する単語の組み合わせを認識できる。
【００６７】
タスクの特徴情報と計算機資源量の関係がそれぞれ異なるタスクの集合に対応する単語含有情報を参照することによって、計算機資源使用量推定部１０３は、所定の単語の組が含まれているか否かでタスク集合に含まれるタスクを区分できる。
【００６８】
例えば、図５に示す各タスク特徴情報に対応する各タスクは、機械学習アルゴリズムの１つであるK-Meansを実行する。各タスクがK-Meansを実行することを事前に把握していなくても、計算機資源使用量推定部１０３は、図６に示す単語の候補「Jobname-kmeans」がTrueである単語含有情報に対応するタスク群を抽出することによって、K-Meansの実装の傾向を把握できる。アルゴリズムごとの実装の傾向を把握した上でタスク処理に要する計算機資源量を推定することによって、計算機資源使用量推定部１０３は、推定値の精度を上げることができる。
【００６９】
次に、本実施形態の入力データ変換部１０１がジョブ特徴情報に基づいて、ジョブ特徴情報の１つであるプログラムのクラス名に対して、クラス名を構成する単語群の単語がそれぞれ含まれているか否かを示す単語含有情報を作成する動作を、図７を参照して説明する。図７は、第１の実施形態における入力データ変換部１０１による単語含有情報の作成処理の他の動作を示すフローチャートである。
【００７０】
図８は、入力データ変換部１０１に入力されるジョブ特徴情報の他の例を示す説明図である。図８は、分散処理システムにおける処理で観測された、タスクに関する一部の情報を示す。図８に示すジョブ特徴情報は、タスク番号と、プログラムのクラス名とで構成される。
【００７１】
図９は、入力データ変換部１０１が出力する単語含有情報の他の例を示す説明図である。図９は、図８に示すジョブ特徴情報に含まれるプログラムのクラス名に基づいて入力データ変換部１０１が作成した単語含有情報である。以下、図７を参照して、入力データ変換部１０１が、図８に示すジョブ特徴情報に基づいて図９に示す単語含有情報を作成する動作を説明する。
【００７２】
図８に示すようなジョブ特徴情報が入力されると、入力データ変換部１０１は、出力する単語含有情報を、タスク番号と、ジョブ特徴情報に含まれるプログラムのクラス名を構成する単語の候補群とで構成する（ステップＳ１１１）。
【００７３】
入力データ変換部１０１は、単語含有情報を構成する際に、例えば生成元にした情報の識別子を接頭辞として付与することによって、単語の候補の名前を作成する。なお、作成された名前が一意に識別されるのであれば、入力データ変換部１０１は、他の方法で単語の候補の名前を作成してもよい。
【００７４】
図８に示すジョブ特徴情報の、タスク番号が「１」のクラス名は「org.apache.mahout.clustering.iterator.CIMapper」である。また、タスク番号が「２」のクラス名は「org.apache.mahout.cf.taste.hadoop.item.ItemIDIndexMapper」である。入力データ変換部１０１は、入力された２つのクラス名を元に、単語含有情報を、各クラス名を構成する単語の候補群で構成する。
【００７５】
すなわち、入力データ変換部１０１は、タスク番号が「１」のクラス名に存在する「org」「apache」「mahout」「clustering」「iterator」「CIMapper」の各単語に、接頭辞「Class」を付すことによって単語の候補の名前を作成する。
【００７６】
また、入力データ変換部１０１は、タスク番号が「１」のクラス名に存在せず、タスク番号が「２」のクラス名のみに存在する「cf」「taste」「hadoop」「item」「ItemIDIndexMapper」の各単語に、接頭辞「Class」を付すことによって単語の候補の名前を作成する。入力データ変換部１０１は、単語含有情報を、作成した名前を示す単語の候補群で構成する。
【００７７】
なお、入力データ変換部１０１は、入力されたジョブ特徴情報の数だけ単語含有情報を作成する。入力データ変換部１０１は、作成する各単語含有情報のタスク番号に、入力されたジョブ特徴情報のタスク番号をそれぞれ設定する。
【００７８】
次いで、入力データ変換部１０１は、初期化処理として、作成された各単語含有情報の全ての単語の候補にFalseを設定する（ステップＳ１１２）。
【００７９】
次いで、入力データ変換部１０１は、入力されたジョブ特徴情報のプログラムのクラス名を単語に分解する（ステップＳ１１４）。例えば、タスク番号が「１」のクラス名は、「org」「apache」「mahout」「clustering」「iterator」「CIMapper」の各単語に分解される。
【００８０】
入力データ変換部１０１がクラス名を単語に分解する際の区切り記号や区切り文字は、例えば、ユーザやシステム等によって設定される。また、入力データ変換部１０１が、区切り記号や区切り文字を予め保持してもよい。
【００８１】
次いで、入力データ変換部１０１は、分解された単語に対応する、単語含有情報の単語の候補にTrueを設定する（ステップＳ１１６）。Trueは、設定された単語の候補がプログラムのクラス名に含まれていることを示す二値情報である。入力データ変換部１０１は、分解された単語の数だけTrueを設定する（ステップＳ１１７）。
【００８２】
例えば、タスク番号が「１」のジョブ特徴情報の場合、対応する単語が存在する「Class-org」「Class-apache」「Class-mahout」「Class-clustering」「Class-iterator」「Class-CIMapper」の各単語の候補にはTrueが設定される。対応する単語が存在しない「Class-cf」「Class-taste」「Class-hadoop」「Class-item」「Class-ItemIDIndexMapper」の各単語の候補には、Falseが設定されたままになる。
【００８３】
なお、単語の候補がプログラムのクラス名に含まれているという意味が明らかであれば、入力データ変換部１０１は、True以外の情報を単語の候補に設定してもよい。例えば、入力データ変換部１０１は、Trueの代わりに数値１を単語の候補に設定してもよい。数値１を設定する場合、入力データ変換部１０１は、ステップＳ１１２における初期化処理の際、Falseの代わりに数値０を各単語の候補に設定する。
【００８４】
入力データ変換部１０１が分解された単語の数だけTrueを設定することによって（ステップＳ１１７における判定条件が成立）、入力されたジョブ特徴情報に対応する単語含有情報が作成される。入力データ変換部１０１は、入力されたジョブ特徴情報の数だけステップＳ１１３〜ステップＳ１１８の処理を繰り返し行う。
【００８５】
入力されたジョブ特徴情報の数だけ単語含有情報を作成した後（ステップＳ１１８における判定条件が成立）、入力データ変換部１０１は、作成処理を終了する。
【００８６】
以下、図９に示すように変換された情報が計算機資源量推定アルゴリズムに対して与える効果を説明する。図９に示す単語含有情報を参照することによって、計算機資源使用量推定部１０３は、プログラムのクラス名を構成する単語の組み合わせを認識できる。
【００８７】
タスクの特徴情報と計算機資源量の関係がそれぞれ異なるタスクの集合に対応する単語含有情報を参照することによって、計算機資源使用量推定部１０３は、所定の単語の組が含まれているか否かでタスク集合に含まれるタスクを区分できる。
【００８８】
例えば、図８に示す各タスク特徴情報に対応する各タスクは、機械学習アルゴリズムをApache Hadoop（登録商標）において実行するためのフレームワークである、Apache Mahout（登録商標）で実装されたプログラムを実行する。よって、Apache Mahoutで実装されたプログラムを実行するタスクに対応する単語含有情報の単語の候補「Class-mahout」にはTrueが設定される。
【００８９】
各タスクがApache Mahoutで実装されたプログラムを実行することを事前に把握していなくても、計算機資源使用量推定部１０３は、図９に示す単語の候補「Class-mahout」がTrueである単語含有情報に対応するタスク群を抽出することによって、Apache Mahoutの実装の傾向を把握できる。アルゴリズムごとの実装の傾向を把握した上でタスク処理に要する計算機資源量を推定することによって、計算機資源使用量推定部１０３は、推定値の精度を上げることができる。
【００９０】
次に、本実施形態の入力データ変換部１０１が、ジョブ特徴情報の１つである、プログラム実行時の観測値およびプログラム実行時に指定されるオプション数値を含むジョブ特徴情報に基づいて、数値変換ラベル情報を作成する動作を、図１０を参照して説明する。
【００９１】
図１０は、第１の実施形態における入力データ変換部１０１による数値変換ラベル情報の作成処理の動作を示すフローチャートである。具体的には、プログラム実行時の観測値としてファイル読み出しバイト数を、プログラム実行時に指定されるオプション数値として所定のコマンドライン引数の値をそれぞれ例に説明する。
【００９２】
図１１は、入力データ変換部１０１に入力されるジョブ特徴情報の他の例を示す説明図である。図１１は、分散処理システムにおける処理で観測された、タスクに関する一部の情報を示す。図１１に示すジョブ特徴情報は、タスク番号と、ファイル読み出しバイト数と、コマンドライン引数の１つであるoption1とで構成される。option1は、タスク番号が示すタスクが実行するアルゴリズムに与えられるパラメータの１つである。
【００９３】
図１２は、入力データ変換部１０１が出力する数値変換ラベル情報の例を示す説明図である。図１２は、図１１に示すジョブ特徴情報に含まれるファイル読み出しバイト数とoption1の値に基づいて入力データ変換部１０１が作成した数値変換ラベル情報である。以下、図１０を参照して、入力データ変換部１０１が、図１１に示すジョブ特徴情報に基づいて図１２に示す数値変換ラベル情報を作成する動作を説明する。
【００９４】
図１１に示すようなジョブ特徴情報が入力されると、入力データ変換部１０１は、出力する数値変換ラベル情報を、タスク番号と、ラベル情報群で構成する（ステップＳ１２１）。ラベル情報群には、ジョブ特徴情報に含まれるファイル読み出しバイト数およびoption1の値がそれぞれ変換された値が設定される。ラベル情報に設定された値は、文字列で表された識別子として扱われる。
【００９５】
入力データ変換部１０１は、数値変換ラベル情報を構成する際に、例えば生成元にした情報の識別子を接頭辞として付与することによって、ラベル情報の名前を作成する。なお、作成された名前が一意に識別されるのであれば、入力データ変換部１０１は、他の方法でラベル情報の名前を作成してもよい。
【００９６】
また、入力データ変換部１０１は、値が置き換えられたジョブ特徴情報を数値変換ラベル情報にしてもよい。図１２に示す数値変換ラベル情報は、図１１に示すジョブ特徴情報の値が置き換えられることによって作成されている。具体的には、メモリ使用量の値が置き換えられることによって作成されている。
【００９７】
次いで、入力データ変換部１０１は、関数ｆを用いて、ジョブ特徴情報に含まれる値ｖを値ｖ´に変換する（ステップＳ１２４）。入力データ変換部１０１が値を変換する際に用いる関数ｆは、例えば、ユーザやシステム等によって設定される。また、入力データ変換部１０１が、関数ｆを予め保持してもよい。
【００９８】
入力データ変換部１０１は、関数ｆに任意の数学関数を用いる。図１２に示す値への変換に用いられる関数ｆは、f=floor(log10(v))である。
【００９９】
次いで、入力データ変換部１０１は、値ｖに対応する数値変換ラベル情報のラベル情報に、変換された値ｖ´を設定する（ステップＳ１２５）。入力データ変換部１０１は、値の変換および変換された値の設定を、ジョブ特徴情報に含まれる変換対象値の数だけ行う（ステップＳ１２６）。
【０１００】
例えば、図１１に示すタスク番号が「１」のジョブ特徴情報の場合、ファイル読み出しバイト数「３０１３５５２２６」は、関数ｆにより「８」に変換される。また、option1（コマンドライン引数）「０．０１」は、関数ｆにより「−２」に変換される。
【０１０１】
また、例えば、図１２に示すタスク番号が「１」の数値変換ラベル情報の場合、ファイル読み出しバイト数には文字列「８」が、option1（コマンドライン引数）には文字列「−２」がそれぞれ設定される。
【０１０２】
入力データ変換部１０１が値の変換および変換された値の設定をジョブ特徴情報に含まれる変換対象値の数だけ行うことによって（ステップＳ１２６における判定条件が成立）、入力されたジョブ特徴情報に対応する数値変換ラベル情報が作成される。入力データ変換部１０１は、入力されたジョブ特徴情報の数だけステップＳ１２２〜ステップＳ１２７の処理を繰り返し行う。
【０１０３】
入力されたジョブ特徴情報の数だけ数値変換ラベル情報を作成した後（ステップＳ１２７における判定条件が成立）、入力データ変換部１０１は、作成処理を終了する。
【０１０４】
以下、図１２に示すように変換された情報が計算機資源量推定アルゴリズムに対して与える効果を説明する。図１２に示す数値変換ラベル情報には、数値情報が文字列のラベル情報として含まれている。
【０１０５】
よって、計算機資源使用量推定部１０３は、図１２に示す数値変換ラベル情報を用いた場合、数値情報が入力データとして不適切であり、高精度で計算機資源量を推定できる、または容易に実装される等の利点を持つ有利なアルゴリズムを使用できる。
【０１０６】
例えば、ナイーブベイズアルゴリズムは、入力データを離散値として扱う。連続量である数値情報を扱うと、ナイーブベイズアルゴリズムは、全ての値を不連続な離散値として解釈する。
【０１０７】
不連続な離散値として解釈する動作は、ナイーブベイズアルゴリズムが本来行う動作ではない。不連続な離散値として解釈した場合、ナイーブベイズアルゴリズムは、推定処理において過学習などを行う。過学習などが行われる場合、ナイーブベイズアルゴリズムによる計算機資源量の推定値の精度が劣化する。
【０１０８】
本実施形態の入力データ変換部１０１が出力する数値変換ラベル情報には、関数ｆによって連続量から離散量に変換された数値が、ラベル情報として含まれている。ラベル情報を含む数値変換ラベル情報を入力データにする場合、計算機資源使用量推定部１０３は、例えばナイーブベイズアルゴリズムのような離散値しか扱うことができないアルゴリズムを用いることができる。すなわち、計算機資源使用量推定部１０３がナイーブベイズアルゴリズムを用いてタスク処理に要する計算機資源量を精度よく推定できる可能性が高まる。
【０１０９】
また、関数ｆを調整することによって、入力データ変換部１０１は、入力データの分布を別の分布に変換できる。データ分布が変換されることによって、計算機資源使用量推定部１０３がより明確にデータを区分けできる可能性が高まる。
【０１１０】
本実施形態によれば、分散処理システムにおけるタスクの処理に要する計算機資源量が精度よく推定される。その理由は、入力データ変換部１０１が出力する情報を入力とすることによって、計算機資源使用量推定モデル生成部１０２は、計算機資源量を求める関数の形を決定づける要因を推定アルゴリズムごとに容易に分類できる。要因の推定アルゴリズムごとの分類は、上記の単語の候補「Jobname-kmeans」がTrueであるタスク群を抽出すること、または単語の候補「Class-mahout」がTrueであるタスク群を抽出することに相当する。
【０１１１】
分類された要因を計算機資源量の推定アルゴリズム生成のための入力とすることによって、計算機資源使用量推定モデル生成部１０２は、タスク処理における値の分布に近い形式の関数を生成できる。計算機資源使用量推定モデル生成部１０２が生成した、タスク処理における値の分布に近い形式の関数を用いて計算機資源使用量を推定することによって、計算機資源使用量推定部１０３は、推定精度を上げることができる。
【０１１２】
実施形態２．
［構成の説明］
次に、本発明の第２の実施形態を、図面を参照して説明する。図１３は、本発明による計算機資源使用量推定装置の第２の実施形態の構成例を示すブロック図である。
【０１１３】
図１３に示すように、本実施形態における計算機資源使用量推定装置１００は、第１の実施形態と比較して、推定値逆変換部１０４が追加されている点が異なる。
【０１１４】
推定値逆変換部１０４は、計算機資源使用量推定部１０３が出力する値を、計算機資源使用量推定値に逆変換する機能を有する。推定値逆変換部１０４は、例えば、プログラム制御に従って処理を実行するＣＰＵによって実現される。
【０１１５】
本実施形態において、計算機資源使用量推定モデル生成部１０２は、入力データ変換部１０１が出力したデータを入力として推定モデルを生成する。また、計算機資源使用量推定部１０３は、入力データ変換部１０１が出力したデータを入力として、特徴がまだ把握されていないタスクの計算機資源使用量の値を、入力されたデータと同じ形式で出力する。
【０１１６】
また、推定値逆変換部１０４は、計算機資源使用量推定部１０３が出力する計算機資源使用量推定値を示す値を、計算機資源使用量推定値を示す数値情報に変換して出力する。本実施形態の計算機資源使用量推定装置１００を使用することによって、ユーザや分散処理システムのスケジューラ等は、タスク処理に要する計算機資源量を推定できる。
【０１１７】
［動作の説明］
以下、本実施形態の入力データ変換部１０１の動作を図１４、推定値逆変換部１０４の動作を図１７を参照してそれぞれ説明する。
【０１１８】
最初に、本実施形態の入力データ変換部１０１が、ジョブ特徴情報の１つである、プログラム実行時に観測された計算機資源使用量を含むジョブ特徴情報に基づいて数値変換ラベル情報を作成する動作を、図１４を参照して説明する。図１４は、第２の実施形態における入力データ変換部１０１による数値変換ラベル情報の作成処理の動作を示すフローチャートである。
【０１１９】
図１５は、入力データ変換部１０１に入力されるジョブ特徴情報の他の例を示す説明図である。図１５は、分散処理システムにおける処理で観測された、タスクに関する一部の情報を示す。図１５に示すジョブ特徴情報は、タスク番号と、メモリ使用量とで構成される。本実施形態では、メモリ使用量が推定対象の計算機資源量である。
【０１２０】
図１６は、入力データ変換部１０１が出力する数値変換ラベル情報の他の例を示す説明図である。図１６は、図１５に示すジョブ特徴情報に含まれるメモリ使用量に基づいて入力データ変換部１０１が作成した数値変換ラベル情報である。以下、図１４を参照して、入力データ変換部１０１が、図１５に示すジョブ特徴情報に基づいて図１６に示す数値変換ラベル情報を作成する動作を説明する。
【０１２１】
図１５に示すようなジョブ特徴情報が入力されると、入力データ変換部１０１は、出力する数値変換ラベル情報を、タスク番号と、ラベル情報群で構成する（ステップＳ２０１）。ラベル情報群には、ジョブ特徴情報に含まれるメモリ使用量が変換された値が設定される。ラベル情報に設定された値は、文字列で表された識別子として扱われる。
【０１２２】
入力データ変換部１０１は、数値変換ラベル情報を構成する際に、例えば生成元にした情報の識別子を接頭辞として付与することによって、ラベル情報の名前を作成する。なお、作成された名前が一意に識別されるのであれば、入力データ変換部１０１は、他の方法でラベル情報の名前を作成してもよい。
【０１２３】
また、入力データ変換部１０１は、値が置き換えられたジョブ特徴情報を数値変換ラベル情報にしてもよい。図１６に示す数値変換ラベル情報は、図１５に示すジョブ特徴情報の値が置き換えられることによって作成されている。具体的には、メモリ使用量の値が置き換えられることによって作成されている。
【０１２４】
次いで、入力データ変換部１０１は、関数ｆを用いて、ジョブ特徴情報に含まれる値ｖを値ｖ´に変換する（ステップＳ２０４）。入力データ変換部１０１が値を変換する際に用いる関数ｆは、例えば、ユーザやシステム等によって設定される。また、入力データ変換部１０１が、関数ｆを予め保持してもよい。
【０１２５】
入力データ変換部１０１は、関数ｆに任意の数学関数を用いる。図１６に示す値への変換に用いられる関数ｆは、f=floor(log2(v))である。
【０１２６】
次いで、入力データ変換部１０１は、値ｖに対応する数値変換ラベル情報のラベル情報に、変換された値ｖ´を設定する（ステップＳ２０５）。入力データ変換部１０１は、値の変換および変換された値の設定を、ジョブ特徴情報に含まれる変換対象値の数だけ行う（ステップＳ２０６）。
【０１２７】
例えば、図１５に示すタスク番号が「１」のジョブ特徴情報の場合、メモリ使用量「１８２０８５２２２４」は、関数ｆにより「３０」に変換される。また、図１６に示すタスク番号が「１」の数値変換ラベル情報の場合、メモリ使用量には文字列「３０」が設定される。
【０１２８】
入力データ変換部１０１が値の変換および変換された値の設定をジョブ特徴情報に含まれる変換対象値の数だけ行うことによって（ステップＳ２０６における判定条件が成立）、入力されたジョブ特徴情報に対応する数値変換ラベル情報が作成される。入力データ変換部１０１は、入力されたジョブ特徴情報の数だけステップＳ２０２〜ステップＳ２０７の処理を繰り返し行う。
【０１２９】
入力されたジョブ特徴情報の数だけ数値変換ラベル情報を作成した後（ステップＳ２０７における判定条件が成立）、入力データ変換部１０１は、作成処理を終了する。
【０１３０】
入力データ変換部１０１は、作成した数値変換ラベル情報を、機械学習アルゴリズム等が実装された計算機資源使用量推定モデル生成部１０２に入力する。計算機資源使用量推定モデル生成部１０２は、入力された数値変換ラベル情報を用いて、メモリ使用量の推定値を算出するための推定モデルを生成する。
【０１３１】
次に、本実施形態の推定値逆変換部１０４が、推定アルゴリズムの出力値を計算機資源の推定使用量に逆変換する動作を、図１７を参照して説明する。図１７は、第２の実施形態における推定値逆変換部１０４による推定メモリ使用量への逆変換処理の動作を示すフローチャートである。図１７は、推定値逆変換部１０４が、推定モデルが出力する出力値をメモリ使用量の推定値に逆変換する動作を示す。
【０１３２】
図１８は、推定モデルが出力する数値変換ラベル情報の例を示す説明図である。数値変換ラベル情報は、タスク番号と、メモリ使用量（予測値）とで構成されている。メモリ使用量（予測値）に設定される値は、関数ｆによって変換された後の推定メモリ使用量である。
【０１３３】
図１８に示すように、タスク番号が「１１」の数値変換ラベル情報の、メモリ使用量（予測値）は「２７」である。すなわち、タスク番号が「１１」のタスクに対する推定モデルの出力値は「２７」である。同様に、タスク番号が「１２」の数値変換ラベル情報の、メモリ使用量（予測値）は「３１」である。すなわち、タスク番号が「１２」のタスクに対する推定モデルの出力値は「３１」である。
【０１３４】
図１９は、推定値逆変換部１０４が出力する推定メモリ使用量情報の例を示す説明図である。図１９は、図１８に示す推定モデルが出力した数値変換ラベル情報に含まれるメモリ使用量の推定値を、推定値逆変換部１０４が逆変換することによって作成した推定メモリ使用量情報を示す。推定メモリ使用量情報は、タスク番号と、メモリ使用量（予測値）とで構成されている。メモリ使用量（予測値）の単位はバイトである。
【０１３５】
図１９に示すように、タスク番号が「１１」の推定メモリ使用量情報の、メモリ使用量（予測値）は「１３４２１７７２８」である。すなわち、タスク番号が「１１」のタスクに対するメモリ使用量の推定値は、１３４２１７７２８バイトである。同様に、タスク番号が「１２」の推定メモリ使用量情報の、メモリ使用量（予測値）は「２１４７４８３６４８」である。すなわち、タスク番号が「１２」のタスクに対するメモリ使用量の推定値は、２１４７４８３６４８バイトである。
【０１３６】
以下、図１７を参照して、推定値逆変換部１０４が、図１８に示す数値変換ラベル情報に基づいて図１９に示す推定メモリ使用量情報を作成する動作を説明する。
【０１３７】
推定値逆変換部１０４は、推定モデルが出力した数値変換ラベル情報に含まれる出力値ｐ´を、図１４に示すステップＳ２０４における変換対象値の変換処理で用いられた関数ｆの逆関数ｆ−１に入力する。本実施形態におけるｆ−１は、f-1=2p’ である。ｆ−１に入力することによって、推定値逆変換部１０４は、推定値ｐを得る（ステップＳ２１１）。推定値逆変換部１０４は、得られた推定値ｐを基に、推定メモリ使用量情報を作成する。
【０１３８】
推定値逆変換部１０４は、入力された数値変換ラベル情報の数だけステップＳ２１１の処理を繰り返し行う。入力された数値変換ラベル情報の数だけ推定メモリ使用量情報を作成した後、推定値逆変換部１０４は、処理を終了する。
【０１３９】
以上より、本実施形態の計算機資源使用量推定装置１００は、推定モデルが出力した数値変換ラベル情報に含まれる文字列を、数値情報である計算機資源使用量の推定値に変換できる。変換された推定値を用いることで、分散処理システムは、より高速またはより高効率にタスクを処理できる。その理由は、推定値を用いることで、処理に割り当てる計算機資源量を、求められる最少の量にできる可能性が高まるためである。
【０１４０】
例えば、ユーザが、分散処理システムにおける全ての処理が２ＧＢのメモリを使用するように設定したとする。設定された場合、４ＧＢのメモリを搭載している計算機は、２つの処理を並列に実行できる。しかし、処理に使用されるメモリが１ＧＢの場合、上記の設定では２ＧＢのメモリが計算機に無駄に割り当てられている。
【０１４１】
処理に要するメモリ量が１ＧＢであることを推定できれば、ユーザは、分散処理システムが４ＧＢのメモリを搭載している計算機に一度に４つの処理を割り当てるように設定できる。４つの処理が並列に実行されることで、分散処理システムは、上記の内容が設定された場合に比べて２倍の速さでジョブを処理できる。また，２ＧＢのメモリの無駄な割り当てがなくなるので、上記の内容が設定された場合に比べて計算機資源の利用効率が高まる。
【０１４２】
以下、図１６に示すように変換された情報が計算機資源量推定アルゴリズムに対して与える効果を説明する。図１６に示す数値変換ラベル情報には、推定対象である数値情報が文字列のラベル情報として含まれている。
【０１４３】
よって、計算機資源使用量推定部１０３は、図１６に示す数値変換ラベル情報を用いた場合、数値情報を推定値として推定することが難しく、高精度で計算機資源量を推定できる、または容易に実装される等の利点を持つ有利なアルゴリズムを使用できる。
【０１４４】
例えば、ナイーブベイズアルゴリズムは、離散値を推定対象として扱う。連続量である数値情報を推定対象にすると、ナイーブベイズアルゴリズムは、全ての値を不連続な離散値として解釈する。
【０１４５】
不連続な離散値として解釈する動作は、ナイーブベイズアルゴリズムが本来行う動作ではない。不連続な離散値として解釈した場合、ナイーブベイズアルゴリズムは、推定処理において過学習などを行う。過学習などが行われる場合、ナイーブベイズアルゴリズムによる計算機資源量の推定値の精度が劣化する。
【０１４６】
本実施形態の入力データ変換部１０１が出力する数値変換ラベル情報には、関数ｆによって連続量から離散量に変換された数値が、ラベル情報として含まれている。ラベル情報を含む数値変換ラベル情報を推定対象にすることによって、計算機資源使用量推定部１０３は、例えばナイーブベイズアルゴリズムのような推定値に離散値しか扱うことができないアルゴリズムを用いることができる。すなわち、計算機資源使用量推定部１０３がナイーブベイズアルゴリズムを用いてタスク処理に要する計算機資源量を精度よく推定できる可能性が高まる。
【０１４７】
また、関数ｆを調整することによって、計算機資源使用量推定装置１００は、適切な解像度の推定値を得ることができる。例えば、関数ｆに対数関数を用いることによって、計算機資源使用量推定装置１００は、微少な変化量の影響を受けずに値の大きな推定値を推定できる。その結果、分散処理システムの実態に則した、適切な程度で計算機資源量が推定される可能性が高まる。
【０１４８】
次に、本発明の概要を説明する。図２０は、本発明による出力装置の概要を示すブロック図である。本発明による出力装置１０は、分散処理システムのジョブの特徴を示すジョブ特徴情報に基づいて、ジョブを構成するタスクの処理に要する計算機資源量を推定する推定モデルに適した形式の情報である推定モデル適用情報を出力する出力部１１（例えば、入力データ変換部１０１）を備える。
【０１４９】
そのような構成により、出力装置は、分散処理システムにおけるタスクの処理に要する計算機資源量を推定するモデルに適した形式の情報を提供できる。
【０１５０】
また、推定モデル適用情報は、ジョブ特徴情報に含まれる文字列情報が示す文字列が所定の単語を含むか否かを示す二値情報を有する単語含有情報を含んでもよい。
【０１５１】
そのような構成により、出力装置は、ジョブの名前やクラス名に所定の単語が含まれているか否かを示す情報を提供できる。
【０１５２】
また、推定モデル適用情報は、ジョブ特徴情報に含まれる数値情報が示す数値が所定の関数で変換された値を文字列ラベル情報として有する数値変換ラベル情報を含んでもよい。
【０１５３】
そのような構成により、出力装置は、推定モデルが扱いやすい文字列ラベル情報を含む情報を提供できる。
【０１５４】
また、出力装置１０は、推定モデルが出力した推定モデル適用情報を、推定モデル適用情報に対応するジョブ特徴情報と同じ形式で出力する形式変換部（例えば、推定値逆変換部１０４）を備えてもよい。
【０１５５】
そのような構成により、出力装置は、ユーザが求める形式で計算機資源使用量の情報を提供できる。
【０１５６】
また、出力装置１０は、分散処理システムにおける、ジョブ特徴情報に対応するジョブを構成するタスクの処理に要する計算機資源量を、ジョブ特徴情報に基づいて出力部１１が出力した推定モデル適用情報を推定モデルに入力することによって推定する計算機資源量推定部（例えば、計算機資源使用量推定部１０３）を備えてもよい。
【０１５７】
そのような構成により、出力装置は、推定モデル適用情報に基づいて計算機資源使用量を推定できる。
【０１５８】
また、出力装置１０は、分散処理システムにおける、ジョブ特徴情報に対応するジョブを構成するタスクの処理に要する計算機資源量を推定する推定モデルを、ジョブ特徴情報に基づいて出力部１１が出力した推定モデル適用情報を用いて作成する計算機資源量推定モデル生成部（例えば、計算機資源使用量推定モデル生成部１０２）を備えてもよい。
【０１５９】
そのような構成により、出力装置は、推定モデル適用情報に基づいて計算機資源使用量推定モデルを作成できる。
【０１６０】
図２１は、本発明によるデータ構造の概要を示すブロック図である。本発明によるデータ構造は、分散処理システムのジョブの特徴を示すジョブ特徴情報に基づいて作成された、ジョブを構成するタスクの処理に要する計算機資源量を推定する推定モデルに適した形式の情報である推定モデル適用情報を含む。
【０１６１】
そのような構成により、データ構造は、分散処理システムにおけるタスクの処理に要する計算機資源量を推定するモデルに適した形式の情報を提供できる。
【０１６２】
また、推定モデル適用情報は、ジョブ特徴情報に含まれる文字列情報が示す文字列が所定の単語を含むか否かを示す二値情報を有する単語含有情報を含んでもよい。
【０１６３】
そのような構成により、データ構造は、ジョブの名前やクラス名に所定の単語が含まれているか否かを示す情報を提供できる。
【０１６４】
また、推定モデル適用情報は、ジョブ特徴情報に含まれる数値情報が示す数値が所定の関数で変換された値を文字列ラベル情報として有する数値変換ラベル情報を含んでもよい。
【０１６５】
そのような構成により、データ構造は、推定モデルが扱いやすい文字列ラベル情報を含む情報を提供できる。
【０１６６】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１６７】
この出願は、２０１５年１月２２日に出願された日本特許出願２０１５−０１０４９２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１６８】
１０  出力装置
１１  出力部
１００  計算機資源使用量推定装置
１０１  入力データ変換部
１０２  計算機資源使用量推定モデル生成部
１０３  計算機資源使用量推定部
１０４  推定値逆変換部
【図１】
2016116990.tif 000003
【図２】
2016116990.tif 000004
【図３】
2016116990.tif 000005
【図４】
2016116990.tif 000006
【図５】
2016116990.tif 000007
【図６】
2016116990.tif 000008
【図７】
2016116990.tif 000009
【図８】
2016116990.tif 000010
【図９】
2016116990.tif 000011
【図１０】
2016116990.tif 000012
【図１１】
2016116990.tif 000013
【図１２】
2016116990.tif 000014
【図１３】
2016116990.tif 000015
【図１４】
2016116990.tif 000016
【図１５】
2016116990.tif 000017
【図１６】
2016116990.tif 000018
【図１７】
2016116990.tif 000019
【図１８】
2016116990.tif 000020
【図１９】
2016116990.tif 000021
【図２０】
2016116990.tif 000022
【図２１】
2016116990.tif 000023
【国際調査報告】
2016116990.tif 000024
2016116990.tif 000025
2016116990.tif 000026
2016116990.tif 000027