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

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

Info

Publication number
JP6620609B2
JP6620609B2 JP2016046241A JP2016046241A JP6620609B2 JP 6620609 B2 JP6620609 B2 JP 6620609B2 JP 2016046241 A JP2016046241 A JP 2016046241A JP 2016046241 A JP2016046241 A JP 2016046241A JP 6620609 B2 JP6620609 B2 JP 6620609B2
Authority
JP
Japan
Prior art keywords
processing
partial
distributed
result
prediction accuracy
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.)
Active
Application number
JP2016046241A
Other languages
English (en)
Other versions
JP2017162209A (ja
Inventor
信行 黒松
信行 黒松
エメリック ヴィエル
エメリック ヴィエル
晴康 上田
晴康 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016046241A priority Critical patent/JP6620609B2/ja
Priority to US15/452,059 priority patent/US20170262310A1/en
Publication of JP2017162209A publication Critical patent/JP2017162209A/ja
Application granted granted Critical
Publication of JP6620609B2 publication Critical patent/JP6620609B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5013Request control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Description

本発明は、分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置に関する。
近年、ビッグデータに対する機械学習が注目されている。このようなビッグデータに対する機械学習では、複数サーバによる分散処理により処理の高速化が行われる。この複数サーバによる分散処理には、例えば、インメモリ上で高速な処理を実現するApache Spark(以下、「Spark」とも称する。)などのソフトウェアが使用される。
特開2012−022558号公報 特開2013−073301号公報
機械学習は、学習フェーズと予測フェーズの二つからなる。学習フェーズでは、データを入力として予測モデルを出力する。予測フェーズでは、学習フェーズで出力された予測モデルと、入力データを基に予測する。機械学習では、予測モデルによる予測結果の予測精度が重要である。そこで、機械学習では、予測結果の予測精度を高めるため、予測モデルの変更可能な各種の処理パラメータを変えて、予測モデルの作成と予測を繰り返して、予測精度が高くなる処理パラメータの組み合わせを求める。機械学習では、予測精度の高い予測モデルを得るには、探索する処理パラメータの組み合わせの数が多いほど良い。
ところで、機械学習では、分散処理に使用可能な時間に制限がある場合がある。例えば、予測モデルの使用の開始時間が予め決まっており、分散処理に制限時間がある場合がある。この場合、制限時間までに得られた予測モデルの中から最も高い予測精度を持つ予測モデルを求める。機械学習は、制限時間内に、探索されたパラメータの組み合わせの数に応じて予測モデルの予測精度が向上する。このため、機械学習を複数サーバによって分散処理する場合、分散処理の処理効率が予測精度に影響する。機械学習のような最適化問題では、分散処理される処理の中には、最終的な予測精度に大きな影響を与えない処理も存在する。分散処理の処理効率を高めるには、このように予測精度に大きな影響を与えない処理を中断できることが望ましい。
しかしながら、Spark等の従来の分散処理のワークフレームは、実行中はそれぞれの分散処理の処理結果を管理はしておらず、また、処理の中断を判断させると、却って、並列処理の速度が落ち、分散処理の処理効率が低下する場合がある。
なお、ここでは、機械学習の分散処理を例に問題を説明した。しかし、このような問題は、従来の分散処理のワークフレームによる分散処理全般に発生する問題である。
一つの側面では、分散処理の処理効率を向上させることができる分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置を提供することを目的とする。
第1の案では、分散処理実行管理プログラムは、コンピュータに、処理対象ジョブを分散して部分処理する複数のノードそれぞれから、部分処理の処理結果を収集する処理を実行させる。分散処理実行管理プログラムは、コンピュータに、収集された部分処理の処理結果に基づき、部分処理に対応する全体処理の処理結果である全体処理結果を推定する処理を実行させる。分散処理実行管理プログラムは、コンピュータに、推定された全体処理結果に応じて、全体処理に対応する他の部分処理の実行継続可否を判断する処理を実行させる。
本発明の一の実施態様によれば、分散処理の処理効率を向上させることができるという効果を奏する。
図1は、分散処理システムの概略的な構成の一例を示す図である。 図2は、マスタ部およびワーカ部の概略的なソフトウェア構成の一例を示す図である。 図3は、機械学習の概略的な流れを模式的に示した図である。 図4は、従来のSparkによる機械学習の分散処理の一例を模式的に示した図である。 図5は、実施例に係る機械学習の分散処理の一例を模式的に示した図である。 図6は、実施例に係る分散処理システムによる機械学習の概略的な流れを模式的に示した図である。 図7は、K-cross-validationによる予測モデルの検証の概略的な流れを模式的に示した図である。 図8は、予測モデルを検証するジョブの流れを模式的に示した図である。 図9は、機械学習の概略的な流れを模式的に示した図である。 図10は、分散処理の手順の一例を示すフローチャートである。 図11は、検証処理の手順の一例を示すフローチャートである。 図12は、予測モデル検証処理の手順の一例を示すフローチャートである。 図13は、管理処理の手順の一例を示すフローチャートである。 図14は、分散処理実行管理プログラムを実行するコンピュータの構成の一例を示す説明図である。
以下に、本発明にかかる分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
実施例1に係る分散処理システムについて説明する。図1は、分散処理システムの概略的な構成の一例を示す図である。
分散処理システム1は、管理サーバ10と、複数のノード11−1,・・・,11−n(nは所定の自然数)とを有する。複数のノード11−1,・・・,11−nを、ノード11と総称する。管理サーバ10とノード11との間は、ネットワークNを介して通信可能に接続される。かかるネットワークNの一態様としては、有線または無線を問わず、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の通信網が挙げられる。
管理サーバ10は、分散処理を管理する装置である。管理サーバ10は、例えば、パーソナルコンピュータやサーバコンピュータなどのコンピュータである。管理サーバ10は、1台のコンピュータとして実装してもよく、また、複数台のコンピュータにより実装してもよい。また、管理サーバ10は、コンピュータを仮想化した仮想マシンであってもよい。なお、本実施例では、管理サーバ10を1台のコンピュータとした場合を例として説明する。図1の例は、機能的な構成を図示しているため、図示を省略しているが、管理サーバ10は、コンピュータを構成する各種のハードウェアを有する。例えば、管理サーバ10は、HDD(Hard Disk Drive)、SSD(Solid State Drive)などの記憶部や、RAM(Random Access Memory)などのメモリ、CPU(Central Processing Unit)などの装置を制御する制御部を有する。管理サーバ10は、記憶部に記憶された各種のプログラムが制御部で動作することにより各種の処理部として機能する。管理サーバ10は、マスタ部20と、管理部21とを有する。
マスタ部20は、分散処理を管理する。例えば、マスタ部20は、分散処理に関する全体情報を管理しており、各ノード11に対して分散処理のタスク割り当て、タスクの実行を指示する。管理部21は、各ノード11から実行された処理の処理結果を収集し、分散処理の実行継続可否を判断する。管理部21の詳細は後述する。
ノード11は、割り当てられた分散処理を実行する装置である。ノード11は、例えば、パーソナルコンピュータやサーバコンピュータなどのコンピュータである。各ノード11も、1台のコンピュータとして実装してもよく、また、複数台のコンピュータにより実装してもよい。また、ノード11は、コンピュータを仮想化した仮想マシンであってもよい。なお、本実施例では、各ノード11を1台のコンピュータとした場合を例として説明する。図1の例は、機能的な構成を図示しているため、図示を省略しているが、各ノード11は、コンピュータを構成する各種のハードウェアを有する。例えば、各ノード11は、HDD、SSDなどの記憶部や、RAMなどのメモリ、CPUなどの装置を制御する制御部を有する。ノード11は、記憶部に記憶された各種のプログラムが制御部で動作することにより各種の処理部として機能する。ノード11は、ワーカ部30を有する。
ワーカ部30は、分散処理を実行する。例えば、ワーカ部30は、マスタ部20から実行が指示されたタスクの処理を実行する。
ここで、分散処理を実現するマスタ部20およびワーカ部30のソフトウェア的な構成を説明する。図2は、マスタ部およびワーカ部の概略的なソフトウェア構成の一例を示す図である。図2に示すようにマスタ部20およびワーカ部30は、処理系、資源管理、分散ファイルシステムの3層に機能的に分かれる。
分散ファイルシステムは、分散処理の対象となるデータの保管・管理を行う。ビッグデータを分散処理する場合、分散処理の対象となるビッグデータは、例えば、テラバイトやペタバイトといった膨大な量のデータとなる。このようなビッグデータは、管理サーバ10や各ノード11のHDD、SSDなどの記憶部に分散して記憶される。分散ファイルシステムは、管理サーバ10や各ノード11に分散して記憶された各データを管理し、1つのシームレスなファイルシステムとして、データ・ファイルに対するアクセスおよび保管操作を可能とする。分散ファイルシステムとしては、例えば、HDFS(Hadoop Distributed File System)が挙げられるが、これに限定されるものではない。HDFSの場合、マスタ部20では、Name Nodeが動作する。ワーカ部30では、Data Nodeが動作する。
資源管理では、各ノード11のCPUやメモリ、ディスク帯域幅、ネットワーク帯域幅などの資源の割り当て管理やスケジューリングを行う。資源管理としては、例えば、YARN(Yet Another Resource Negotiator)が挙げられるが、これに限定されるものではない。YARNの場合、マスタ部20では、Resource Managerが動作する。ワーカ部30では、Node Managerが動作する。
処理系は、分散処理の実行、管理を行う。処理系としては、例えば、Sparkが挙げられるが、これに限定されるものではない。本実施例では、分散処理を実行、管理するソフトウェアとして、Sparkを用いて説明する。ただし、本実施例に係る技術は、Sparkに特有の手法ではなく、一般の並列分散処理の仕組みにも適用可能である。Sparkの場合、マスタ部20では、Driverが動作する。ワーカ部30では、Executorが動作する。
ところで、機械学習では、予測結果の予測精度を高めるため、予測モデルの変更可能な各種の処理パラメータを変えて、予測モデルの作成と予測を繰り返して、予測精度が高くなる処理パラメータの組み合わせを求める。予測モデルの変更可能な各種の処理パラメータには、例えば、学習アルゴリズム、学習アルゴリズムのハイパーパラメータ、学習に用いるライブラリなどがある。機械学習では、各処理パラメータについて探索する組み合わせの範囲を事前に指定する。各処理パラメータの探索する範囲は、管理者等のユーザが指定してもよく、以前の学習の結果などから演算等によって導出してもよい。機械学習では、指定された範囲で各処理パラメータの組み合わせを変えながら順番に、あるいは同時に学習と予測を行い、より高い予測精度を得る組み合わせを探索する。そして、機械学習では、探索の結果、最も高い予測精度が得られた予測モデルを正式に採用する。
Sparkは、インメモリ上で高速な処理を実現している。Sparkは、Sparkの出現以前にビッグデータの処理方法としてデファクトスタンダードであった、MapReduceが苦手としているジョブの繰り返し処理を高速化できる。このため、Sparkは、機械学習と親和性が高い。機械学習では、Sparkを使うことで一回の試行の処理時間が、MapReduceと比べて短縮し、試行可能な回数は向上する。
図3は、機械学習の概略的な流れを模式的に示した図である。機械学習では、予測精度の高い予測モデルを得るには、探索する処理パラメータの組み合わせの数が多いほど良い。一方、機械学習では、処理に使用可能な時間として制限時間が定まっている場合がある。例えば、機械学習では、予測モデルの使用の開始時間が予め決まっている場合がある。このため、機械学習では、Sparkによって処理の高速化を実現されるものの、実行できる試行回数が十分ではない場合がある。この場合、機械学習では、開始時間までに得られた予測モデルの中から最も高い予測精度を持つ予測モデルを求める。
図3の例では、予測モデルの探索に制限時間が定まっている。図3(A)の例は、組み合わせ1から組み合わせ5と順に予測モデルの探索の処理が実行され、組み合わせ5の途中で制限時間を超える。組み合わせ1の予測モデルは、予測精度が70%である。組み合わせ2の予測モデルは、予測精度が80%である。組み合わせ3の予測モデルは、予測精度が50%である。組み合わせ4の予測モデルは、予測精度が60%である。図3(A)の例では、予測精度が80%である組み合わせ2の予測モデルが、最も高い予測精度を持つ予測モデルとして求まる。
機械学習のような最適化問題では、分散処理される処理の中には、最終的な予測精度に大きな影響を与えない処理も存在する。例えば、組み合わせ3の予測モデルは、予測精度が50%と予測精度が低く、最終的な予測モデルとしては選択されない。分散処理の処理効率を高めるには、このように予測精度に大きな影響を与えない処理を中断できることが望ましい。
しかしながら、Spark等の従来の分散処理のワークフレームは、実行中は処理パラメータの組み合わせそれぞれの分散処理の途中の処理結果を管理していない。また、従来の分散処理のワークフレームは、処理の中断を判断させると、却って、並列処理の速度が落ち、分散処理の処理効率が低下する場合がある。例えば、従来の分散処理のワークフレームは、処理の中断を判断させ、ワークフレームの処理を強制的に打ち切った場合、処理を再度実行するために初期オーバヘッドがかかる。図3(B)の例は、組み合わせ1、組み合わせ2、組み合わせ3と順に予測モデルの探索の処理を実行し、組み合わせ3の処理の途中で予測精度が低いことが推定されたために組み合わせ3の処理を強制的に打ち切っている。この場合、従来の分散処理のワークフレームでは、組み合わせ3の処理を強制的に打ち切った後、組み合わせ3の処理を実行する際に初期オーバヘッドがかかる。初期オーバヘッドには、例えば、並列処理の起動や、過去に試した組み合わせを避けるための処理がある。図3(B)の例は、組み合わせ4から処理を再度実行し、組み合わせ5の処理の完了後に制限時間を超えている。組み合わせ1の予測モデルは、予測精度が70%である。組み合わせ2の予測モデルは、予測精度が80%である。組み合わせ4の予測モデルは、予測精度が60%である。組み合わせ5の予測モデルは、予測精度が85%である。図3(B)の例では、予測精度が85%である組み合わせ5の予測モデルが、最も高い精度を持つ予測モデルとして求まる。
初期オーバヘッドを減らす工夫として、例えば、定期的に結果をチェックポイントとして記憶し、再実行の際はチェックポインントの結果を見て一度探索した処理を避ける方法も考えられる。しかし、チェックポイントとチェックポイントの間の処理は、再実行せざるをえない。また、従来の分散処理のワークフレームは、処理を強制的に終了すると、処理を再度実行するため並列処理を起動するためのオーバヘッドを避けることができない。
そこで、本実施例に係る分散処理システム1では、図1に示すように、管理部21を設けている。本実施例に係る分散処理システム1では、分散処理の実行中に、ある処理パラメータの組み合わせの処理を継続するか否かを実行中に管理部21で判断し、分散処理の一部を選択して中止できるようにしている。管理部21は、マスタ部20およびワーカ部30による分散処理を止めることなく、実行中の結果を見て処理を継続するのか次の処理パラメータの組み合わせの処理を試行するべきかを判断する。
以下、具体的な方法の一例をより詳細に説明する。以下では、分散処理を行う代表的なソフトウェアとしてSparkを用いて説明する。ただし、本実施例に係る技術は、Sparkに特有の手法ではなく、一般の並列分散処理の仕組みにも適用可能である。
Sparkは、処理の粒度の単位として、アプリケーション>ジョブ>ステージ>タスクがある。それぞれ下位の処理が1または複数集まって上位の処理を構成する。例えば、機械学習の処理は、アプリケーションに対応する。処理パラメータの組み合わせごとの探索の処理は、1または複数のジョブの集合による処理として示すことができる。Sparkは、マスタ・ワーカ型の分散処理システムである。マスタ部20を構成するDriverが、各ワーカ部30を構成するExecutorにタスクの実行を指示する。Driverは、ジョブの結果が出るごとに、Executorから結果を取得し、次のジョブの実行を実施する。
図4は、従来のSparkによる機械学習の分散処理の一例を模式的に示した図である。Sparkによる機械学習の分散処理では、ジョブが1つ以上のステージに分けて実行される。ジョブは、Executor間でデータの共有を行う処理の切れ目でステージに分割される。ステージは、1または複数のタスクで構成され、ステージを構成するタスクが全て終わるとステージの実行が完了したとみなされる。図4の例では、3つのステージ(10個のタスク)によって一つの組み合わせによるモデル探索の処理を実現している。Executorは、タスクやステージの単位ではなくジョブの単位でDriverに処理結果を返す。Sparkによる機械学習の分散処理では、図4に示すジョブが処理パラメータの組み合わせ毎に繰り返し実行される。
Driverは、ジョブの処理を中止させる仕組みを持つ。例えば、Driverは、実行中のジョブの処理を中止する制御命令を有する。しかし、Driverは、ジョブの処理実行中に、実行中のジョブのタスクやステージの途中実行結果などの実行状況の情報を得る手段がない。このため、例えば、Executorは、ジョブの中断を判断するのに充分な情報がタスクやステージの結果としてExecutorの中に存在しても、ジョブの単位でしかDriverに処理結果を返さない。Driverは、ジョブの処理の途中では実行状況の情報が得られないため、ジョブの処理の途中で中止を判断することができない。
Sparkがタスクやステージの単位ではなくジョブの単位でExecutorからDriverに処理結果を返す理由は、細かい処理の単位でDriverに処理結果を返すと、実行効率が低下するためである。Sparkによる分散処理では、ExecutorからDriverに処理結果を返すと全体の処理の制御がDriverに移る。Executorは、Driverに処理の制御が移ると、Driverから指示があるまで分散処理がアイドル状態となる。すなわち、分散処理の実行が一旦止まる。Sparkでは、実行効率を高めるために、大きな粒度であるジョブ単位でExecutorに処理の制御を与えている。
機械学習では、例えば、処理パラメータの一つの組み合わせによる予測モデルの検証を一つのジョブとして実行する。バッチの最中に処理を途中で止めるべきか判断する情報をDriverに返すには、タスクやステージの処理結果をDriverに返さなくてはならない。この場合、タスクやステージの処理が完了するごとに、Driverに制御が移ることになり、予測モデルの検証の効率が落ち、全体として検証できる組み合わせの数が減る問題が発生する。このため、Executorは、タスクやステージの単位ではなくジョブの単位でDriverに処理結果を返す。
本実施例に係る分散処理システム1では、制御をDriverに返さずにジョブの実行を途中で停止するかを判断するため、図1に示すように、管理サーバ10に管理部21を設けている。
図5は、実施例に係る機械学習の分散処理の一例を模式的に示した図である。本実施例に係る各ノード11のExecutorは、処理を中止するべきか継続するべきかの判断基準となるタスクの処理結果が求まると、処理結果を示す処理結果情報を管理部21に送信する。図5の例では、各ステージの最終のタスクが処理結果を示す処理結果情報を管理部21に送信する。管理部21は、各ノード11から送信された処理結果情報に基づき、分散処理の実行継続可否を判断する。管理部21は、分散処理の継続が不要と判断した場合、ジョブの処理中止を指示する指示情報をDriverに送る。
本実施例に係る管理部21の構成についてより詳細に説明する。図1に示すように、管理部21は、収集部40と、推定部41と、判断部42とを有する。
収集部40は、各種の情報を収集する。例えば、収集部40は、処理対象ジョブを分散して部分処理する複数のノード11それぞれから、部分処理の処理結果を収集する。例えば、収集部40は、処理対象ジョブを分散して実行する複数のノード11から、処理対象ジョブの部分処理であるタスクやステージの処理結果を収集する。処理結果は、複数のノード11でそれぞれ処理されて保持された処理結果であってもよく、複数のノード11でそれぞれ実行されるプロセスにより生成された処理結果であってもよい。図5に示すように、ステージは、1つのExecutorで処理される場合もあり、複数のExecutorで処理される場合もある。収集部40は、それぞれのノードのExecutorで処理された処理結果、または、複数のノード11のExecutorでそれぞれ処理された処理結果を収集する。
推定部41は、各種の推定を行う。例えば、推定部41は、収集部40により収集された部分処理の処理結果に基づき、部分処理に対応する全体処理の処理結果である全体処理結果を推定する。例えば、推定部41は、収集された部分処理の処理結果に基づき、部分処理に対応するジョブの予測モデルの予測精度を推定する。例えば、推定部41は、収集されたジョブの部分処理での予測精度の平均を求め、予測精度の平均を全体処理結果の予測精度と推定する。なお、推定部41は、予測精度を1つ得た段階から平均を求めてもよく、予測精度を所定個収集した段階から平均を求めてもよい。全体処理結果の予測方法は、平均に限定されない。例えば、推定部41は、収集された部分処理の処理結果から、既知の予測モデルを用いて全体処理結果を推定してもよい。
判断部42は、各種の判断を行う。例えば、判断部42は、推定部41により推定された全体処理結果に応じて、全体処理に対応する他の部分処理の実行継続可否を判断する。例えば、判断部42は、推定部41により推定された全体処理結果が、ジョブを中止するべきかの判断基準を満たす場合、ジョブの残りの処理を不要と判断する。判断基準は、固定で設定されていてもよく、管理者等のユーザから事前に指定されてもよく、以前の処理結果を用いて動的に定めてもよい。
ジョブを中止するべきかの判断基準には、2つの状況が考えられる。1つ目は、要求される性能条件を満たすことが推定される場合である。例えば、部分処理の結果から予測モデルが十分な予測精度が得られることが推定される場合である。2つ目は、要求される性能条件を満たさないことが推定される場合である。例えば、部分処理の結果から予測モデルの予測精度が低いことが推定される場合である。
そこで、判断部42は、推定部41により推定された全体処理結果が、要求される所定の性能条件を満たすことが推定される場合、または、性能条件を満たさないことが推定される場合、前記全体処理に対応する他の部分処理の実行を不要と判断する。例えば、判断部42は、推定部41により推定された予測精度が、第1の予測精度を満たす場合、または、第1の予測精度より低い第2の予測精度を満たさない場合、予測精度を推定したジョブの残りの部分処理の実行を不要と判断する。例えば、第1の予測精度は、85%とする。第2の予測精度は、50%とする。第1の予測精度および第2の予測精度は、固定で設定されていてもよく、管理者等のユーザから事前に指定されてもよく、以前の処理結果を用いて動的に定めてもよい。例えば、第1の予測精度は、初期値を85%とするが、予測精度が85%を超えた予測モデルがある場合、当該予測モデルの予測精度に更新してもよい。第2の予測精度は、初期値を50%とするが、予測モデルの予測精度が収集された場合、収集された予測精度の最大値から所定値(例えば、15%)低い値に更新してもよい。
判断部42は、ジョブの残りの部分処理の実行を不要と判断した場合、マスタ部20に対してジョブの処理中止を指示する指示情報を送る。
マスタ部20を構成するDriverは、ジョブの処理中止を指示する指示情報を受け付けると、処理中止を指示されたジョブを中止して次のジョブの実行をExecutorに指示する。
ビッグデータの分散処理では、データの内容が事前に分からない。このため、従来の分散処理のワークフレームでは、一度全てを処理しなければ全貌が分からなかった。本実施例では、管理部21が、ジョブごとに、ジョブが処理対象とするデータ全ての処理の終了を待つことなく実行中に得られる情報を用いて処理の中断を判断することで、効率的な処理を実現できる。
なお、本実施例では、管理部21を管理サーバ10に設けた場合を例に説明したが、これに限定されない。管理部21は、各ノード11のExecutorから実行結果を受け取り、管理サーバ10のマスタ部20に指示情報を送信できれば、何れの装置で動作してもよい。例えば、管理部21は、何れのノード11、または、管理サーバ10およびノード11とは異なるサーバに設けてもよい。この場合、各ノード11のExecutorには、実行結果を送信するために管理部21の実行場所を示す情報を通知する。例えば、マスタ部20は、Sparkの起動前に静的な設定情報としてコマンドラインや設定ファイルを経由して各ノード11のExecutorに管理部21の動作場所を通知する。なお、管理部21の動作場所が固定であり、各ノード11のExecutorが管理部21の動作場所に固定で実行結果を送信する場合、マスタ部20は、各ノード11のExecutorへ管理部21の動作場所を通知しなくてもよい。
図6は、実施例に係る分散処理システムによる機械学習の概略的な流れを模式的に示した図である。図6の例では、図3と同様に、予測モデルの探索に制限時間が定まっている。図6の例は、組み合わせ1から組み合わせ6と順に予測モデルの探索の処理が実行されている。各ノード11のExecutorは、処理を中止するべきか継続するべきかの判断基準となるタスクの処理結果が求まると、処理結果を示す処理結果情報を管理部21に通知する。
管理部21は、通知された処理結果情報から予測される組み合わせの試行結果が充分な予測精度に達しないと判断した場合、マスタ部20に対してジョブの処理中止を指示する指示情報を送る。マスタ部20は、処理中止を指示する指示情報を受け付けると、次の組み合わせによる試行を開始する。図6の例は、組み合わせ1、組み合わせ2、組み合わせ3と順に予測モデルの探索の処理を実行し、組み合わせ3の処理の途中で予測精度が低いことが推定されたために組み合わせ3の処理を中止している。そして、図6の例は、組み合わせ4、組み合わせ5、組み合わせ6と順に予測モデルの探索の処理を実行し、組み合わせ6の処理の完了後に制限時間を超えている。組み合わせ1の予測モデルは、予測精度が70%である。組み合わせ2の予測モデルは、予測精度が80%である。組み合わせ4の予測モデルは、予測精度が60%である。組み合わせ5の予測モデルは、予測精度が85%である。組み合わせ6の予測モデルは、予測精度が90%である。図6の例では、予測精度が90%である組み合わせ6の予測モデルが、最も高い予測精度を持つ予測モデルとして求まる。
このように、実施例に係る分散処理システム1は、処理を中止するべきか継続するべきかを判断するために制御がDriverに戻ることはないため、分散処理の処理効率を向上させることができる。これにより、分散処理システム1は、制限時間内に試行できる組み合わせの数を増やすことができる。なお、本実施例では、Sparkを例にジョブの中止の実現方法を説明したが、類似する他のシステムにも同様に適用できる。
次に、ジョブの処理を中止する方法の具体的な一例を説明する。機械学習の分散処理では、処理パラメータの組み合わせごとに、予測モデルの検証がジョブとして実行される。予測モデルの検証では、K-cross-validationにより検証が行われ、検証結果として予測モデルの予測精度が得られる。
K-cross-validationでは、処理対象のデータをK個に分割し、訓練用データと検証用データのパターンを作成する。例えば、K-cross-validationでは、分割されたK個の分割データの何れか1個を検証用データとし、残りのK−1個の分割データを訓練用データとしたパターンを、検証用データとする分割データを変えて複数パターン作成する。本実施例では、K個の分割データをそれぞれ検証用データとし、残りのK−1個の分割データを訓練用データとしたK個のパターンを作成する。
予測モデルの検証では、作成したK個のパターンの訓練用データと検証用データでそれぞれ予測モデルを作成して検証し、得られたK個の予測モデルの予測精度を統合することで組み合わせの検証とする。統合の方法としては平均値や最大値など複数の方法がある。
図7は、K-cross-validationによる予測モデルの検証の概略的な流れを模式的に示した図である。図7では、K=4、すなわち、4-fold- cross-validationを例に説明する。図7に示す予測モデルの検証では、4個のパターン1-f、2-f、3-f、4-fについて、それぞれ予測モデルを作成(train)して検証(predict)を順に行う。例えば、パターン1-f、2-f、3-f、4-fと順番に処理する際に、図7に示すように、パターン1-fの処理で96%と機械学習では充分に高い予測精度が得られたものとする。このように高い予測精度が得られた場合、予測モデルの予測精度が充分であると判断して、パターン2-f、3-f、4-fの処理をスキップすれば、処理時間は、1/4になる。
一方、例えば、パターン1-f、2-f、3-f、4-fと順番に処理していく際に、パターン1-fの処理で、例えば50%と機械学習では低い予測精度が得られたものとする。予測モデルの検証では、このように充分に低い予測精度が得られた場合、残りの処理に時間をかけても予測精度の向上が見込めないため、パターン2-f、3-f、4-fの処理をスキップすれば、処理時間は、1/4になる。
図8は、予測モデルを検証するジョブの流れを模式的に示した図である。図8では、1つのジョブにおいて、2個のパターンa、bの予測モデルの作成と検証を3つのノード11により順に分散処理する場合を例に説明する。図8の(A)は、従来の分散処理により、パターンa、bの予測モデルの作成と検証が順に行われた場合を示している。図8の(A)では、次のジョブが開始されるタイミングは、パターンa、bの処理が完了した時刻t1となる。
図8の(B)は、本実施例の分散処理により、パターンa、bの予測モデルの作成と検証が順に行われた場合を示している。各ノード11は、予測モデルを検証した結果の予測精度を処理結果として管理部21に通知する。図8の(B)の例は、管理部21が、各ノード11から通知されたパターンaでの予測精度からジョブの残りの部分処理の実行を不要と判断してマスタ部20に対してジョブの処理中止を指示した場合を示している。マスタ部20を構成するDriverは、ジョブの処理中止が指示されると、ジョブを中止して次のジョブの実行をExecutorに指示する。図8の(B)の例は、一部のノード11では、パターンbの予測モデルの作成の処理を開始しているが、処理を中止して次のジョブを実行する。図8の(B)では、次のジョブが開始されるタイミングは、パターンaの処理が完了した時刻t2となる。
図9は、機械学習の概略的な流れを模式的に示した図である。図9では、一つの処理パラメータの組み合わせで、10個のパターンについて予測モデルの作成と検証を分散処理する場合を例に説明する。図9の(A)は、従来の分散処理により、組み合わせ1、組み合わせ2でそれぞれ10個のパターンの予測モデルの作成と検証が全て行われた場合を示している。組み合わせ1では、予測精度の最大が80%である。組み合わせ2は、予測精度の最大が85%である。図9の(A)の例では、予測精度の最大が85%である組み合わせ2の予測モデルが、最も高い予測精度を持つ予測モデルとして求まる。
図9の(B)は、本実施例の分散処理により、組み合わせ1〜組み合わせ4でそれぞれ予測モデルの作成と検証が全て行われた場合を示している。組み合わせ1では、10個のうち4個目のパターンでジョブが中止されており、予測精度の最大が75%である。組み合わせ2は、10個のうち7個目のパターンでジョブが中止されており、予測精度の最大が83%である。組み合わせ3は、10個のうち2個目のパターンでジョブが中止されており、予測精度の最大が89%である。組み合わせ4は、10個のうち5個目のパターンでジョブが中止されており、予測精度の最大が92%である。図9の(B)の例では、予測精度の最大が92%である組み合わせ4の予測モデルが、最も高い予測精度を持つ予測モデルとして求まる。このように、本実施例に係る分散処理システム1は、分散処理の処理効率が向上し、多くの処理パラメータの組み合わせを探索できるため、機械学習の予測精度が向上する。
次に、本実施例に係る分散処理システム1の各装置が実行する処理の流れについて説明する。最初に、管理サーバ10が機械学習の分散処理を実行する流れについて説明する。図10は、分散処理の手順の一例を示すフローチャートである。この分散処理は、所定のタイミング、例えば、予め指定された期間毎のタイミングや、指定された時刻のタイミング、不図示の操作画面から処理開始の指示を受け付けたタイミングで実行される。
図10に示すように、マスタ部20は、予測モデルの変更可能な各種の処理パラメータについて探索する組み合わせの範囲の情報を取得する(S10)。探索する組み合わせの範囲の情報は、管理者等のユーザから指定を受け付けることにより取得してもよい。また、探索する組み合わせの範囲の情報は、別なソフトウェアによって以前の学習の結果などから演算等によって導出されたものを取得してもよい。
マスタ部20は、指定された各種の処理パラメータの範囲から、未選択の処理パラメータの組み合わせを選択する(S11)。なお、マスタ部20は、処理済みの処理パラメータの組み合わせでの処理結果を用いて予測を行って、より高い予測精度が得られると予測される組み合わせを優先的に選択してもよい。
マスタ部20は、選択した処理パラメータの組み合わせの予測モデルを検証する検証処理を実行する(S12)。検証処理の詳細は、後述する。
マスタ部20は、分散処理の処理時間が制限時間以上となったか否かを判定する(S13)。分散処理の処理時間が制限時間以上となっていない場合(S13否定)、マスタ部20は、各種の処理パラメータの指定された範囲の全ての組み合わせの選択が終了したか否かを判定する(S14)。全ての組み合わせの選択が終了していない場合(S14否定)、上述のS11へ移行する。
一方、分散処理の処理時間が制限時間以上となった場合(S13肯定)、マスタ部20は、現時点まで学習処理された、処理パラメータの組み合わせの中から、最も予測精度の良い処理パラメータの組み合わせを学習結果として出力し(S15)、処理を終了する。
また、全ての組み合わせの選択が終了した場合(S14肯定)、上述のS15へ移行する。
図11は、検証処理の手順の一例を示すフローチャートである。この検証処理は、例えば、分散処理のS12から実行される。
マスタ部20は、処理対象のデータを分割する分割数Kを管理部21へ通知する(S20)。マスタ部20は、処理対象のデータをK個に分割し、K個の訓練用データと検証用データのパターンの作成を各ノード11のワーカ部30へ指示する(S21)。マスタ部20は、各パターンによる予測モデルの検証を各ノード11のワーカ部30へ指示する(S22)。
マスタ部20は、管理部21からジョブの処理中止が指示されたか否かを判定する(S23)。ジョブの処理中止が指示された場合(S23肯定)、マスタ部20は、現在の処理中のジョブの処理中止を各ノード11のワーカ部30へ指示する(S24)。マスタ部20は、現時点まで処理済みのパターンでの予測精度の算出を各ノード11のワーカ部30へ指示し(S25)、分散処理のS13へ移行する。
一方、ジョブの処理中止が指示されていない場合(S23否定)、各ノード11のワーカ部30から検証の処理結果を受信したか否かを判定する(S26)。各ノード11のワーカ部30から処理結果を受信していない場合(S26否定)、上述のS23へ移行する。
一方、各ノード11のワーカ部30から処理結果が得られた場合(S26肯定)、マスタ部20は、K個のパターンでの予測精度の算出を各ノード11のワーカ部30へ指示し(S27)、分散処理のS13へ移行する。
次に、ノード11が、選択された処理パラメータの組み合わせでの予測モデルの検証を実行する流れについて説明する。図12は、予測モデル検証処理の手順の一例を示すフローチャートである。この予測モデル検証処理は、所定のタイミング、例えば、マスタ部20から予測モデルの検証が指示されたタイミングで実行される。
ワーカ部30は、K個の訓練用データと検証用データのパターンのうち、未選択のパターンを1つ選択する(S30)。ワーカ部30は、選択したパターンの訓練用データを用いて、選択された処理パラメータの組み合わせでの予測モデルの学習を実行する(S31)。ワーカ部30は、選択したパターンの検証用データを用いて、学習した予測モデルの予測精度を算出する(S32)。ワーカ部30は、算出された予測精度を管理部21へ通知する(S33)。
ワーカ部30は、マスタ部20から処理中止が指示されたか否かを判定する(S34)。マスタ部20から処理中止が指示された場合(S34肯定)、処理を終了する。
一方、マスタ部20から処理中止が指示されていない場合(S34否定)、ワーカ部30は、K個のパターンの選択が完了したか否かを判定する(S35)。K個のパターンの選択が完了していない場合(S35否定)、上述のS30へ移行する。
一方、K個のパターンの選択が完了した場合(S35肯定)、ワーカ部30は、検証の処理結果をマスタ部20へ送信し(S36)、処理を終了する。例えば、ワーカ部30は、各パターンの予測精度を検証の処理結果としてマスタ部20へ送信する。
次に、管理サーバ10が分散処理の実行の管理する流れについて説明する。図13は、管理処理の手順の一例を示すフローチャートである。この管理処理は、所定のタイミング、例えば、分散処理が実行された予め指定された期間毎のタイミングや、処理対象のデータを分割する分割数Kが通知されたタイミングで実行される。
収集部40は、ノード11から、予測精度を受信したか否かを判定する(S40)。予測精度を受信していない場合(S40否定)、収集部40は、分散処理が終了したか否かを判定する(S41)。分散処理が終了していない場合(S41否定)、S40へ移行する。一方、分散処理が終了した場合(S41肯定)、処理を終了する。
予測精度を受信した場合(S40肯定)、推定部41は、受信した予測精度に基づき、予測精度を受信したジョブの全体処理結果の予測精度を推定する(S42)。
判断部42は、推定された予測精度に応じて、ジョブの残りの処理を継続するか否かを判定する(S43)。ジョブの残りの処理を継続する場合(S43肯定)、上述のS40へ移行する。
一方、ジョブの残りの処理を継続しない場合(S43否定)、判断部42は、マスタ部20に対してジョブの処理中止を指示する指示情報を送り(S44)、上述のS40へ移行する。
以上のように、管理部21は、処理対象ジョブを分散して部分処理する複数のノード11それぞれから、部分処理の処理結果を収集する。管理部21は、収集された部分処理の処理結果に基づき、部分処理に対応する全体処理の処理結果である全体処理結果を推定する。管理部21は、推定された全体処理結果に応じて、全体処理に対応する他の部分処理の実行継続可否を判断する。これにより、管理部21は、分散処理の処理効率を向上させることができる。
また、管理部21は、複数のノード11により保持された部分処理の処理結果、または、複数のノード11でそれぞれ実行されるプロセスにより生成される、部分処理の処理結果を収集する。これにより、管理部21は、処理対象ジョブの処理が完了していなくても、収集された処理結果から処理対象ジョブの全体処理結果を推定できる。
また、管理部21は、要求される所定の性能条件を満たすことが推定される場合、または、性能条件を満たさないことが推定される場合、全体処理に対応する他の部分処理の実行を不要と判断する。これにより、管理部21は、分散処理の最終的な結果に大きな影響を与えない処理を中止させることができ、分散処理の処理効率を向上させることができる。
また、管理部21は、機械学習での予測モデルの処理パラメータの組み合わせごとにジョブを分けて複数のノード11で分散して部分処理される当該部分処理の処理結果を複数のノード11それぞれから収集する。管理部21は、収集された部分処理の処理結果に基づき、部分処理に対応するジョブの予測モデルでの予測精度を推定する。管理部21は、推定された予測精度が、第1の予測精度を満たす場合、または、第1の予測精度より低い第2の予測精度を満たさない場合、予測精度を推定したジョブの残りの部分処理の実行を不要と判断する。これにより、管理部21は、機械学習において、最終的な予測精度に大きな影響を与えない処理を中止させることができ、機械学習の分散処理の処理効率を向上させることができる。
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、管理部21の収集部40、推定部41および判断部42の各処理部が適宜統合されても良い。さらに、各処理部にて行なわれる各処理機能は、その全部又は任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[分散処理実行管理プログラム]
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。最初に、ドライバに対する注意喚起の制御を行う分散処理実行管理プログラムについて説明する。図14は、分散処理実行管理プログラムを実行するコンピュータの構成の一例を示す説明図である。
図14に示すように、コンピュータ400は、CPU(Central Processing Unit)410、HDD(Hard Disk Drive)420、RAM(Random Access Memory)440を有する。これら400〜440の各部は、バス500を介して接続される。
HDD420には上記の収集部40、推定部41および判断部42と同様の機能を発揮する分散処理実行管理プログラム420aが予め記憶される。なお、分散処理実行管理プログラム420aについては、適宜分離しても良い。
また、HDD420は、各種情報を記憶する。例えば、HDD420は、OSや発注量の決定に用いる各種データを記憶する。
そして、CPU410が、分散処理実行管理プログラム420aをHDD420から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、分散処理実行管理プログラム420aは、収集部40、推定部41および判断部42と同様の動作を実行する。
なお、上記した分散処理実行管理プログラム420aについては、必ずしも最初からHDD420に記憶させることを要しない。
また、例えば、分散処理実行管理プログラム420aは、コンピュータ400に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に記憶させても良い。そして、コンピュータ400がこれらからプログラムを読み出して実行するようにしても良い。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ400に接続される「他のコンピュータ(又はサーバ)」などにプログラムを記憶させておく。そして、コンピュータ400がこれらからプログラムを読み出して実行するようにしても良い。
1 分散処理システム
10 管理サーバ
11 ノード
20 マスタ部
21 管理部
30 ワーカ部
40 収集部
41 推定部
42 判断部

Claims (6)

  1. コンピュータに、
    処理対象ジョブを分散して部分処理する複数のノードそれぞれから、前記部分処理の処理結果を収集し、
    収集された前記部分処理の処理結果に基づき、前記部分処理に対応する全体処理の処理結果である全体処理結果を推定し、
    推定された全体処理結果に応じて、前記全体処理に対応する他の部分処理の実行継続可否を判断する、
    処理を実行させることを特徴とする分散処理実行管理プログラム。
  2. 前記収集する処理は、前記複数のノードにより保持された前記部分処理の処理結果、または、前記複数のノードでそれぞれ実行されるプロセスにより生成される、前記部分処理の処理結果を収集する
    ことを特徴とする請求項1に記載の分散処理実行管理プログラム。
  3. 前記判断する処理は、要求される所定の性能条件を満たすことが推定される場合、または、前記性能条件を満たさないことが推定される場合、前記全体処理に対応する他の部分処理の実行を不要と判断する
    ことを特徴とする請求項1または2に記載の分散処理実行管理プログラム。
  4. 前記収集する処理は、機械学習での予測モデルの処理パラメータの組み合わせごとにジョブを分けて前記複数のノードで分散して部分処理される当該部分処理の処理結果を前記複数のノードそれぞれから収集し、
    前記推定する処理は、収集された前記部分処理の処理結果に基づき、前記部分処理に対応するジョブの予測モデルでの予測精度を推定し、
    前記判断する処理は、推定された予測精度が、第1の予測精度を満たす場合、または、前記第1の予測精度より低い第2の予測精度を満たさない場合、予測精度を推定したジョブの残りの部分処理の実行を不要と判断する
    ことを特徴とする請求項1〜3の何れか1つに記載の分散処理実行管理プログラム。
  5. コンピュータが、
    処理対象ジョブを分散して部分処理する複数のノードそれぞれから、前記部分処理の処理結果を収集し、
    収集された前記部分処理の処理結果に基づき、前記部分処理に対応する全体処理の処理結果である全体処理結果を推定し、
    推定された全体処理結果に応じて、前記全体処理に対応する他の部分処理の実行継続可否を判断する、
    処理を実行することを特徴とする分散処理実行管理方法。
  6. 処理対象ジョブを分散して部分処理する複数のノードそれぞれから、前記部分処理の処理結果を収集する収集部と、
    前記収集部により収集された前記部分処理の処理結果に基づき、前記部分処理に対応する全体処理の処理結果である全体処理結果を推定する推定部と、
    前記推定部により推定された全体処理結果に応じて、前記全体処理に対応する他の部分処理の実行継続可否を判断する判断部と、
    を有することを特徴とする分散処理実行管理装置。
JP2016046241A 2016-03-09 2016-03-09 分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置 Active JP6620609B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016046241A JP6620609B2 (ja) 2016-03-09 2016-03-09 分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置
US15/452,059 US20170262310A1 (en) 2016-03-09 2017-03-07 Method for executing and managing distributed processing, and control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016046241A JP6620609B2 (ja) 2016-03-09 2016-03-09 分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置

Publications (2)

Publication Number Publication Date
JP2017162209A JP2017162209A (ja) 2017-09-14
JP6620609B2 true JP6620609B2 (ja) 2019-12-18

Family

ID=59786483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016046241A Active JP6620609B2 (ja) 2016-03-09 2016-03-09 分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置

Country Status (2)

Country Link
US (1) US20170262310A1 (ja)
JP (1) JP6620609B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086140A (zh) * 2018-08-21 2018-12-25 上海点融信息科技有限责任公司 在区块链中进行数据处理的方法、装置及存储介质
CN109656922B (zh) * 2018-12-19 2023-10-24 国网北京市电力公司 数据处理方法及装置
EP4053758A4 (en) * 2019-10-29 2023-01-18 Sony Group Corporation POLARIZATION ADJUSTMENT DEVICE, INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND INFORMATION PROCESSING PROGRAM
US11907172B2 (en) 2020-03-17 2024-02-20 Nec Corporation Information processing system, information processing method, and recording medium

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681383B1 (en) * 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
JP4400834B2 (ja) * 2007-06-20 2010-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報システムに発生したイベントのパターンを検出する技術
US8364481B2 (en) * 2008-07-02 2013-01-29 Google Inc. Speech recognition with parallel recognition tasks
JP5584914B2 (ja) * 2010-07-15 2014-09-10 株式会社日立製作所 分散計算システム
US9390112B1 (en) * 2013-11-22 2016-07-12 Groupon, Inc. Automated dynamic data quality assessment
US10037366B2 (en) * 2014-02-07 2018-07-31 Microsoft Technology Licensing, Llc End to end validation of data transformation accuracy
CN106796587B (zh) * 2014-04-30 2020-11-13 皮沃塔尔软件公司 用于验证分析结果的方法和系统
CN106294381A (zh) * 2015-05-18 2017-01-04 中兴通讯股份有限公司 大数据计算的方法及系统
US9959154B2 (en) * 2016-02-16 2018-05-01 International Business Machines Corporation Identifying defunct nodes in data processing systems

Also Published As

Publication number Publication date
JP2017162209A (ja) 2017-09-14
US20170262310A1 (en) 2017-09-14

Similar Documents

Publication Publication Date Title
JP4308241B2 (ja) ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
US8694644B2 (en) Network-aware coordination of virtual machine migrations in enterprise data centers and clouds
US8260840B1 (en) Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
US9477460B2 (en) Non-transitory computer-readable storage medium for selective application of update programs dependent upon a load of a virtual machine and related apparatus and method
CN106874084B (zh) 一种分布式工作流调度的方法、装置及计算机设备
WO2012056596A1 (ja) 計算機システム及び処理制御方法
JP6620609B2 (ja) 分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置
US20180046489A1 (en) Storage medium, method, and device
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
JP7035858B2 (ja) マイグレーション管理プログラム、マイグレーション方法およびマイグレーションシステム
Stavrinides et al. The impact of checkpointing interval selection on the scheduling performance of real‐time fine‐grained parallel applications in SaaS clouds under various failure probabilities
JP6010975B2 (ja) ジョブ管理装置、ジョブ管理方法、及びプログラム
JP7159887B2 (ja) 仮想化基盤および仮想化基盤のスケーリング管理方法
JP5867238B2 (ja) オートスケーリング方法,オートスケーリングプログラムおよびコンピュータノード
US9740530B2 (en) Decreasing the priority of a user based on an allocation ratio
JP2011192049A (ja) 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
JP6239400B2 (ja) 制御装置
JP2012181578A (ja) 更新制御装置及びプログラム
Ibrahim et al. Improving mapreduce performance with progress and feedback based speculative execution
CN112580816A (zh) 机器学习训练资源管理
KR102002246B1 (ko) 빅데이터 처리를 위한 자원 분배 방법 및 장치
Wang et al. Remediating overload in over-subscribed computing environments
JP2014206805A (ja) 制御装置
Wang et al. Millipedes: Distributed and set-based sub-task scheduler of computing engines running on yarn cluster
Chalvantzis et al. BBQ: Elastic MapReduce over cloud platforms

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190919

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191105

R150 Certificate of patent or registration of utility model

Ref document number: 6620609

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150