(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-16
(45)【発行日】2022-12-26
(54)【発明の名称】情報処理装置及び情報処理方法
(51)【国際特許分類】
G06N 99/00 20190101AFI20221219BHJP
G06F 13/10 20060101ALI20221219BHJP
G06N 10/00 20220101ALI20221219BHJP
G06F 3/06 20060101ALI20221219BHJP
【FI】
G06N99/00 180
G06F13/10 340A
G06N10/00
G06F3/06 302J
(21)【出願番号】P 2019214131
(22)【出願日】2019-11-27
【審査請求日】2021-11-17
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100166006
【氏名又は名称】泉 通博
(74)【代理人】
【識別番号】100154070
【氏名又は名称】久恒 京範
(74)【代理人】
【識別番号】100153280
【氏名又は名称】寺川 賢祐
(72)【発明者】
【氏名】黒川 茂莉
(72)【発明者】
【氏名】斉藤 和広
【審査官】加藤 優一
(56)【参考文献】
【文献】特開平08-087473(JP,A)
【文献】特表2019-526091(JP,A)
【文献】特開2019-046038(JP,A)
【文献】特開2017-073106(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00 -99/00
G06F 3/06
G06F 13/10
G06F 17/00 -17/18
G06T 7/00 -7/90
G06V 10/00 -20/90
G06V 30/418
G06V 40/16
(57)【特許請求の範囲】
【請求項1】
データ容量が一定である複数のデータブロックが異なるアドレスを有する複数の記憶領域に配置される分散システムにおいて、所定期間に実行された処理に伴う前記データブロックの複数の記憶領域間の伝送頻度を示す伝送履歴を特定する伝送履歴特定部と、
前記複数の記憶領域のそれぞれの記憶容量を特定する記憶容量特定部と、
前記記憶容量特定部が特定した前記複数の記憶領域のそれぞれの記憶容量を超えないように前記複数のデータブロックを前記複数の記憶領域に配置する配置組合せに対応する複数の変数を含み、前記配置組合せに対して、前記分散システムが前記所定期間に実行された処理を再実行した場合における前記伝送頻度及び前記データブロックの伝送コストに基づく前記伝送コストの総コストが最小となる変数の値の組合せを特定する最適化関数であって、量子イジングマシンが評価可能な形式
である、前記変数を二値変数のみで記述した二次多項式の最適化関数を作成する作成部と、
前記作成部が作成した前記最適化関数を前記量子イジングマシンに評価させ、前記総コストを最小に近づける複数の前記変数の値の組み合わせを特定させることにより、前記総コストが最小となるように前記配置組合せを特定する配置組合せ特定部と、
を備え
、
前記作成部は、前記配置組合せに対応する前記複数のデータブロックのそれぞれの伝送元の記憶領域と、伝送先の記憶領域とを特定するための、第1の二値変数群を作成するとともに、前記配置組合せに対応する前記複数の記憶領域における前記複数のデータブロックの格納数を示す第2の二値変数群を作成し、前記第1の二値変数群と、前記第2の二値変数群とを含む前記最適化関数を作成する、
情報処理装置。
【請求項2】
前記作成部は、前記伝送頻度に基づいて、前記所定期間に実行された処理において伝送が行われた伝送元と伝送先との組合せに限定して、前記第1の二値変数群を作成する、
請求項
1に記載の情報処理装置。
【請求項3】
前記作成部は、前記複数のデータブロックの各々を複数の記憶領域に複製して配置することを許容し、前記組合せを特定する最適化関数であって、量子イジングマシンが評価可能な形式の最適化関数を作成する、
請求項1
又は2に記載の情報処理装置。
【請求項4】
前記作成部は、前記複数のデータブロックの各々を複数の記憶領域に複製して配置するときの複製数を第1の所定数以上第2の所定数以下とするように前記組合せを特定する最適化関数であって、量子イジングマシンが評価可能な形式の最適化関数を作成する、
請求項
3に記載の情報処理装置。
【請求項5】
前記伝送履歴特定部は、所定期間に実行された処理に伴う前記データブロックの複数の記憶領域間の伝送頻度と、前記データブロックの伝送コストとを示す前記伝送履歴を特定し、
前記作成部は、前記配置組合せに対して、前記分散システムが前記所定期間に実行された処理を再実行した場合における前記伝送頻度及び前記伝送履歴が示す前記伝送コストに基づく前記伝送コストの総コストが最小となる変数の値の組合せを特定する前記最適化関数を作成する、
請求項1から
4のいずれか1項に記載の情報処理装置。
【請求項6】
前記配置組合せ特定部が特定した前記配置組合せに基づいて前記複数のデータブロックを前記複数の記憶領域に配置させる配置制御部をさらに備える、
請求項1から
5のいずれか1項に記載の情報処理装置。
【請求項7】
コンピュータが実行する、
データ容量が一定である複数のデータブロックが異なるアドレスを有する複数の記憶領域に配置される分散システムにおいて、所定期間に実行された処理に伴う前記データブロックの複数の記憶領域間の伝送頻度を示す伝送履歴を特定するステップと、
前記複数の記憶領域のそれぞれの記憶容量を特定するステップと、
特定された前記複数の記憶領域のそれぞれの記憶容量を超えないように前記複数のデータブロックを前記複数の記憶領域に配置する配置組合せに対応する複数の変数を含み、前記配置組合せに対して、前記分散システムが前記所定期間に実行された処理を再実行した場合における前記伝送頻度及び前記データブロックの伝送コストに基づく前記伝送コストの総コストが最小となる変数の値の組合せを特定する最適化関数であって、量子イジングマシンが評価可能な形式
である、前記変数を二値変数のみで記述した二次多項式の最適化関数を作成するステップと、
作成した前記最適化関数を前記量子イジングマシンに評価させ、前記総コストを最小に近づける複数の前記変数の値の組み合わせを特定させることにより、前記総コストが最小となるように前記配置組合せを特定するステップと、
を
有し、
前記作成するステップにおいて、前記コンピュータは、前記配置組合せに対応する前記複数のデータブロックのそれぞれの伝送元の記憶領域と、伝送先の記憶領域とを特定するための、第1の二値変数群を作成するとともに、前記配置組合せに対応する前記複数の記憶領域における前記複数のデータブロックの格納数を示す第2の二値変数群を作成し、前記第1の二値変数群と、前記第2の二値変数群とを含む前記最適化関数を作成する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散システムにおいて用いられる複数のデータブロックの複数の記憶領域への配置組合せを特定する情報処理装置及び情報処理方法に関する。
【背景技術】
【0002】
従来、データをブロック単位で管理し、分散配置することにより、耐障害性とデータ処理の並列性とを高める技術があった(例えば、非特許文献1、非特許文献2参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】Ghemawat, S., Gobioff, H., and Leung, S. T., The Google file system, 2003.
【0004】
【文献】Shvachko, K., Kuang, H., Radia, S., and Chansler, R., The hadoop distributed file system, In MSST, Vol.10, pp.1-10, 2010.
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の技術において、データは予め定められたルールに従って複数の記憶領域に配置されていた。これに対し、配置されるデータはそれぞれ利用頻度が異なるものであり、利用頻度が高いデータの処理の実行速度を高めることが好ましい。そこで、データの利用頻度に基づいてデータを適した記憶領域に配置することが求められている。
【0006】
そこで、本発明はこれらの点に鑑みてなされたものであり、データの利用頻度に基づいてデータの配置に適した記憶領域を特定することができる情報処理装置及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の態様に係る情報処理装置は、複数のデータブロックが異なるアドレスを有する複数の記憶領域に配置される分散システムにおいて、所定期間に実行された処理に伴う前記データブロックの複数の記憶領域間の伝送頻度を示す伝送履歴を特定する伝送履歴特定部と、前記複数の記憶領域のそれぞれの記憶容量を特定する記憶容量特定部と、前記記憶容量特定部が特定した前記複数の記憶領域のそれぞれの記憶容量を超えないように前記複数のデータブロックを前記複数の記憶領域に配置する配置組合せに対応する複数の変数を含み、前記配置組合せに対して、前記分散システムが前記所定期間に実行された処理を再実行した場合における前記伝送頻度及び前記データブロックの伝送コストに基づく前記伝送コストの総コストが最小となる変数の値の組合せを特定する最適化関数であって、量子イジングマシンが評価可能な形式の最適化関数を作成する作成部と、前記作成部が作成した前記最適化関数を前記量子イジングマシンに評価させ、前記総コストを最小に近づける複数の前記変数の値の組み合わせを特定させることにより、前記総コストが最小となるように前記配置組合せを特定する配置組合せ特定部と、を備える。
【0008】
前記作成部は、変数として二値変数のみで記述された二次多項式を前記最適化関数として作成してもよい。
前記複数のデータブロックのそれぞれのデータ容量は一定であり、前記作成部は、前記配置組合せに対応する前記複数のデータブロックのそれぞれの伝送元の記憶領域と、伝送先の記憶領域とを特定するための、第1の二値変数群を作成するとともに、前記配置組合せに対応する前記複数の記憶領域における前記複数のデータブロックの格納数を示す第2の二値変数群を作成し、前記第1の二値変数群と、前記第2の二値変数群とを含む前記最適化関数を作成してもよい。
【0009】
前記作成部は、前記伝送頻度に基づいて、前記所定期間に実行された処理において伝送が行われた伝送元と伝送先との組合せに限定して、前記第1の二値変数群を作成してもよい。
前記作成部は、前記複数のデータブロックの各々の複数の記憶領域に複製して配置することを許容し、前記組合せを特定する最適化関数であって、量子イジングマシンが評価可能な形式の最適化関数を作成してもよい。
前記作成部は、前記複数のデータブロックの各々を複数の記憶領域に複製して配置するときの複製数を第1の所定数以上第2の所定数以下とするように前記組合せを特定する最適化関数であって、量子イジングマシンが評価可能な形式の最適化関数を作成してもよい。
【0010】
前記伝送履歴特定部は、所定期間に実行された処理に伴う前記データブロックの複数の記憶領域間の伝送頻度と、前記データブロックの伝送コストとを示す前記伝送履歴を特定し、前記作成部は、前記配置組合せに対して、前記分散システムが前記所定期間に実行された処理を再実行した場合における前記伝送頻度及び前記伝送履歴が示す前記伝送コストに基づく前記伝送コストの総コストが最小となる変数の値の組合せを特定する前記最適化関数を作成してもよい。
前記情報処理装置は、前記配置組合せ特定部が特定した前記配置組合せに基づいて前記複数のデータブロックを前記複数の記憶領域に配置させる配置制御部をさらに備えてもよい。
【0011】
本発明の第2の態様に係る情報処理方法は、コンピュータが実行する、複数のデータブロックが異なるアドレスを有する複数の記憶領域に配置される分散システムにおいて、所定期間に実行された処理に伴う前記データブロックの複数の記憶領域間の伝送頻度を示す伝送履歴を特定するステップと、前記複数の記憶領域のそれぞれの記憶容量を特定するステップと、特定された前記複数の記憶領域のそれぞれの記憶容量を超えないように前記複数のデータブロックを前記複数の記憶領域に配置する配置組合せに対応する複数の変数を含み、前記配置組合せに対して、前記分散システムが前記所定期間に実行された処理を再実行した場合における前記伝送頻度及び前記データブロックの伝送コストに基づく前記伝送コストの総コストが最小となる変数の値の組合せを特定する最適化関数であって、量子イジングマシンが評価可能な形式の最適化関数を作成するステップと、作成した前記最適化関数を前記量子イジングマシンに評価させ、前記総コストを最小に近づける複数の前記変数の値の組み合わせを特定させることにより、前記総コストが最小となるように前記配置組合せを特定するステップと、を備える。
【発明の効果】
【0012】
本発明によれば、データの利用頻度に基づいてデータの配置に適した記憶領域を特定することができるという効果を奏する。
【図面の簡単な説明】
【0013】
【
図1】本実施形態に係る情報処理装置の概要を説明する図である。
【
図2】本実施形態に係る情報処理装置の構成を示す図である。
【
図5】伝送コスト行列に対応する表を示す図である。
【
図10】量子イジングマシンにより特定されたx
ijに対応する配置行列に対応する表を示す図である。
【
図11】情報処理装置における処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0014】
[情報処理装置1の概要]
図1は、本実施形態に係る情報処理装置1の概要を説明する図である。情報処理装置1は、複数のデータブロックが異なるアドレスを有する複数の記憶領域に配置される分散システムにおいて、量子イジングマシンを用いて複数のデータブロックの複数の記憶領域への最適配置を特定するためのコンピュータである。
【0015】
本実施形態において、複数の記憶領域のそれぞれは、例えば複数のサーバのそれぞれに設けられており、分散システムが複数の記憶領域のそれぞれに記憶されているデータを使用する場合、データの処理に伴う処理コストが発生するものとする。処理コストとしては、伝送コスト及びCPUの使用時間等が挙げられるが、本実施形態では、伝送コストに着目して説明を行う。
【0016】
情報処理装置1は、分散システムにおいて、所定期間に実行された処理に伴うデータブロックの複数の記憶領域間の伝送頻度と、データブロックの伝送コストとの履歴を示す伝送履歴情報を取得するとともに、複数の記憶領域のそれぞれの記憶容量を示す記憶容量情報を取得することにより、伝送履歴及び記憶容量を特定する(
図1の(1)、(2))。
【0017】
情報処理装置1は、複数の記憶領域のそれぞれの記憶容量を超えないように複数のデータブロックを複数の記憶領域に配置する配置組合せに対して、所定期間に実行された処理を再実行した場合における伝送コストの総コストを算出する最適化関数を作成する(
図1の(3))。最適化関数は、量子イジングマシンが評価可能な形式に作成される。情報処理装置1は、作成した最適化関数を量子イジングマシンに評価させることにより伝送コストの総コストが最小となるように配置組合せを特定する(
図1の(4))。その後、情報処理装置1は、特定した配置組合せに基づいて、複数のデータブロックの配置制御を行う(
図1の(5))。このようにすることで、情報処理装置1は、データの利用頻度に基づいて、複数の記憶領域における複数のデータブロックの配置に関する多数の組み合わせの中から好適な配置を特定することができる。
以下、情報処理装置1の構成について説明する。
【0018】
[情報処理装置1の構成例]
図2は、本実施形態に係る情報処理装置1の構成を示す図である。情報処理装置1は、記憶部11と、制御部12とを備える。
【0019】
記憶部11は、例えば、ROM(Read Only Memory)及びRAM(Random Access Memory)等である。記憶部11は、情報処理装置1を機能させるための各種プログラムを記憶する。例えば、記憶部11は、情報処理装置1の制御部12を、伝送履歴特定部121、記憶容量特定部122、作成部123、配置組合せ特定部124、及び配置制御部125として機能させるプログラムを記憶する。なお、本プログラムは、複数のプログラムから構成されていてもよい。
【0020】
制御部12は、例えばCPU(Central Processing Unit)である。制御部12は、記憶部11に記憶されている各種プログラムを実行することにより、情報処理装置1に係る機能を制御する。制御部12は、記憶部11に記憶されているプログラムを実行することにより、伝送履歴特定部121、記憶容量特定部122、作成部123、配置組合せ特定部124、及び配置制御部125として機能する。
【0021】
伝送履歴特定部121は、複数のデータブロックが異なるアドレスを有する複数の記憶領域に配置される分散システムにおいて、所定期間に実行された処理に伴うデータブロックの複数の記憶領域間の伝送頻度と、データブロックの伝送コストとを示す伝送履歴を特定する。
【0022】
例えば、分散システムは、データブロックを使用した処理を実行させるための命令文としてのクエリの実行結果情報を所定の記憶領域に記憶している。
図3は、実行結果情報の一例を示す図である。
図3に示すように、実行結果情報は、所定期間に実行されたクエリと、当該クエリに対して使用されたデータブロックと、当該データブロックの伝送元の記憶領域のアドレスと、当該データブロックの伝送先の記憶領域のアドレスと、伝送元の記憶領域から伝送先の記憶領域にデータブロックを伝送した時のコストである伝送コストとを関連付けた情報である。伝送コストは、データブロックが、ネットワーク、メモリ又はCPUを占有する時間に基づいて定められるものとする。
【0023】
所定の記憶領域には、所定期間に実行されたクエリに対応する実行結果情報が記憶されており、伝送履歴特定部121は、所定の記憶領域に記憶されている実行結果情報を取得することにより、データブロックの複数の記憶領域間の伝送頻度と、データブロックの伝送コストとを特定する。具体的には、伝送履歴特定部121は、取得した実行結果情報に基づいて、所定期間に実行された処理に伴うデータブロックの複数の記憶領域間の伝送頻度を示す伝送頻度行列Fと、データブロックの伝送コストを示す伝送コスト行列Cとを特定する。
【0024】
伝送頻度行列Fは、所定期間に実行されたクエリによる各データブロックの各アドレスの記憶領域への伝送頻度を示す。
図4は、伝送頻度行列Fに対応する表を示す図である。
図4に示す表において、行方向はデータブロックのインデックス、列方向は伝送先の記憶領域のアドレス(番地)を示している。i行、k列に対応する要素f
ikは、i個目のデータブロックがk番地の記憶領域に伝送された回数である伝送頻度を示している。例えば、伝送頻度行列Fの要素f
12は、データブロックA(1番目のデータブロック)の2番地の記憶領域への伝送頻度が5回であることを示している。
【0025】
伝送コスト行列Cは、伝送元の記憶領域から伝送先の記憶領域への1データブロックあたりの伝送コストを示す。
図5は、伝送コスト行列Cに対応する表を示す図である。
図5に示す表において、行方向は伝送元の記憶領域のアドレス、列方向は伝送先の記憶領域のアドレスを示している。
図5に示す表において、j行、k列に対応する要素c
jkは、j番地の記憶領域からk番地の記憶領域への1データブロックあたりの伝送コストを示している。例えば、伝送コスト行列Cの要素c
32は、3番地の記憶領域から2番地の記憶領域にデータブロックを伝送した時の伝送コストが2であることを示している。
【0026】
伝送コストは、1)同じ番地でのデータブロックの読み込みに伴うコスト、2)同じ番地でのデータブロックの書き込みに伴うコスト、3)異なる番地でのデータブロックの読み込みに伴うコスト、4)異なる番地でのデータブロックの書き込みに伴うコストに分けて管理しても構わない。さらに、伝送頻度も1)~4)に対応する頻度を管理しても構わない。以降、説明を簡単にするため、これらを分けずに評価する。
【0027】
記憶容量特定部122は、複数の記憶領域のそれぞれの記憶容量を特定する。例えば、分散システムは、複数の記憶領域のそれぞれのアドレスと記憶容量とを関連付けた記憶容量情報を所定の記憶領域に記憶している。記憶容量特定部122は、所定の記憶領域に記憶されている記憶容量情報を取得することにより、複数の記憶領域のそれぞれの記憶容量を特定する。
図6は、記憶容量情報の一例を示す図である。本実施形態では、記憶容量を、記憶領域に記憶可能なデータブロックの数で示している。
図6に示すように、例えば、3番地の記憶領域の記憶容量は2であり、二つのデータブロックを記憶できることを示している。
【0028】
作成部123は、複数のデータブロックを複数の記憶領域に配置する配置組合せに対応する複数の変数を含み、配置組合せに対して、分散システムが所定期間に実行した処理を再実行した場合における伝送頻度行列Fが示す伝送頻度及び伝送コスト行列Cが示す伝送コストに基づく伝送コストの総コストが最小となる変数の値の組合せを特定する最適化関数を作成する。作成部123は、記憶容量特定部122が特定した複数の記憶領域のそれぞれの記憶容量を超えないように複数のデータブロックを複数の記憶領域に配置する配置組合せに対応する複数の変数を含む最適化関数を作成する。以下、作成部123による最適化関数の作成について詳細を説明する。
【0029】
まず、作成部123は、i番目のデータブロックを、j番地の記憶領域に配置するか否かを示す二値変数x
ijを定義し、複数のデータブロックのそれぞれを、j番地の記憶領域に配置するか否かを示す配置行列Xを作成する。x
ijは、以下の式(1)で示される。
【数1】
【0030】
量子イジングマシンにおいて、最適化する変数であるスピンs
ijは、+1又は-1のいずれかをとる変数であるが、スピンs
ijは、以下に示す式(2)のように1,0のいずれかをとる二値変数x
ijに変換することができる。したがって、二値変数x
ijを、量子イジングマシンにおいて最適化する変数とすることができる。
【数2】
【0031】
配置行列Xは、二値変数x
ijの集合{x
ij}であることから、X={x
ij}とも表現する。
図7は、配置行列Xに対応する表を示す図である。
図7に示すように、配置行列Xの要素である二値変数x
ijは、1か0のいずれかであることが確認できる。
【0032】
複数のデータブロックの各記憶領域への最適配置は、以下の式(3)、(4)により示される最適化問題を解くことにより特定される。
【数3】
【0033】
式(3)は、配置行列Xに基づいて所定期間に実行された処理を再実行した場合における、伝送頻度及び伝送コストに基づく総コストが最小となる配置行列Xを求める目的関数を示す。Cik(X)は、i番目のブロックを伝送先の記憶領域(k番地の記憶領域)に伝送する伝送コストの総和を示している。
【0034】
式(4)は、各記憶領域に格納されるデータブロックの数がストレージ容量以下となることを示す制約条件を示している。式(3)に示す目的関数と式(4)が示す制約条件とを組み合わせることにより、伝送コストの総和が最小となる配置行列Xを求める最適化問題となる。
【0035】
さらに、複数のデータブロックのそれぞれについて、一つのデータブロックを複数の記憶領域に複製して配置することを許容し、データブロックの複製数を所定数rとする制約をかけてもよい。この場合、複数のデータブロックの各記憶領域への最適配置は、以下の式(3)、(4)、(5)により示される最適化問題を解くことにより特定される。
【数4】
【0036】
[二値変数の作成]
量子イジングマシンでは、全ての変数を、1と0とのいずれかをとる二値変数とする必要がある。作成部123は、式(3)、式(4)が示す最適化問題において、多数の値をとる部分について、二値変数で表現した、量子イジングマシンが評価可能な形式の最適化関数を作成する。
【0037】
[式(3)に関する二値変数の作成]
まず、作成部123は、式(3)に関する二値変数を定める。式(3)のCik(X)は、k番地の記憶領域にi番目のデータブロックを伝送するときの伝送コストを示しているが、伝送元の記憶領域として複数の記憶領域を取り得る(多数の値をとる)。これに対し、作成部123は、配置組合せに対応する複数のデータブロックのそれぞれの伝送元の記憶領域と、伝送先の記憶領域とを特定するための第1の二値変数群としての第1補助変数vijkを作成する。第1補助変数vijkは、i番目のブロックをk番地の記憶領域に伝送する場合における伝送元の記憶領域として、j番地の記憶領域を用いる場合に1となり、j番地の記憶領域を用いない場合に0となる変数である。
【0038】
図8は、第1補助変数の一例を表で示した図である。
図8において、各要素には、括弧外の値と、括弧内の値とが示されている。括弧外の値は、第1補助変数v
ijkの値を示している。括弧内の値は、配置行列Xの要素x
ijの値を示している。
図8において、例えば、(i,k)が(2,3)であり、jが3である場合、1(1)と示されている。これは、3番地(k=3)の記憶領域に2番目(i=2)のデータブロックを伝送する場合の伝送元の記憶領域として、3番地(j=3)の記憶領域を用いることを示しているとともに、2番目(i=2)のデータブロックが3番目(j=3)の記憶領域に存在していることを示している。
【0039】
ここで、伝送頻度f
ik、配置行列の要素x
ij、第1補助変数v
ijkは、以下の式(6)を満たしている必要がある。
【数5】
【0040】
式(6)において、f
ik>0という条件は、第1補助変数v
ijkの数を節約するために設けられている。f
ik=0は、所定時間内に実行された処理により、i番目のデータブロックがk番地の記憶領域に伝送されなかったことを示しており、f
ik=0に対応する第1補助変数v
ijkについては、伝送コストを考慮する必要がない。このため、作成部123は、伝送頻度f
ikに基づいて、所定期間に実行された処理において伝送が行われた伝送元の記憶領域と伝送先の記憶領域との組合せに限定して、第1補助変数v
ijkを作成する。
図8に示す例では、第1補助変数v
ijkが、
図4に示すf
ik>0に対応する第1補助変数v
ijkに限定されていることが確認できる。
【0041】
このようにすることで、fik=0に対応する第1補助変数vijkを作成しないことにより、第1補助変数vijkの数を抑制することができる。量子イジングマシンにおいて扱える量子ビット数には制限があるところ、第1補助変数vijkの数を抑制することで、第1補助変数vijkの数がイジングマシンにおいて扱える量子ビット数を超え、イジングマシンにおいて処理が実行不能になることを抑制することができる。
【0042】
また、式(6)において、k番地の記憶領域に伝送されたi番目のデータブロックについて、Σ
jv
ijk=1は、伝送元の記憶領域(j番地の記憶領域)が、伝送先の記憶領域(k番地の記憶領域)に対して一つに定まっている必要があることを示している。また、Σ
jx
ijv
ijk=1は、伝送元の記憶領域(j番地の記憶領域)にi番目のデータブロックが存在することを示している。
図8に示す例において、例えば、(i,k)が(2,3)の行に着目すると、伝送元の記憶領域(j番地の記憶領域)が、伝送先の記憶領域(k=3の記憶領域)に対し、3番地の記憶領域(j=3)に定まっているとともに、伝送元の記憶領域(3番地の記憶領域)に2番目のデータブロックが存在することが確認できる。
【0043】
第1補助変数v
ijkを用いることにより、式(3)内のC
ik(X)は、以下の式(7)で表すことができる。
【数6】
【0044】
上述したように、c
jkは、伝送元の記憶領域(j番地の記憶領域)から伝送先の記憶領域(k番地の記憶領域)に一つのデータブロックを伝送する場合の伝送コストを示し、伝送頻度f
ikは、i番目のブロックが伝送先の記憶領域(k番地の記憶領域)に伝送される伝送頻度を示している。ここで、c
jkf
ikには、要素jが含まれているため、
図8に示す第1補助変数v
ijkのように、jを一つに定めておき、v
ijkとc
jkf
ikとを乗算することにより、C
ik(X)は、所定期間内に実行された全ての処理を再実行した場合における伝送コストの総コストとなる。
【0045】
また、第1補助変数v
ijkは、配置行列Xの要素x
ijの制約を受けていることから、配置行列Xに関する関数であるといえる。式(7)により、式(1)は以下の式(8)で表すことができる。式(8)において、Vは、第1補助変数v
ijkの集合{v
ijk}を示している。
【数7】
【0046】
[式(4)に関する二値変数の作成]
続いて、作成部123は、式(4)に関する二値変数を定める。式(4)のΣ
ix
ijは、伝送元の複数の記憶領域のそれぞれに配置されるデータブロックの数を示しており、多数の正整数値を取り得る。これに対し、作成部123は、複数の記憶領域のそれぞれにおけるデータブロックの格納数を示す第2の二値変数群としての第2補助変数y
jmを作成する。第2補助変数y
jmは、記憶領域のそれぞれに対して記憶容量特定部122が特定した記憶容量以下の各正整数値(1≦m≦t
j)に対して、以下の式(9)に示すように作成される。
【数8】
【0047】
図9は、第2補助変数y
jmの一例を表で示した図である。
図9において、例えば、3行(j=3)の値は、3番地の記憶領域に配置されるデータブロックの数が1であることを示している。
【0048】
第2補助変数y
jmにより、式(4)は、以下に示す式(10)に変換できる。
【数9】
【0049】
式(10)は、各記憶領域に配置されるデータブロックの記憶容量の総和(データブロックの数)を示しているとともに、各記憶領域に配置されるデータブロックの記憶容量の総和が、各記憶領域の記憶容量以下となることを示している。なお、第2補助変数yjmの集合{yjm}をYとする。
【0050】
[最適化関数の作成]
続いて、作成部123は、第1補助変数vijk及び第2補助変数yjmを含み、量子イジングマシンが解ける最適化関数Hを作成する。最適化関数Hの形式は、QUBO(Quadratic Unconstrained Binary Optimization)と呼ばれ、二値変数のみで記述した制約なし二次多項式である。
【0051】
最適化関数Hは、例えば、式(5)、(6)、(7)、(10)を組み合わせて、以下の式(11)で示される。
【数10】
【0052】
式(7)は、Vの最適化の式であるが、式(6)、(10)は、X、Y、Vを含むため、X、Y、Vが変化する変数群となる。したがって、最適化関数Hでは、これらの変数群X、Y、Vについて最適化を行う。
【0053】
式(11)の右辺における第4項、第5項は、式(6)、(10)の制約式に対応した制約項である。式(6)、(10)は、第1補助変数vijk及び第2補助変数yjmの制約式であるところ、最適化関数では、これらの制約式について、(左辺-右辺)を二乗した形式とし、これの最小化を求める制約項を設け、最適化関数Hの解において、(左辺-右辺)=0、すなわち、左辺=右辺となり、制約式が示す制約が満たされるようにしている。同様に、第6項も、式(5)の制約式に対応した制約項であり、(左辺-右辺)を二乗した形式としている。第2項は、式(6)の制約式のΣjvijk=1に対応した制約項であり、第2項は(左辺-右辺)を二乗した形としている。一方、第3項は、式(5)の制約式のΣjxijvijk=1に対応した制約項であるが、第2項=0が満たされれば、(1-Σjxijvijk)は負の値になることはなく、また、これを二乗すると4次式となってしまうため、二乗しない。ここで、式(11)におけるλ0~λ4は、制約項の係数であり、より強く満たすべき制約項を設定することができる。
【0054】
なお、式(11)において、第3項及び第4項について、λ
2Σ
j(Σ
ix
ij-Σ
m:1≦m≦tjy
im)と変換しても、同様の効果があることが知られている(この場合は、補助変数は式(9)とは異なる値をとるが、第3項及び第4項と同じ制約を満たすように制約する効果は維持される)。そこで、作成部123は、式(11)に替えて、式(12)を作成してもよい。このようにすることで、制約項の係数を少なくすることができるので、各制約項の係数を調整することが容易になる。
【数11】
【0055】
なお、上述の説明では、データブロックのデータ容量が一定であることとして説明したが、複数のデータブロックのそれぞれがwiである場合には、作成部123は、以下の式(13)を作成してもよい。式(13)において、tjは、配置可能な最大のデータブロック数ではなく、データサイズを示し、cjkは、単位データサイズ当たりの伝送コストを示すものとする。
【0056】
【0057】
なお、上述の説明では、データブロックの複製数を所定数rとして説明したが、データブロックの複製数を第1の所定数以上第2の所定数以下としてもよい。例えば、複製数を1以上2以下とする場合は、式(11)~(13)の最終項を式(14)のように変えればよい。
【数13】
【0058】
また、複製数を1以上3以下とする場合は、各データブロックの複製数を示す補助変数z
ilを導入し、式(11)~(13)の最終項を式(15)のように変えればよい。考え方は、式(12)における変形と同様である。
【数14】
【0059】
配置組合せ特定部124は、作成部123が作成した最適化関数を量子イジングマシンに評価させて準最適解を求めさせ、量子イジングマシンに総コストを最小に近づける複数の変数の組み合わせを特定させることにより、総コストが最小となるように配置組合せを特定する。
図10は、量子イジングマシンにより特定されたx
ijに対応する配置行列Xに対応する表を示す図である。
図10に示されるように、各記憶領域の記憶容量よりも小さい範囲で各記憶領域にデータブロックが配置されることが確認できる。
【0060】
配置制御部125は、配置組合せ特定部124が特定した配置組合せに基づいて複数のデータブロックを複数の記憶領域に配置させる。これにより、データブロックの記憶領域への配置の最適化が行われる。例えば、配置制御部125は、最適化前の配置行列と、配置組合せ特定部124が特定した配置行列との差分に基づいて、各データブロックの配置を行う。
【0061】
配置制御部125は、データ処理に伴うデータ伝送時に、データの再配置を行うようにしてもよい。例えば、i番目のデータブロックがj番地の記憶領域に配置されており、配置組合せ特定部124が特定した当該データブロックの配置先の記憶領域がk番地の記憶領域である場合、配置制御部125は、分散システムが当該データブロックをk番地に伝送する処理を実行する際に、データの再配置を行うようにしてもよい。また、配置制御部125は、分散システムの管理者が設定した時刻に、一斉に複数のデータブロックのそれぞれの再配置を行うようにしてもよい。
【0062】
[情報処理装置1における処理の流れ]
続いて、情報処理装置1における処理の流れの一例について説明する。
図11は、情報処理装置1における処理の流れを示すフローチャートである。
まず、伝送履歴特定部121は、所定期間に実行された処理に伴うデータブロックの複数の記憶領域間の伝送頻度と、データブロックの伝送コストとを示す伝送履歴を特定する(S1)。
続いて、記憶容量特定部122は、複数の記憶領域のそれぞれの記憶容量を特定する(S2)。
【0063】
続いて、作成部123は、複数のデータブロックを複数の記憶領域に配置する配置組合せを特定するための最適化関数を作成する(S3)。
続いて、配置組合せ特定部124は、S3において作成された最適化関数を量子イジングマシンに評価させ、伝送コストの総コストが最小となるように配置組合せを特定する(S4)。
配置制御部125は、配置組合せ特定部124が特定した配置組合せに基づいて複数のデータブロックを複数の記憶領域に配置させる(S5)。
【0064】
[本実施形態における効果]
以上の通り、本実施形態に係る情報処理装置1は、複数の記憶領域のそれぞれの記憶容量を超えないように複数のデータブロックを複数の記憶領域に配置する配置組合せに対応する複数の変数を含み、当該配置組合せに対して、分散システムが所定期間に実行された処理を再実行した場合における伝送頻度及び伝送コストに基づく伝送コストの総コストが最小となる変数の値の組合せを特定する最適化関数であって、量子イジングマシンが評価可能な形式の最適化関数を作成する。そして、情報処理装置1は、作成した最適化関数を量子イジングマシンに評価させ、総コストを最小に近づける複数の変数の値の組み合わせを特定させることにより、総コストが最小となるように配置組合せを特定する。このようにすることで、情報処理装置1は、データの利用頻度に基づいてデータの配置に適した記憶領域を特定することができる。
【0065】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の全部又は一部は、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【0066】
例えば、上述の実施形態では、伝送コストは、伝送履歴特定部121が特定した伝送履歴に基づいて特定されることとしたが、これに限らない。情報処理装置1は、利用者から伝送コストを示す情報の入力を受け付けることにより、伝送コストを特定してもよい。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を併せ持つ。
【符号の説明】
【0067】
1・・・情報処理装置、11・・・記憶部、12・・・制御部、121・・・伝送履歴特定部、122・・・記憶容量特定部、123・・・作成部、124・・・配置組合せ特定部、125・・・配置制御部