JP2011113377A - 分散計算装置および分散計算装置の制御方法 - Google Patents

分散計算装置および分散計算装置の制御方法 Download PDF

Info

Publication number
JP2011113377A
JP2011113377A JP2009270351A JP2009270351A JP2011113377A JP 2011113377 A JP2011113377 A JP 2011113377A JP 2009270351 A JP2009270351 A JP 2009270351A JP 2009270351 A JP2009270351 A JP 2009270351A JP 2011113377 A JP2011113377 A JP 2011113377A
Authority
JP
Japan
Prior art keywords
solution candidate
solution
evaluation
candidates
distributed computing
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.)
Pending
Application number
JP2009270351A
Other languages
English (en)
Other versions
JP2011113377A5 (ja
Inventor
Kosuke Yanai
孝介 柳井
Yasutsugu Morimoto
康嗣 森本
Yaemi Teramoto
やえみ 寺本
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009270351A priority Critical patent/JP2011113377A/ja
Publication of JP2011113377A publication Critical patent/JP2011113377A/ja
Publication of JP2011113377A5 publication Critical patent/JP2011113377A5/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】分散計算の効率が最大化できるようアルゴリズムのロジックを適切に分散し、通信負荷が大きくならないよう解候補を適切にプロセス間で通信する方法を提供する。
【解決手段】演算処理を行うCPUと、解候補を格納する記憶部と、解候補の送受信を行う通信部とを備えたサーバを複数備え、サーバを相互に接続するネットワークとを備えた分散計算装置であって、前記サーバは、前記解候補を評価して評価値を決定する解候補評価部と、前記解候補と解候補の評価値から新たな解候補を生成する解候補生成部と、を有し、前記解候補評価部は、前記解候補生成部が生成した解候補を評価して前記評価値を決定し、前記複数のサーバの解候補生成部のいずれかひとつを選択して、当該選択したサーバの解候補生成部に前記解候補と評価値を送信し、前記解候補生成部は、前記解候補評価部から受信した前記解候補と評価値から新たな解候補を生成する。
【選択図】図4

Description

本発明は、分散計算装置に関し、特に、遺伝的アルゴリズムや遺伝的プログラミング等の解候補評価フェーズと解候補生成フェーズを繰り返すアルゴリズムを分散して計算する装置に関する。
仮想化技術の成熟に伴い、クラウドコンピューティング環境が整いつつあり、これによりデータセンタにある大量の計算機リソースを動的に増減しながら利用できるようになってきている。
このような状況の中、クラウドコンピューティングにおける分散計算モデルとしてMapReduce(Dean, J. and Ghemawat, S., MapReduce: simplified data processing on large clusters, Communications of the ACM, Vol. 51 (2008), 107-113.)に注目が集まっており、クラウドコンピューティングにおけるデファクトになりつつある。MapReduceの規格に従ってプログラムを書くことで、専用の分散計算システムを構築することなく、Hadoop等の汎用MapReduce分散計算システム上で分散計算を実行することが可能となる。
その一方で、企業や自治体は業務ログやセンサデータなどのデータを保持しており、機械学習等の既存技術により、これらのデータから予測や異常検知など行い、業務に活用したいというニーズがある。機械学習は計算を大規模化することにより、予測や異常検知の精度を向上させることができる。そのため、クラウドコンピューティング上で大規模に機械学習を実行することが望まれている。
機械学習アルゴリズムとしては、遺伝的アルゴリズムや遺伝的プログラミング等が知られている。例えば、遺伝的プログラミングは、検索結果のアイテムをランキングするのに用いられる(Jen Y. Yeh, Jung Y. Lin, Hao R. Ke, Wei P. Yang: Learning to Rank for Information Retrieval Using Genetic Programming in SIGIR 2007 workshop)。検索結果のランキングの例では、最適解とは、アイテムの特徴量からそのアイテムの順位を推定する最適なランキング関数のことを意味する。遺伝的プログラミングでは、計算を大規模化することで、ランキングの精度を向上させることができる。
以下、関連する公知の技術に関して述べる。
特許文献1には、遺伝的アルゴリズムを並列実行させたとき、サーバごとに独立に遺伝的アルゴリズムを実行し、定期的にサーバ間で解候補の交換を行うことで、探索を効率化する技術が示されている。本方法は「島モデル」の呼び名で広く知られている。
特許文献2には、遺伝的アルゴリズムを並列実行させたとき、各サーバで処理する解候補の数を制御することにより、サーバ間での解候補生成処理時間のばらつきによって生じる待ち時間や通信処理時間を減らす技術が示されている。
特許文献3には、遺伝的アルゴリズムを並列実行させたとき、サーバごとに独立に遺伝的アルゴリズムを実行し、一度評価した解候補をデータベースに記録しておき、再度評価を行わないことで、評価フェーズの時間を短縮する技術が示されている。
特許文献4には、 遺伝的アルゴリズムを並列実行させたとき、サーバごとに独立に遺伝的アルゴリズムを実行し、局所解に陥りそうな探索の戦略を変更することにより、局所解におちいることなく探索を継続する技術が示されている。
特許文献5には、遺伝的アルゴリズムを並列実行させたとき、サーバごとに独立に遺伝的アルゴリズムを実行し、局所解に陥った探索プロセスを打ち切ることで、探索を効率化する技術が示されている。
特許文献6には、バッファを用いて、ストリーム処理ベースで遺伝的アルゴリズムを並列実行する技術が示されている。
MapReduceモデルで遺伝的アルゴリズムを実行する手法としてMRPGA(Chao Jin, Christian Vecchiola and Rajkumar Buyya: MRPGA: An Extension of MapReduce for Parallelizing Genetic Algorithms, In 4th IEEE International Conference on e-Science, 2008)が知られている。MRPGAでは、解候補評価フェーズのみ並列実行し、解候補生成フェーズは単一プロセスで実行する。
またオープンソースソフトウェアのMahout(http://lucene.apache.org/mahout/)も解候補評価フェーズのみMapreduceモデルで並列実行する技術が使われている。
特開2001−283183号公報 特開2004−258842号公報 特開2002−149618号公報 特開2002−358201号公報 特開平10−134019号公報 特開平06−314270号公報
しかしながら、前述した従来技術のうち、特許文献1、特許文献2、特許文献3、特許文献4、特許文献5、特許文献6に示された技術は、MapReduce計算モデルに則っておらず、専用の分散計算システムが必要である。クラウドコンピューティング環境においては、必要に応じて仮想マシンを一時的に確保して計算を実行し、計算が終了したら仮想マシンを解放するという方法がとられる。そのため、専用の分散計算システム上でしか実行できない方式では、クラウドコンピューティング上で実行するのは不可能である。一方、MapReduce計算モデルに則った方式であれば、MapReduce計算モデルがクラウドコンピューティング上のデファクトになりつつあるため、クラウドコンピューティング上でも専用の分散計算システムを構築することなく実行することが可能である。
また前述した従来技術のうち、特許文献1、特許文献2、特許文献3、特許文献4、特許文献5に示された技術は、サーバごとにほぼ独立して遺伝的アルゴリズムを実行するため、アルゴリズムの精度が劣化する。一般的に、遺伝的アルゴリズムをサーバごとに独立に実行する場合には、高頻度で解候補をサーバ間で交換し、解候補を混ぜ合わせることによりアルゴリズムの精度が向上することが知られている(Kenneth Holladay: Characterizing the Genetic Programming Environment for FIFTH (GPE5) on a High Performance Computing Cluster, Genetic and Evolutionary Computation Conference, 2009など)。しかし解候補の交換の頻度を高くすると、サーバ間の通信負荷が大きくなり、アルゴリズムの実行速度が低下するという問題があった。
また前述した従来技術のうち、MRPGA、Mahoutの方式は、解候補生成フェーズが並列化されておらず、MRPGAの方式が提案されている論文においても、解候補生成フェーズに時間がかかっていることが示されている。また計算が大規模化したときには、解候補生成フェーズが1つのサーバで実行されるため、解候補生成フェーズを実行するサーバと解候補評価フェーズを実行するサーバ間で解候補を送受信するときに、解候補生成フェーズを実行するサーバの通信負荷が大きくなり、アルゴリズムの実行速度が低下する、という問題があった。
本発明は、上記問題点に鑑みてなされたものであって、本発明の目的は、遺伝的アルゴリズムや遺伝的プログラミング等の解候補評価フェーズと解候補生成フェーズを繰り返すアルゴリズムを分散実行する装置において、分散計算の効率が最大化できるようアルゴリズムのロジックを適切に分散し、通信負荷が大きくならないよう解候補を適切にプロセス間で通信する方法を提供することにある。また本発明の別の目的は、遺伝的アルゴリズムや遺伝的プログラミング等の解候補評価フェーズと解候補生成フェーズを繰り返すアルゴリズムを分散実行する装置において、クラウドコンピューティング上でも実行可能なようMapReduce計算モデルに則った分散計算方式を提供することにある。
本発明は、演算処理を行うCPUと、解候補を格納する記憶部と、解候補の送受信を行う通信部とを備えたサーバを複数備え、前記サーバを相互に接続するネットワークと、を備えた分散計算装置であって、前記サーバは、前記解候補を評価して評価値を決定する解候補評価部と、前記解候補と解候補の評価値から新たな解候補を生成する解候補生成部と、を有し、前記解候補評価部は、前記解候補生成部が生成した解候補を評価して前記評価値を決定し、前記複数のサーバの解候補生成部のいずれかひとつを選択して、当該選択したサーバの解候補生成部に前記解候補と評価値を送信し、前記解候補生成部は、前記解候補評価部から受信した前記解候補と評価値から新たな解候補を生成する。
本発明によれば、解候補評価部と解候補生成部が異なる処理に分離されており、解候補の評価が終わった解候補から逐次、解候補生成部に送られるため、データ送信の待ち時間が発生せず、解候補評価部が終了した後には即座に解候補生成部を開始することができる。
また、本発明によれば、解候補の送り先となる解候補生成部を決定することで、例えば、ランダムに送信先を決める等により、解候補を適切な水準で混ぜ合わせることができる。これによりアルゴリズムの精度の劣化を最小限に留めることができる。
また、本発明によれば、解候補の評価値に基づいて、解候補を解候補生成部に送信するか否かを決定する手段を備えるため、例えば、評価値が非常に低い解候補の送信をやめる等により、データ送信量を減らし、高速にアルゴリズムを実行できる。
また、本発明によれば、解候補評価部のみならず、解候補生成部も複数のサーバので分散して実行されるため、解候補生成部は従来技術であるMRPGAやMahoutに比べ、高速にアルゴリズムを実行できる。
また、本発明によれば、解候補生成部では、処理が実行されているサーバの記憶部(ローカルの補助記憶装置等、短時間でアクセスできる記憶部に、生成した解候補を格納し、一方、解候補評価部では、同様に短時間でアクセスできる記憶部に格納されている解候補に対して評価を行うため、解候補生成部から解候補評価部に移る際のデータ送信量を少なくでき、高速にアルゴリズムを実行できる。
また、本発明によれば、本発明の分散計算方式はMapReduceモデルに則っているため、クラウドコンピューティング環境上でも専用の分散計算システムを構築することなく実行することが可能である。
本発明の実施形態を示し、コンピュータの一構成を示すブロック図である。 本発明の実施形態を示し、分散計算装置の一構成を示すブロック図である。 本発明の実施形態を示し、分散計算装置の処理対象であるアルゴリズムのフローチャート図である。 本発明の実施形態を示し、分散計算装置で分散計算するときの、アルゴリズムのロジックの分割と、データの流れを示したブロック図である。 本発明の実施形態を示し、公知例に係わる、島モデルによる分散計算のブロック図である。 本発明の実施形態を示し、解候補評価フェーズプロセスのフローチャートである。 本発明の実施形態を示し、解候補生成フェーズプロセスのフローチャートである。
以下、本発明の一実施形態を添付図面に基づいて説明する。
[実施形態1]
以下、第1の実施例の分散計算装置について説明する。
本実施形態の分散計算装置で使用するサーバは、汎用のコンピュータであり、例えば図1に示す構成をもつものである。
図1に示す100はコンピュータを示しており、入力部であるキーボードやマウス等の入力デバイス101、インターネットなどのネットワークに接続するためのインタフェース部であるネットワークデバイス102、処理部である中央処理部(Central Processing Unit:CPU)103、メモリなどで構成された記憶部である主記憶部104と、ディスク装置等で構成されてプログラムやデータを格納する補助記憶部105等が内部のバス106に接続される構成を持つ。その他必要に応じて、出力部となる表示デバイスなどが追加される。CPU103は、記憶部に記憶或いはダウンロードされるプログラムを実行することにより、以下詳述するような各種のプロセスを実行する。なお、プロセスはプログラムとして記憶媒体である補助記憶部105に格納される。
本実施形態の分散計算装置は、図1に示すコンピュータ100を複数台並べ、ネットワークデバイス102により相互に接続したサーバ群、例えば図2に示す構成をもつものにより実施される。
図2に示す100−1は1番目のサーバを模式的に表したものであり、100−2は2番目のサーバを模式的に表したものであり、100−KはK番目のサーバを模式的に表したものである。203はネットワークを表したものである。これら、サーバ100−1〜100−Kによりクラウドコンピューティングを行うことができる。
図3は、本実施形態の分散計算装置が処理するアルゴリズムのフローチャートである。本実施形態の分散計算装置が処理するアルゴリズムの概要は、まず、解候補生成フェーズにて後述するように複数の新しい解候補を生成する(300)。
次に、解候補評価フェーズにて、解候補生成フェーズで生成された複数の解候補の良さをそれぞれ評価する(301)。続いて、終了条件を満たしているかどうかを評価し、終了条件を満たしていればアルゴリズムを終了し、満たしていなければ解候補生成フェーズ300に戻る(302)。
即ち、解候補生成フェーズと解候補評価フェーズを繰り返しながら最適解を探す。なお、解候補評価フェーズでは複数の解候補の良さの判定は、例えば解候補の評価値と予め設定した基準値とを比較することで実現することができる。
図3のフローチャートのアルゴリズムの例として、遺伝的アルゴリズム、遺伝的プログラミング、タブーサーチ、ランダム探索、山登り探索、シミュレーティッドアニーリング法などがある。この中で、遺伝的プログラミングは扱うデータ量が大きく、また解候補を混ぜ合わせることによりアルゴリズムの精度が向上するため、本発明の実施形態は、遺伝的プログラミングにおいて最も効果がある。従って以下では、分散処理する具体的なアルゴリズムとして遺伝的プログラミングを想定して説明をする。しかしながら、本発明は遺伝的プログラミング以外にも、図3の形式のアルゴリズムに広く適用可能であることは明白である。
例えば、遺伝的プログラミングは、検索結果のアイテムをランキングするのに用いられる(Jen Y. Yeh, Jung Y. Lin, Hao R. Ke, Wei P. Yang: Learning to Rank for Information Retrieval Using Genetic Programming in SIGIR 2007 workshop)。この例で最適解とは、アイテムの特徴量からそのアイテムの順位を推定する最適なランキング関数のことを意味する。
図3のフローチャートにおいて、2周目以降の解候補生成フェーズ(300)では、前回生成した解候補とその候補の評価値を参照情報として、複数の新しい解を生成する。遺伝的プログラミングの例では、直前の解候補評価フェーズで評価値が高かった解候補を組み合わせて新しい解候補を生成する。遺伝的プログラミングでは、1周目(初回の処理)の解候補生成フェーズでは、補助記憶部105に予め格納された解候補のデータを用いてランダムに解候補を生成する。
図4は、図3に示すアルゴリズムを本実施形態の分散計算装置で分散計算するときの、アルゴリズムのロジックの分割と、データの流れを示した図である。分散計算装置を構成するサーバ100−1〜100−Kでは、それぞれ遺伝的プログラミングが実行される。遺伝的プログラミングは、2つのプロセスに分割されて実行されており、解候補評価フェーズプロセス400と、解候補生成フェーズプロセス410に分割される。なお、図4では、各サーバ100−1〜100−Kで実行される遺伝的プログラミングに1〜Kの添え字を付した。以下では解候補評価フェーズプロセスの総称を400とし、解候補生成フェーズプロセスの総称を410とする。
本発明の遺伝的プログラミングでは、解候補生成フェーズプロセス410は生成した解候補をローカルの補助記憶部105に格納し、解候補評価フェーズプロセス400は、ローカルの補助記憶部105から読み込んだ解候補を評価する。そして、解候補評価フェーズプロセス400は、ランダムにサーバ100−1〜100−Kの解候補生成フェーズプロセス410−1〜410Nを選択し、評価した解候補を選択した解候補生成フェーズプロセス410に送信する。
解候補生成フェーズプロセス410は、解候補評価フェーズプロセス400−1〜400−Kから受信した解候補から新たな解候補を生成する。
図4において、サーバ100−1では、解候補評価フェーズプロセス400−1と、解候補生成フェーズプロセス410−1が独立して実行され、サーバ100−Kでは解候補評価フェーズプロセス400−Kと、解候補生成フェーズプロセス410−Kが独立して実行される。
サーバ100−1の400−1は1番目の解候補評価フェーズプロセスであり、図4の例では、解候補1、解候補2、...を評価し、各解候補に評価値を付与する。同様に、サーバ100−2の400−2は2番目の解候補評価フェーズプロセスであり、図4の例では、解候補101、解候補102、...を評価し、各解候補に評価値を付与する。同様に、サーバ100−Kの400−KはK番目の解候補評価フェーズプロセスであり、図4の例では、解候補201、解候補202、...を評価し、各解候補に評価値を付与する。解候補評価フェーズの詳細については、図6を用いて後述する。
サーバ100−1の410−1は1番目の解候補生成フェーズプロセスであり、図4の例では、解候補評価フェーズプロセス400−2から送られてきた解候補102と、解候補評価フェーズプロセス400−Kから送られてきた解候補201などから、新しい解候補である新解候補1、新解候補2、...を生成する。
同様に、サーバ100−2の410−2は2番目の解候補生成フェーズプロセスであり、図4の例では、解候補評価フェーズプロセス400−1から送られてきた解候補1と、解候補評価フェーズプロセス400−2から送られてきた解候補103などから、新しい解候補である新解候補101、新解候補102、...を生成する。
同様に、サーバ100−Kの410−KはK番目の解候補生成フェーズプロセスであり、図4の例では、解候補評価フェーズプロセス400−1から送られてきた解候補2と、解候補評価フェーズプロセス400−2から送られてきた解候補101などから、新しい解候補である新解候補201、新解候補202、...を生成する。解候補生成フェーズの詳細については、図7を用いて後述する。なお、上記図4で示した解候補の移動は1例であり、この限りではない。
解候補評価フェーズプロセス400の終了と、解候補生成フェーズプロセス410の開始の間には、解候補が異なるプロセス間で混ざり合うことになる。これにより遺伝的プログラミング等のアルゴリズムの精度の劣化を最小限に留めることができる。
一方、解候補生成フェーズプロセス410の終了と、解候補評価フェーズプロセス400の開始の間では、同一のサーバ100のローカルの補助記憶部105から解候補を読み込むため、解候補は混ざり合わず、解候補生成フェーズプロセス410で生成された新しい解候補群が、そのまま同一のサーバ100で実行される解候補評価フェーズプロセス400に渡される。これによりサーバ100−1〜100−K間で無駄なデータ通信が発生することがなく、高速にアルゴリズムを実行できる。特に遺伝的プログラミングでは、生成される解候補のデータ量が数百万などの大きな値となるため、サーバ100−1〜100−K間のデータ転送量を低減し、ネットワーク203が分散処理のボトルネックとなるのを防いで、分散計算機装置の処理速度を向上させるのに有効である。
上記解候補評価フェーズプロセス400と解候補生成フェーズプロセス410のプロセス間の通信に関しては、公知の方法を用いて行う。例えば、SSHを用いたファイルベースの通信や、MPI(Message Passing Processing)を用いた通信などが挙げられる。
図5は、遺伝的アルゴリズムを前記従来例により分散実行する場合に、標準的に用いられる島モデル方式を表したブロック図である。500−1は1番目のサーバであり、500−2は2番目のサーバであり、500−KはK番目のサーバである。それぞれのサーバ500−1〜500−Kでは独立して遺伝的アルゴリズムが実行され、定期的にサーバ間で解候補が交換される。この例では、解候補評価フェーズと解候補生成フェーズは同一のプロセスで実行され、各サーバ500−1〜500−K間での解候補の大規模なシャッフル(移動)が効率的に実行できるようには設計されておらず、解候補の交換頻度を上げるとアルゴリズムの実行速度が低下する。またMapReduceモデルに適合しない。
図6は、図4に示した解候補評価フェーズプロセス400のフローチャートである。なお、解候補評価フェーズプロセス400の開始条件としては、例えば、後述する解候補生成フェーズプロセス410が終了した時点や、未処理の解候補の数が所定値以上となったときなど、所定の条件が成立した場合である。
解候補評価フェーズプロセス400は、まずローカルの補助記憶部105から解候補を1つ読み込む(600)。なお、ファイル読み込み用のバッファを主記憶部104に備えて、効率的に解候補をローカルの補助記憶部105から読み込めるようにしてもよい。また本実施形態ではローカルの補助記憶部105のみに解候補が格納されていることを想定しているが、当該プロセスから、高速に読み出しができる記憶装置であればローカルディスクでなくてもよい。
次に、解候補評価フェーズプロセス400は、解候補を評価し、評価値を付与する(601)。この処理は、例えば検索結果のランキング関数を学習する場合には、解候補はランキング関数を表し、評価値は正解のランキングに対する正解率となる。
続いて解候補評価フェーズプロセス400は、ステップ601で得た評価値が基準以上か否かを判定する(602)。基準以上であれば、ステップ604へ進み、基準未満であればステップ603へ進む。例えば、評価値が0以上1未満の値をとる場合、閾値を0.7として、0.7以上で基準クリアとすることができる。
ステップ602の分岐において、評価値が基準以下の場合には、さらにローカルの補助記憶部105に未評価の解候補が残っているか否かを判定して分岐する(603)。ローカルの補助記憶部105に未評価の解候補が残っている場合には、ステップ600に戻りローカルの補助記憶部105からさらに解候補を1つ読み込み、処理を継続する。ローカルの補助記憶部105に未評価の解候補が残っていない場合には、終了条件を満足したのでそのまま処理を終了する。
ステップ602の分岐において、評価値が基準以上の場合には、ステップ604で解候補の送り先となる解候補生成フェーズプロセスを決定する。解候補の送り先となる解候補生成フェーズプロセス410を決定する例として、以下の式を使うことが挙げられる。
(解候補生成フェーズプロセスの番号)=RAND(1、K)
ここでKは解候補生成フェーズプロセスの数であり、RAND(1、K)は1からKまでのランダムな数を返す関数である。上式は、送り先となる解候補生成フェーズプロセス410−1〜410−Kを、解候補ごとにランダムに選択することを意味している。また解候補の評価値に基づいて、解候補と評価値の送り先となる解候補生成フェーズプロセス410−1〜410−Kを決定する他の例として、以下の式を使うことが挙げられる。
(解候補生成フェーズプロセスの番号)=1+FLOOR((評価値)×K)
ここでFLOORは少数点以下の値を切り捨てて整数を返す関数である。解候補の評価値が0以上1未満の値をとる場合、上式は、解候補の送り先となる解候補生成フェーズプロセスを、解候補の評価値の少数点第1位の位の値に従って決定することを意味している。この例では、評価値の良い解候補が集まるサーバと、評価値が悪い解候補が集まるサーバが異なることになるので、解候補の演算精度が向上するという効果を得ることができる。
続いて、解候補評価フェーズプロセス400は、ステップ604で決定した解候補生成フェーズプロセスに解候補と評価値を送信する(605)。具体的には、送り先となる解候補生成フェーズプロセス410が実行されるサーバ100のローカルの補助記憶部105に解候補とその解候補の評価値を書き込む。実際には、サーバ100は、データ送信および書き込み用のバッファを主記憶部104に備えており、効率的に解候補を送信および書き込みできるようにしている。また本実施形態ではローカルの補助記憶部105のみに解候補が格納することを想定しているが、送り先となる解候補生成フェーズプロセス410が高速に読み出しできる記憶装置であればローカルの補助記憶部105でなくてもよい。
解候補評価フェーズプロセス400による解候補の送信は、解候補ごとに逐次実行される。そのため、解候補評価フェーズプロセス400が終了した時点では、既に送られるべき解候補はすべて解候補生成フェーズプロセス410が補助記憶部105等から高速に読み出せるようになっており、解候補生成フェーズプロセス410の開始の待ち時間を最小にできる。
解候補の送信が終了すると、ステップ603の分岐に移る。
ステップ602の分岐において、解候補評価フェーズプロセス400は評価値が基準以上の解候補のみ、複数の解候補生成フェーズプロセス410うちのひとつに送信することができる。そのため、アルゴリズムの精度に対する影響が小さい解候補を送ることがなく、データ送信量を抑えることができる。これにより、アルゴリズムの精度に対する影響が大きい解候補(評価値が基準値以上の解候補)のみを間欠的に送ることにより、遺伝的プログラミングにおいて、サーバ100−1〜100−K間のデータ転送量を抑制しながらも演算の精度を向上させることが可能となる。
図7は、解候補生成フェーズプロセス410のフローチャートである。解候補生成フェーズプロセス410の開始条件は、例えば、解候補評価フェーズプロセス400が終了した時点や解候補評価フェーズプロセス400から解候補を受信したとき、間欠的に受信した解候補の数が所定値以上になったとき等、所定の条件が成立した場合である。
解候補生成フェーズプロセス410は、まず、ローカルの補助記憶部105から解候補とその評価値をすべて読み込む(700)。本実施形態ではローカルの補助記憶部105のみに解候補が格納されていることを想定しているが、当該プロセスから高速に読み出しができる記憶装置であればローカルの補助記憶部105でなくてもよい。
次に解候補生成フェーズプロセス410は、N個の新しい解候補を生成する(701)。ここでNは、1つの解候補生成フェーズプロセス410が生成する解候補の数を表す。全体でK個の解候補生成フェーズプロセス410がある場合には、分散計算装置全体で生成される解候補数はK×Nである。解候補の生成は、本発明の分散計算装置が処理するアルゴリズムの公知の方法に従って行う。例えば遺伝的プログラミングの場合は、評価値が高い解候補同士を組み合わせて、新しい解候補を生成する。遺伝的プログラミングにおける解候補の生成法に関しては、例えば、「Koza, J. R. (1992), Genetic Programming: On the Programming of Computers by Means of Natural Selection, MIT Press」に詳細が記述されている。
続いて解候補生成フェーズプロセス410は、ステップ701で生成した新しい解候補をローカルの補助記憶部105に書き込む(702)。本実施形態ではローカルの補助記憶部105のみに解候補を格納することを想定しているが、当該プロセスが高速に書き込みできる記憶装置であればローカルの補助記憶部105でなくてもよい。
以上の構成により、解候補評価フェーズプロセス400は同一のサーバ100で実行される解候補生成フェーズプロセス410が生成した新たな解候補をローカルの補助記憶部105から読み込むことで、データ送信の待ち時間を最小化でき、さらに、解候補評価フェーズプロセス400は評価した解候補をランダムに選択した解候補生成フェーズプロセス410へ逐次送信することでアルゴリズムの精度の劣化を最小限に留めることができ、データ送信量を軽減でき、MapReduceモデルに則った分散計算装置を提供することが可能となる。
なお、上記実施形態においては、ひとつのサーバ100でひとつの解候補評価フェーズプロセス400と解候補生成フェーズプロセス410を実行する例を示したが、ひとつのサーバ100で複数の解候補評価フェーズプロセス400と解候補生成フェーズプロセス410を実行し、各プロセスが扱う解候補の量を低減しても良い。すなわち、サーバ100の数よりも遺伝的プログラミング(プロセス)数を大きく設定し、例えば、サーバーの数=10、解候補100万、遺伝的プログラミング(プロセス)の数=100とする。この場合、遺伝的プログラミング(プロセス)の数=10に較べて各プロセスの処理時間が短縮され、また、処理時間のバラツキも抑制される。ひとつのサーバ100上で複数のプロセスを実行する場合には、マルチコアCPUの1コア上で複数のプロセスを実行してもよいし、ひとつのコアに1つのプロセスを割り当てることもできる。
また、上記実施形態では、解候補評価フェーズプロセス400と解候補生成フェーズプロセス410を交互に実行する例を示したが、解候補評価フェーズプロセス400と解候補生成フェーズプロセス410を並列的に実行しても良い。この場合、2つのプロセスの終了条件(302)としては、例えば、実行開始からの経過時間が所定値に達したとき等を終了条件の成立とすればよい。
また、上記実施形態では、解候補評価フェーズと解候補生成フェーズをプロセスとしたが、サーバ100で実行可能な処理の単位であれば良く、例えば、スレッドなどとしてもよい。
以上詳述した本発明は、分散計算装置に関し、特に、遺伝的アルゴリズムや遺伝的プログラミング等の解候補評価フェーズと解候補生成フェーズを繰り返して最適解を探すアルゴリズムをクラウドコンピューティング上で分散実行する分散計算技術に適用できる。
100 サーバ
101 入力デバイス
102 ネットワークデバイス
103 CPU
104 主記憶部
105 補助記憶部
106 バス
203 ネットワークケーブル
400 解候補評価フェーズプロセス
410 解候補生成フェーズプロセス

Claims (12)

  1. 演算処理を行うCPUと、解候補を格納する記憶部と、解候補の送受信を行う通信部とを備えたサーバを複数備え、
    前記サーバを相互に接続するネットワークと、を備えた分散計算装置であって、
    前記サーバは、
    前記解候補を評価して評価値を決定する解候補評価部と、
    前記解候補と解候補の評価値から新たな解候補を生成する解候補生成部と、を有し、
    前記解候補評価部は、
    前記解候補生成部が生成した解候補を評価して前記評価値を決定し、前記複数のサーバの解候補生成部のいずれかひとつを選択して、当該選択したサーバの解候補生成部に前記解候補と評価値を送信し、
    前記解候補生成部は、
    前記解候補評価部から受信した前記解候補と評価値から新たな解候補を生成することを特徴とする分散計算装置。
  2. 請求項1に記載の分散計算装置であって、
    前記解候補評価部は、
    前記複数のサーバの解候補生成部のうちのいずれかひとつをランダムに選択し、当該選択した解候補生成部を前記解候補と評価値の送信先に決定することを特徴とする分散計算装置。
  3. 請求項2に記載の分散計算装置であって、
    前記解候補評価部は、
    前記解候補と評価値の送信先の解候補生成部を、前記解候補の評価値に基づいてランダムに決定することを特徴とする分散計算装置。
  4. 請求項1に記載の分散計算装置であって、
    前記解候補評価部は、
    前記複数のサーバの解候補生成部のいずれかひとつを選択して、当該選択した解候補生成部へ前記解候補と評価値を間欠的に送信することを特徴とする分散計算装置。
  5. 請求項4に記載の分散計算装置であって、
    前記解候補評価部は、
    前記解候補の評価値が所定の基準を満たしたか否かを判定することで、当該解候補を解候補生成部に送信するか否かを決定することを特徴とする分散計算装置。
  6. 請求項1に記載の分散計算装置であって、
    前記解候補生成部は、当該サーバの記憶部に前記生成した解候補を書き込み、
    前記解候補評価部は、当該サーバの記憶部から前記解候補を読み込むことを特徴とする分散計算装置。
  7. 演算処理を行うCPUと、解候補を格納する記憶部と、前記解候補の送受信を行う通信部とを備えたサーバを複数備えてネットワークで相互に接続し、前記解候補を前記サーバに配分する分散計算装置の制御方法であって、
    前記サーバが、前記解候補を評価して評価値を決定する解候補評価ステップと、
    前記サーバが、前記解候補と解候補の評価値から新たな解候補を生成する解候補生成ステップと、を含み、
    前記解候補評価ステップは、
    前記生成した解候補を評価して前記評価値を決定するステップと、
    前記複数のサーバのいずれかひとつを選択するステップと、
    当該選択したサーバに前記解候補と評価値を送信するステップと、を含み、
    前記解候補生成ステップは、
    前記サーバから前記解候補と評価値を受信するステップと、
    前記受信した解候補と評価値から新たな解候補を生成するステップと、を含むことを特徴とする分散計算装置の制御方法。
  8. 請求項7に記載の分散計算装置の制御方法であって、
    前記解候補評価ステップは、
    前記複数のサーバのうちのいずれかひとつをランダムに選択し、当該サーバを前記解候補と評価値の送信先に決定することを特徴とする分散計算装置の制御方法。
  9. 請求項8に記載の分散計算装置の制御方法であって、
    前記解候補評価ステップは、
    前記解候補と評価値の送信先のサーバを、前記解候補の評価値に基づいてランダムに決定することを特徴とする分散計算装置の制御方法。
  10. 請求項7に記載の分散計算装置の制御方法であって、
    前記解候補評価ステップは、
    前記複数のサーバのいずれかひとつを選択して、当該選択したサーバへ前記解候補と評価値を間欠的に送信することを特徴とする分散計算装置の制御方法。
  11. 請求項10に記載の分散計算装置の制御方法であって、
    前記解候補評価ステップは、
    前記解候補の評価値が所定の基準を満たしたか否かを判定することで、当該解候補を解候補生成部に送信するか否かを決定することを特徴とする分散計算装置の制御方法。
  12. 請求項7に記載の分散計算装置の制御方法であって、
    前記解候補生成ステップは、
    当該サーバの記憶部に前記生成した解候補を書き込み、
    前記解候補評価ステップは、
    当該サーバの記憶部から前記解候補を読み込むことを特徴とする分散計算装置の制御方法。
JP2009270351A 2009-11-27 2009-11-27 分散計算装置および分散計算装置の制御方法 Pending JP2011113377A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009270351A JP2011113377A (ja) 2009-11-27 2009-11-27 分散計算装置および分散計算装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009270351A JP2011113377A (ja) 2009-11-27 2009-11-27 分散計算装置および分散計算装置の制御方法

Publications (2)

Publication Number Publication Date
JP2011113377A true JP2011113377A (ja) 2011-06-09
JP2011113377A5 JP2011113377A5 (ja) 2012-08-02

Family

ID=44235657

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009270351A Pending JP2011113377A (ja) 2009-11-27 2009-11-27 分散計算装置および分散計算装置の制御方法

Country Status (1)

Country Link
JP (1) JP2011113377A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014102917A1 (ja) * 2012-12-26 2014-07-03 株式会社日立製作所 並列処理方法、および並列計算機システム
JP2017027411A (ja) * 2015-07-23 2017-02-02 株式会社リコー 情報処理装置、情報処理方法およびプログラム
JP7455769B2 (ja) 2021-02-02 2024-03-26 株式会社東芝 情報処理装置、情報処理方法、プログラム、および情報処理システム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004116351A (ja) * 2002-09-25 2004-04-15 Fuji Heavy Ind Ltd 制御パラメータの最適化システム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004116351A (ja) * 2002-09-25 2004-04-15 Fuji Heavy Ind Ltd 制御パラメータの最適化システム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSNG200200003004; 金子 美華, 他2名: '分散GAにおける解探索メカニズム' 情報処理学会研究報告 第2000巻, 第38号, 20000512, p.21-24, 社団法人情報処理学会 *
JPN6013033594; Plamenka Borovska, et al.: 'Migration Policies for Island Genetic Models on Multicomputer Platform' Intelligent Data Acquisition and Advanced Computing Systems: Technology and Applications, 2007. IDAA , 200709, p.143-148 *
JPN6013033596; 金子 美華, 他2名: '分散GAにおける解探索メカニズム' 情報処理学会研究報告 第2000巻, 第38号, 20000512, p.21-24, 社団法人情報処理学会 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014102917A1 (ja) * 2012-12-26 2014-07-03 株式会社日立製作所 並列処理方法、および並列計算機システム
JP5965498B2 (ja) * 2012-12-26 2016-08-03 株式会社日立製作所 並列処理方法、および並列計算機システム
JP2017027411A (ja) * 2015-07-23 2017-02-02 株式会社リコー 情報処理装置、情報処理方法およびプログラム
JP7455769B2 (ja) 2021-02-02 2024-03-26 株式会社東芝 情報処理装置、情報処理方法、プログラム、および情報処理システム

Similar Documents

Publication Publication Date Title
Wang et al. Load balancing task scheduling based on genetic algorithm in cloud computing
US9715408B2 (en) Data-aware workload scheduling and execution in heterogeneous environments
KR101468201B1 (ko) 문서들로부터 토픽들의 병렬 생성
US9577911B1 (en) Distributed computation system incorporating agent network, paths and associated probes
JP4781089B2 (ja) タスク割り当て方法およびタスク割り当て装置
CN111448550A (zh) 网络可访问的机器学习模型训练和托管系统
US20080104609A1 (en) System and method for load balancing distributed simulations in virtual environments
US9807152B2 (en) Distributed processing device and distributed processing system as well as distributed processing method
CN113469355B (zh) 分布式系统中的多模型训练管道
CN113435682A (zh) 分布式训练的梯度压缩
CN109656898B (zh) 基于节点度的分布式大规模复杂社团探测方法及装置
CN113449861A (zh) 使用部分梯度更新的推测性训练
ABDULKAREEM et al. OPTIMIZATION OF LOAD BALANCING ALGORITHMS TO DEAL WITH DDOS ATTACKS USING WHALE‎ OPTIMIZATION ALGORITHM
CN114514536A (zh) 分布式系统中的神经网络训练
Shabeera et al. Optimising virtual machine allocation in MapReduce cloud for improved data locality
Shirvani A novel discrete grey wolf optimizer for scientific workflow scheduling in heterogeneous cloud computing platforms
JP2011113377A (ja) 分散計算装置および分散計算装置の制御方法
CN116501828B (zh) 基于非结构化数据集的服务器无感知向量查询方法和系统
Chakraborty et al. PMI extensions for scalable MPI startup
Ibrahim et al. Improving mapreduce performance with progress and feedback based speculative execution
CN112114951A (zh) 一种自下而上的分布式调度系统及方法
CN110505276A (zh) 对象匹配方法、装置及系统、电子设备及存储介质
CN108228323A (zh) 基于数据本地性的Hadoop任务调度方法及装置
Wu et al. Multi-source streaming-based data accesses for MapReduce systems
Al Sallami Load balancing in green cloud computation

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120618

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131112