(57)【要約】  スループット推定装置１０は、それぞれが評価式とパラメータデータとを含む複数のタプルを記憶する記憶部１１と、ソフトウェアプロセスに関連するデータに関連するデータ、ハードウェア資源に関連するデータ、ソフトウェアプロセスとハードウェア資源と間の相互接続に関連するデータ、およびタプルを含む構成に従って演算装置を構築する演算手段構築部１２とを含み、演算装置は、ソフトウェアプロセスへの入力情報負荷を表す負荷ベクトルを入力し、結果値を出力する。
2020537243.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが評価式とパラメータデータとを含む複数のタプルを記憶する記憶手段と、
ソフトウェアプロセスに関連するデータに関連するデータ、ハードウェア資源に関連するデータ、ソフトウェアプロセスとハードウェア資源と間の相互接続に関連するデータ、およびタプルを含む構成に従って演算装置を構築する演算装置構築手段とを備え、
前記演算装置は、ソフトウェアプロセスへの入力情報負荷を表す負荷ベクトルを入力し、結果値を出力する
スループット推定装置。
【請求項２】
前記演算装置は、
それぞれが、コンピュータで実行されるソフトウェアプロセスの１つに対応し、該ソフトウェアプロセスに対応する入力情報負荷を表す負荷ベクトルを入力する複数の演算部と、
それぞれが、コンピュータのハードウェア資源の１つに対応する複数の演算部と、
コンピュータのハードウェア資源に対応する全ての前記演算部の出力を集約することによって生成される結果値を出力する出力手段とを含む
請求項１記載のスループット推定装置。
【請求項３】
請求項１または請求項２記載のスループット推定装置を含むスループット推定システムであって、
目的関数を最小化する最適化手段と、
パラメータデータと測定データとを入力し、入力された前記パラメータデータに従って前記スループット推定装置に格納されたパラメータデータを更新し、前記スループット推定装置に複数の構成を順次出力し、前記スループット推定装置に複数の負荷ベクトルを順次出力し、前記スループット推定装置から結果値を順次入力し、評価結果を前記最適化手段に出力する目的関数評価手段とをさらに含む
スループット推定システム。
【請求項４】
前記目的関数評価手段は、前記最適化手段により最適化されたパラメータデータを用いて、前記スループット推定装置に格納されたパラメータデータを更新する。
請求項３記載のスループット推定システム。
【請求項５】
ソフトウェアプロセスに関連するデータに関連するデータ、ハードウェア資源に関連するデータ、ソフトウェアプロセスとハードウェア資源と間の相互接続に関連するデータ、およびそれぞれが評価式とパラメータデータとを含む複数のタプルを含む構成に従って演算装置を含むスループット推定装置を構築し、
前記演算装置は、ソフトウェアプロセスへの入力情報負荷を表す、入力される負荷ベクトルに応じて、結果値を出力するように構成される
スループット推定方法。
【請求項６】
前記演算装置は、
それぞれが、コンピュータで実行されるソフトウェアプロセスの１つに対応し、該ソフトウェアプロセスに対応する入力情報負荷を表す負荷ベクトルを入力する複数の演算部と、
それぞれが、コンピュータのハードウェア資源の１つに対応する複数の演算部と、
コンピュータのハードウェア資源に対応する全ての前記演算部の出力を集約することによって生成される結果値を出力する出力手段とを含むように構成される
請求項５記載のスループット推定方法。
【請求項７】
目的関数を最小化し、
パラメータデータと測定データとを入力し、入力された前記パラメータデータに従って前記スループット推定装置に格納されたパラメータデータを更新し、前記スループット推定装置に複数の構成を順次出力し、前記スループット推定装置に複数の負荷ベクトルを順次出力し、前記スループット推定装置から結果値を順次入力し、評価結果を出力する
請求項５または請求項６記載のスループット推定方法。
【請求項８】
前記スループット推定装置に格納されたパラメータデータは、最適化されたパラメータデータを使用して更新される
請求項７記載のスループット推定方法。
【請求項９】
コンピュータに、
ソフトウェアプロセスに関連するデータに関連するデータ、ハードウェア資源に関連するデータ、ソフトウェアプロセスとハードウェア資源と間の相互接続に関連するデータ、およびそれぞれが評価式とパラメータデータとを含む複数のタプルを含む構成に従って演算装置を含むスループット推定装置を構築する処理を実行させ、
前記演算装置は、ソフトウェアプロセスへの入力情報負荷を表す、入力される負荷ベクトルに応じて、結果値を出力するように構成される
スループット推定プログラム。
【請求項１０】
コンピュータに、
目的関数を最小化する処理と、
パラメータデータと測定データとを入力し、入力された前記パラメータデータに従って前記スループット推定装置に格納されたパラメータデータを更新し、前記スループット推定装置に複数の構成を順次出力し、前記スループット推定装置に複数の負荷ベクトルを順次出力し、前記スループット推定装置から結果値を順次入力し、評価結果を出力する処理とを実行させる
請求項９記載のスループット推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置のスループットを推定するスループット推定装置に関する。
【背景技術】
【０００２】
多くの場合、情報処理品質を低下させずに、単位時間あたりに情報処理装置がどれだけの情報を処理できるかを評価することが望ましい。そのような評価は、通常、情報処理装置の性能評価測定によって達成される。
【０００３】
しかし、汎用コンピュータのハードウェアで実行されるソフトウェアによって情報処理が実現され、さらに（１）汎用コンピュータのハードウェアの仕様の違いが考慮され、かつ、（２）共用される汎用計算ハードウェアのシェアリングにおいて多数の情報処理ソフトウェアの同時実行が考慮されるときには、複雑な事情が生ずる。
【０００４】
非特許文献１には、ＮＦＶ（ネットワーク機能仮想化）のコンテキストにおいてＶＮＦ（仮想ネットワーク機能）の性能を改善する方法が開示されている。ＶＮＦは、ソフトウェアによるネットワーク機能、すなわち、仮想マシンである。ＮＦＶでは、ネットワーク機器は、１つ以上のソフトウェアと１つ以上のハードウェアとに分割され、ネットワーク機能は、複数の汎用サーバで構成される仮想インフラストラクチャで提供される。
【０００５】
非特許文献１に記載されている技術などの一般的な技術では、実行されるソフトウェアと基礎をなすハードウェアとの各々の組み合わせを個別に性能評価測定することが要求される。したがって、考慮されるべきハードウェアおよびソフトウェアのタイプの数が増えると、組み合わせの数すなわち性能評価測定の数がすぐに大きくなり、多くの一般的な状況において、非特許文献１に記載されている技術などの一般的な手法を非実用的にしてしまう。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】L. Cao et al., "NFV-VITAL: A Framework for Characterizing the Performance of Virtual Network Functions", in Proceedings of IEEE Conference on Network Function Virtualization and Software Defined Networks, 2015, San Francisco, CA, USA, November 18-21, 2015
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ソフトウェアで実行される多数の情報処理機能が所定の汎用コンピュータ上で同時に実行される場合、バス帯域幅やＣＰＵ（中央処理装置）のキャッシュなどのコンピュータの内部資源の共用によるパフォーマンスの低下によって、各々の単一の情報処理機能の潜在的な情報処理スループットを推定することは難しい。なぜなら、一般に、基礎をなす所定の汎用コンピュータ上で実行される情報処理機能の可能な組み合わせごとに、個別の性能評価を実行しなければならないからである。
【０００８】
さらに、ソフトウェアで実行される多数の情報処理機能が所定の汎用コンピュータ上で実行される場合、異なる仕様の異なる種類の基礎をなす汎用コンピュータを考慮すると、情報処理機能の潜在的な情報処理スループットを推定することは難しい。なぜなら、一般に、所定の情報処理機能の個別の性能評価を、基礎をなす所定の汎用コンピュータの種類ごとに、所定の情報処理機能の個別の性能評価を実行しなければならないからである。
【０００９】
上記の問題に鑑みて、本発明は、複数の演算部によるフィードフォワードネットワークに基づくスループット推定装置を提供することを目的とする。演算部は、ソフトウェアプロセスの振る舞いとハードウェア資源とをモデル化するための個別のユニットを含む。
【課題を解決するための手段】
【００１０】
本発明によるスループット推定装置は、それぞれが評価式とパラメータデータとを含む複数のタプルを記憶する記憶手段と、ソフトウェアプロセスに関連するデータに関連するデータ、ハードウェア資源に関連するデータ、ソフトウェアプロセスとハードウェア資源と間の相互接続に関連するデータ、およびタプルを含む構成に従って演算装置を構築する演算装置構築手段とを含み、演算装置は、ソフトウェアプロセスへの入力情報負荷を表す負荷ベクトルを入力し、結果値を出力する。
【００１１】
本発明によるスループット推定システムは、スループット推定装置と、目的関数を最小化する最適化手段と、パラメータデータと測定データとを入力し、入力されたパラメータデータに従ってスループット推定装置に格納されたパラメータデータを更新し、スループット推定装置に複数の構成を順次出力し、スループット推定装置に複数の負荷ベクトルを順次出力し、スループット推定装置から結果値を順次入力し、評価結果を最適化手段に出力する目的関数評価手段とを含む。
【００１２】
本発明によるスループット推定方法は、ソフトウェアプロセスに関連するデータに関連するデータ、ハードウェア資源に関連するデータ、ソフトウェアプロセスとハードウェア資源と間の相互接続に関連するデータ、およびそれぞれが評価式とパラメータデータとを含む複数のタプルを含む構成に従って演算装置を含むスループット推定装置を構築し、演算装置は、ソフトウェアプロセスへの入力情報負荷を表す、入力される負荷ベクトルに応じて、結果値を出力するように構成される。
【００１３】
本発明によるスループット推定プログラムは、コンピュータに、ソフトウェアプロセスに関連するデータに関連するデータ、ハードウェア資源に関連するデータ、ソフトウェアプロセスとハードウェア資源と間の相互接続に関連するデータ、およびそれぞれが評価式とパラメータデータとを含む複数のタプルを含む構成に従って演算装置を含むスループット推定装置を構築する処理を実行させ、演算装置は、ソフトウェアプロセスへの入力情報負荷を表す、入力される負荷ベクトルに応じて、結果値を出力するように構成される。
【発明の効果】
【００１４】
本発明によれば、コンピュータ内部資源の共有による、ソフトウェアで実現される多数の情報処理機能のスループットの低下を推定することができ、また、異なる種類の所定の汎用コンピュータ上で同時に実行される場合、性能評価の総数を減らしつつ、ソフトウェアで実現される１つの情報処理機能のスループットの低下を推定することができる。
【図面の簡単な説明】
【００１５】
【図１】汎用コンピュータ上で実行される情報処理ソフトウェアプロセスを説明するための説明図である。
【図２】ソフトウェアプロセスを表す演算部の一例を示すブロック図である。
【図３】アフィン変換に基づく負荷変換モデルを使用したソフトウェアプロセスを表す演算部の実現例を説明するためのブロック図である。
【図４】ハードウェア資源を表す演算部の例を示すブロック図である。
【図５】ハードウェア資源を表す演算部の実現例を説明するためのブロック図である。
【図６】ハードウェア資源を表す演算部の別の実現例を説明するためのブロック図である。
【図７】１つのソフトウェアプロセス層のフィードフォワードネットワークの例を示すブロック図である。
【図８】２つのソフトウェアプロセス層のフィードフォワードネットワークの例を示すブロック図である。
【図９】スループット推定装置と演算部のフィードフォワードネットワークの関係を示すブロック図である。
【図１０】スループット推定装置の例示的な実施形態を示すブロック図である。
【図１１】フィードフォワードネットワーク構成Ｆの例を示すブロック図である。
【図１２】目的関数評価部および最適化部の動作の一例を示すフローチャートである。
【図１３】スループット推定装置を含むスループット推定システムの例示的な実施形態を示すブロック図である。
【図１４】目的関数評価部および最適化部の動作の一例を示すフローチャートである。
【図１５】スループット推定装置の主要部を示すブロック図である。
【図１６】スループット推定システムの主要部を示すブロック図である。
【図１７】スループット推定装置またはスループット推定システムの機能を実現可能な情報処理システムの構成例を示すブロック図である。
【発明を実施するための形態】
【００１６】
最初に、演算部を含むフィードフォワードネットワークを説明する。フィードフォワードネットワークは、スループット推定装置に適用可能である。図１は、汎用コンピュータ上で実行される情報処理ソフトウェアプロセスを示す。汎用コンピュータには、パーソナルコンピュータとサーバとが含まれる。
【００１７】
図１に示すように、ハードウェア資源（Ｒ１，・・・，ＲＭ）を含む汎用コンピュータ３００上で同時に実行される多数のソフトウェアプロセス（Ｐ１，・・・，ＰＮ）２００で構成されるシステムを想定する。各ソフトウェアプロセスは、コンピュータの外部から到着するか、または、コンピュータの内部で生成される情報（バイト、ネットワークパケット、割り込みなど）を処理する。
【００１８】
ｋ番目のプロセスＰｋによって処理される単位時間あたりの情報量（例えば、１秒あたりのパケット数）は、負荷ベクトルI（ｋ）で表される。ベクトル成分Ｉａ（ｋ）は、ｋ番目のプロセスによって単位時間ごとに処理される特定のタイプａの情報量を示す。
【００１９】
以下に説明するスループット推定装置は、十分な情報処理品質を維持しながらシステム負荷がシステムで処理可能か否かを推定するために使用される。
【００２０】
推定は、演算部のフィードフォワードネットワークによってなされる。フィードフォワードネットワークは、入力として外部負荷ベクトルＩを受け取り、確率値ｙを出力する。ｙは０〜１の範囲である。確率値ｙは、十分な情報処理品質（例えば、十分に少ない情報損失と十分に低い処理遅延）を維持しながら、システムが負荷ベクトルＩによって与えられる負荷を処理できる確率を示す。
【００２１】
フィードフォワードネットワークには、ソフトウェアプロセス（Ｐ１，・・・，ＰＮ）２００を表す１つまたは複数の層の演算部、ハードウェア資源（Ｒ１，・・・，ＲＭ）３００を表す複数の演算部の１つの層も含まれる。また、フィードフォワードネットワークには、ハードウェア資源を表す全ての演算部の出力を収集しフィードフォワードネットワークの最終出力を計算する固定関数演算部が含まれる。各ソフトウェアプロセスＰｋについて、フィードフォワードネットワークには、ただ１つの演算部が含まれる。各ハードウェア資源Ｒｎについて、フィードフォワードネットワークには、ただ１つの演算部が含まれる。
【００２２】
図２は、ソフトウェアプロセスを表す演算部２１０の例を示す。ソフトウェアプロセスＰｋを表す演算部は、入力として、外部負荷ベクトルＩのベクトル成分、および／または、ソフトウェアプロセスを表す他の演算部が出力するベクトルのベクトル成分の連結によって構成される負荷ベクトルI（ｋ）を受け取る。「および／または」という用語は、それらのうちの少なくとも１つを意味する。ソフトウェアプロセスＰｋを表す演算部は、そのベクトル成分がソフトウェアプロセスを表す他の演算部および／またはハードウェア資源を表す他の演算部に入力されうるベクトルＪ（ｋ）を出力する。ソフトウェアプロセスＰｋを表す演算部が出力するＪ（ｋ）は、ソフトウェアプロセスのタイプに依存する入力（負荷ベクトル）Ｉ（ｋ）が変換されることによって生成される。
【００２３】
図３は、ソフトウェアプロセスを表す演算部２１０の実現例を示す。演算部２１０は、入力ベクトルＩから出力ベクトルＪをＪｉ＝Ｓｊ（ＡｉｊＩｊ＋Ｂｉ）として決定するアフィン変換に基づく負荷変換を使用して実現される。Ｓｊはｊについての合計を意味する。一般に、Ｓはギリシャ文字の大文字の「シグマ」で表される。行列ＡとベクトルＢは、ソフトウェアプロセスのタイプに固有のモデルパラメータである。
【００２４】
図４は、ハードウェア資源を表す演算部３１０の一例を示す。ハードウェア資源Ｒｎを表す演算部は、入力として、ベクトルＪ（ｋ）のベクトル成分を連結することにより構築される負荷ベクトルＫ（ｎ）を受け取り、確率値Ｙ（ｎ）を出力する。Ｙ（ｎ）は０〜１の範囲である。確率値Ｙ（ｎ）は、負荷ベクトルＫ（ｎ）に対応する負荷がその能力を超えることなくハードウェア資源で処理される確率を示す。ハードウェア資源Ｒｎを表す演算部３１０から出力される確率値Ｙ（ｎ）は、入力負荷ベクトルＫ（ｎ）およびハードウェア資源のタイプに応じて生成される。
【００２５】
以下に説明するように、演算部を有するフィードフォワードネットワークは、ソフトウェアプロセスを表す演算部、ハードウェア資源を表す演算部、および論理積演算を実行する演算部を含む。
【００２６】
最終層では、固定関数演算部（論理積演算部）が、ハードウェア資源Ｒｎを表す全ての演算部の出力確率値Ｙ（ｎ）を収集し、ｙ =ＰＭｎ ＝ １Ｙ（ｎ）としてフィードフォワードネットワークの最終出力ｙを計算する。計算は論理積演算として解釈される。ＰＭｎ＝１は積の合計を意味する。この場合、Ｙ（１）からＹ（Ｍ）の積の合計を意味する。
【００２７】
図５は、ハードウェア資源を表す演算部３１０（図５に３１０Ａとして示される）の実現例を示す。演算部３１０は、入力ベクトルＫから出力値ＹをＹ＝Ｐｉｔｈ（ｆｉ（Ｋ））として決定する任意のベクトル変換ｆとステップ関数ｔｈ（一般にギリシャ文字の「シータ」で表される）とに基づく。Ｐは要素の積を意味する。したがって、Ｐｉは全てのｉについての積を意味する。Ｐａ＝１Ｌは、Ｌ個の要素の積を意味する。一般に、Ｐはギリシャ文字の大文字「パイ」で表される。ベクトル変換ｆは、ハードウェア資源のタイプに応じて選択されうる。ステップ関数ｔｈ（ｘ）は、ｘ＜０の場合は「０」を出力し、それ以外の場合は「１」を出力する。
【００２８】
ステップ関数ｔｈの代わりに、シグモイド関数ｓ（ｘ）＝１／（１＋ｅ−ｋｘ）を使用可能である。一般に、ｓ（ｘ）のｓは大文字の「シグマ」で表される。この実現例では、出力値Ｙは、上記のＹ＝Ｐｉｔｈ（ｆｉ（Ｋ））ではなく、入力ベクトルＫからＹ＝Ｐｉｓ（ｆｉ（Ｋ））として決定される。この場合でも、ハードウェア資源のタイプに応じて、ベクトル変換ｆを選択できる。
【００２９】
図６は、ハードウェア資源を表す演算部３１０（図６の３１０Ｂとして示される）の別の実現例を示す。この実現例は、図５に示されている実現例に対応する。ただし、ここでは、ハードウェア資源がＬ人の者によって共有されると想定されている。実現例は、入力ベクトルＫから出力値ＹをＰａ＝１ＬＰｉｓ（Ｃｉ＝ＳｊＡｉｊＫｊ，ａ＋Ｓb not equal to aＳｊＢｉｊＫｊ，ｂ）として決定するアフィン変換とシグモイド関数ｓに基づく。
【００３０】
ここで、入力ベクトルＫは、ランク２行列として書き換えられる。ベクトルＣと同様に行列ＡおよびＢは、ハードウェア資源のタイプに固有のモデルパラメータである。［Ｓb not equal to a］は、ａとは異なる全てのｂの合計を意味する。
【００３１】
本明細書で使用される「ソフトウェアプロセス」という用語は、例えば、オペレーティングシステムプロセスを意味し得る。また、オペレーティングシステムのスレッドのグループやオペレーティングシステムのプロセスのグループのような、情報処理ソフトウェアの他の意味のある実行エンティティを意味し得る。
【００３２】
さらに、演算部の入力ベクトル成分は、単一のベクトル成分からのみ同時に供給可能である。
【００３３】
さらに、演算部のフィードフォワードネットワークは、少なくともメモリ、ＣＰＵおよびＩ／Ｏ（入力／出力）ユニットで構成される汎用コンピュータハードウェア上で実行されるソフトウェアによって実現可能である。
【００３４】
フィードフォワードネットワークの例Ａ：
図７は、１つのソフトウェアプロセス層を持つフィードフォワードネットワークの例を示す。この例には、４つのソフトウェアプロセス（Ｐ１，・・・，Ｐ４）２０１〜２０４と７つのハードウェア資源（Ｒ１，・・・，Ｒ７）３２１〜３２４が含まれている。ハードウェア資源は、それぞれ２つのコアを持つ２つのＣＰＵ３２０Ａ、３２０Ｂを含む汎用コンピュータ３００に対応する。
【００３５】
ハードウェア資源Ｒ１およびＲ２は、第１のＣＰＵ３２０ＡのＣＰＵコアの能力に対応する。Ｒ４およびＲ５は、第２のＣＰＵ３２０ＢのＣＰＵコアの能力に対応する。ハードウェア資源Ｒ３およびＲ６は、各ＣＰＵの３次キャッシュなど、ＣＰＵ全体の共有資源の能力に対応する。ハードウェア資源Ｒ７は、メモリ帯域幅やＩ／Ｏ帯域幅など、コンピュータ全体の共有資源の能力に対応する。
【００３６】
ソフトウェアプロセスＰ１は、第１のＣＰＵ３２０Ａの第１コアで担当されていると見なされる。ソフトウェアプロセスＰ２は、第１のＣＰＵ３２０Ａの第２コアで担当されていると見なされる。ソフトウェアプロセスＰ３は、第２のＣＰＵ３２０Ｂの第１コアで担当されていると見なされる。ソフトウェアプロセスＰ４は、第２のＣＰＵ３２０Ｂの両方のコアで担当されると見なされる。
【００３７】
ソフトウェアプロセスを表す演算部とハードウェア資源を表す演算部の間の線は、所定のＫ（ｎ）に対していずれのベクトルＪ（Ｋ）がベクトル成分を提供するかを示す。この例では、ベクトルコンポーネントの特定の順序または選択は定められていない。
【００３８】
フィードフォワードネットワークの例Ｂ：
図８は、２つのソフトウェアプロセス層のフィードフォワードネットワークの例を示す。この例には、３つのソフトウェアプロセス（Ｐ１，Ｐ２，Ｐ３）２０１，２０２，２０３と３つのハードウェア資源（Ｒ１，Ｒ２，Ｒ３）３２１，３２２，３２３が含まれる。この例のフィードフォワードネットワークには、２つのソフトウェアプロセスＰ１，Ｐ２を表す演算部を含む第１層が含まれ、ソフトウェアプロセスＰ３を表す演算部を含み３つのハードウェア資源（Ｒ１，Ｒ２，Ｒ３）を含む第２層が含まれる。この例では、ソフトウェアプロセスＰ３の入力負荷Ｉ（３）は、ソフトウェアプロセスＰ１およびＰ２を表す演算部の出力ベクトルＩ（１）とＩ（２）とのベクトル成分を連結することによって決定される。この例では、ベクトルコンポーネントの特定の順序または選択は定められていない。
【００３９】
実施形態１．
図９には、スループット推定装置と演算部のフィードフォワードネットワークとの関係が示されている。スループット推定装置５００は、フィードフォワードネットワーク１００を生成し評価する。フィードフォワードネットワーク１００は、例えば、図７に示されるように構築される。すなわち、フィードフォワードネットワーク１００は、ソフトウェアプロセスを表す演算部およびハードウェア資源を表す演算部を含む。
【００４０】
図１０は、スループット推定装置５００の例示的な実施形態を示すブロック図である。
【００４１】
スループット推定装置５００は、ソフトウェアプロセスモデルデータ記憶部５１０、ハードウェア資源モデルデータ記憶部５２０、フィードフォワードネットワーク構築部５３０、およびフィードフォワードネットワーク構築メモリ６１０を含む。以下、フィードフォワードネットワーク構築メモリ６１０において、フィードフォワードネットワーク構成が形成される領域を、フィードフォワードネットワーク構築キャンバスという。
【００４２】
フィードフォワードネットワーク構築キャンバスでは、演算部２０１−２０４，３２１−３２７が配置され相互接続される。図１０では、例示のために、キャンバス内に、図７に示されたフィードフォワードネットワークが示されている。
【００４３】
ソフトウェアプロセスモデルデータ記憶部５１０は、ソフトウェアプロセスモデルデータカタログを記憶する。このカタログには、ソフトウェアプロセスを表す各々の初期演算部に対応するリストが含まれている。リストのエントリは、ソフトウェアプロセスのタイプに対応する。初期演算部には、以下のものが格納される。
【００４４】
（１）入力ベクトル、モデルパラメータデータ、およびインスタンス化パラメータデータからソフトウェアプロセスを表す演算部の出力ベクトルを計算するための評価式
（２）評価の定数として使用されるモデルパラメータデータ
【００４５】
例えば、評価式として、図３に示された式が与えられる。モデルパラメータデータは、図３に示されたように行列ＡとベクトルＢのための特定値である。
【００４６】
ハードウェア資源モデルデータ記憶部５２０は、ハードウェア資源モデルデータカタログを記憶する。このカタログには、ハードウェア資源を表す各々の初期演算部に対応するリストが含まれている。リストのエントリは、ハードウェア資源のタイプに対応する。初期演算部には、以下のものが格納される。
【００４７】
（１）入力ベクトル、モデルパラメータデータ、およびインスタンス化パラメータデータからハードウェア資源を表す演算部の出力を計算するための評価式
（２）評価の定数として使用されるモデルパラメータデータ
【００４８】
例えば、評価式として、図８に示された式が与えられる。モデルパラメータデータは、図８に示されたように行列Ａ，ＢおよびベクトルＣの特定値である。図８に示された変数Ｌは、インスタンス化パラメータである。
【００４９】
フィードフォワードネットワークメモリ６１０は、フィードフォワードネットワーク構成Ｆ（フィードフォワードネットワーク構成７００）を入力し、フィードフォワードネットワークを出力する。
【００５０】
図１１は、フィードフォワードネットワーク構成Ｆの例を示す。
【００５１】
この例では、フィードフォワードネットワーク構成Ｆには次の要素が含まれている。
【００５２】
演算部のインスタンス化エントリのリストＳＷ＝（ＳＷ１，・・・，ＳＷＮ）７１０。インスタンス化エントリＳＷｋには、ソフトウェアプロセスモデルデータカタログ内のリストエントリへのポインタによって指定される各ソフトウェアプロセスＰｋのソフトウェアプロセスタイプと、インスタンス化パラメータデータとが含まれる。
【００５３】
演算部のインスタンス化エントリのリストＨＷ＝（ＨＷ１，・・・，ＨＷＮ）７２０。インスタンス化エントリＨＷｎには、ハードウェア資源モデルデータカタログ内のリストエントリへのポインタによって指定される各ハードウェア資源Ｒｎのハードウェア資源タイプと、インスタンス化パラメータデータとが含まれる。
【００５４】
（ｉ，ｊ，ｋ，ｌ）形式のタプルを含む相互接続のリストＣ１  ７３０。ｉとｊは、それぞれリストＳＷのエントリを指す。ｋとｌは、それぞれインデックスのリストを示す。リストｋとｌとは同じ長さである。
【００５５】
（ｉ，ｊ，ｋ，ｌ）形式のタプルを含む相互接続のリストＣ２  ７４０。ｉはリストＳＷのエントリを指す。ｊはリストＨＷのエントリを指し、ｋとｌは、それぞれインデックスのリストを示す。リストｋとｌとは同じ長さである。
【００５６】
上記において、ソフトウェアプロセスタイプは、例えば、ソフトウェアコンポーネントの特定のバージョンを参照できる。ソフトウェアプロセスタイプは、実行環境のプロパティに基づいて多様化されうる。例えば、仮想化されたネットワークパケット処理ソフトウェアのコンテキストでは、割り当てられた仮想ＣＰＵコアの異なる数ごとに個別のソフトウェアプロセスタイプを定義すると便利である。出力ベクトルコンポーネントＪｉの数は、仮想ＣＰＵコアの数とともに増加する。なぜなら、ソフトウェア割り込みの割り当てが仮想ＣＰＵコアの数に依存し、仮想ＣＰＵコア間で負荷が非対称に分散されるからである。
【００５７】
さらに、スループット推定装置５００自体は、少なくとも、メモリ、ＣＰＵおよびＩ／Ｏユニットからなる汎用コンピュータハードウェア上で実行されるソフトウェアによって実現可能である。
【００５８】
次に、スループット推定装置５００の動作を説明する。図１２は、フィードフォワードネットワーク構築部５３０の動作の一例を示すフローチャートである。
【００５９】
フィードフォワードネットワーク構成Ｆが入力された後、フィードフォワードネットワーク構築部５３０は、フィードフォワードネットワーク構築メモリ６１０の内容をクリアする（ステップＳ１０１および１０２）。
【００６０】
次に、フィードフォワードネットワーク構築部５３０は、フィードフォワードネットワーク構成Ｆに含まれる各々のリストＳＷおよびＨＷで特定される各々のエントリについて、ソフトウェアプロセスモデルデータ記憶部５１０およびハードウェア資源モデルデータ記憶部５２０に格納されたデータカタログから初期演算部をインスタンス化することにより演算部を生成する。なお、評価式のインスタンス化パラメータに、フィードフォワードネットワーク構成Ｆで指定されるそれぞれのインスタンス化パラメータデータが代入される（ステップＳ１０３）。
【００６１】
次に、フィードフォワードネットワーク構築部５３０は、これらの演算部および論理積演算部４００を、フィードフォワードネットワーク構築メモリ６１０内のフィードフォワードネットワーク構築キャンバスに配置する（ステップＳ１０４およびＳ１０５）。次に、フィードフォワードネットワーク構築部５３０は、以下のように、演算部の出力ベクトル成分を演算部の入力成分と相互接続する（ステップＳ１０６）。
【００６２】
（１）フィードフォワードネットワーク構成Ｆに含まれるリストＣ１の各エントリ（ｉ，ｊ，ｋ，ｌ）について、フィードフォワードネットワーク構築部５３０は、各ａ（ａは１から始まり、ｋの長さで終わる範囲にある）について、出力ベクトル成分Ｊｋ［ａ］（ｉ）を入力ベクトル成分Ｉｌ［ａ］（ｊ）に接続する。
【００６３】
（２）フィードフォワードネットワーク構成Fに含まれるリストＣ２の各エントリ（ｉ，ｊ，ｋ，ｌ）について、フィードフォワードネットワーク構築部５３０は、各ａ（ａは１から始まり、ｋの長さで終わる範囲にある）について、出力ベクトル成分Ｊｋ［ａ］（ｉ）を入力ベクトル成分Ｋｌ［ａ］（ｊ）に接続する。
【００６４】
最後に、フィードフォワードネットワーク構築部５３０は、ハードウェア資源を表す演算部の出力を、論理積演算部４００の入力に接続する（ステップＳ１０７）。
【００６５】
上記の手順に従って、フィードフォワードネットワーク構築キャンバスでは、図１０に示すように演算部が配置され相互接続される。
【００６６】
実施形態２
図１３は、スループット推定装置を含むスループット推定システムの例示的な実施形態を示すブロック図である。
【００６７】
スループット推定システムは、スループット測定データから、スループット推定装置５００のソフトウェアプロセスモデルデータ記憶部５１０およびハードウェア資源モデルデータ記憶部５２０に格納される適切なモデルパラメータを決定する。適切なモデルパラメータは、推定結果と測定結果の間の距離を定量化できる目的関数を最小化するために使用される最適化方法によって決定される。
【００６８】
図１３に示すように、スループット推定システム８００は、目的関数評価部８１０と、最適化部８２０と、第１の実施形態で構築されたスループット推定装置５００とを含む。
【００６９】
目的関数評価部８１０は、目的関数о（ｐ）を評価し、スループット推定装置５００に格納されているソフトウェアプロセスモデルデータカタログおよびハードウェア資源モデルデータカタログのモデルパラメータデータを更新する。最適化部８２０は、目的関数o（ｐ）をほぼ最小化するパラメータデータｐを決定するために、最適化方法を実施する。
【００７０】
測定データ記憶部８５０は、測定データｍを記憶する。測定データｍには、タプル（Ｆ，Ｉ，ｙ’）のリストが含まれる。Ｆは、図１１に示されたフィードフォワードネットワーク構成Ｆ（フィードフォワードネットワーク構成７００）である。Ｉは、フィードフォワードネットワーク構成Ｆで規定されるフィードフォワードネットワークへの入力負荷ベクトルである。ｙ’は、０〜１の範囲の値であり、入力負荷Ｉの場合のフィードフォワードネットワーク構成Ｆに対応するソフトウェアプロセスおよびハードウェア資源の構成の情報処理品質のうち十分な情報処理品質を示す測定値の割合を示す。
【００７１】
次に、スループット推定システム８００の動作を説明する。図１４は、目的関数評価部８１０の動作の一例を示すフローチャートである。
【００７２】
目的関数評価部８１０は、最適化部８２０からパラメータデータｐ（パラメータデータ８１１）を入力する（ステップＳ２０１）。目的関数評価部８１０は、取得したパラメータデータ８１１（パラメータデータ８１３）に相当するパラメータデータｐ（パラメータデータ８１３）を用いて、スループット推定装置５００のソフトウェアプロセスモデルデータカタログおよびハードウェア資源モデルデータカタログのモデルパラメータデータを更新する（ステップＳ２０２）。目的関数評価部８１０は、測定データ記憶部８５０から測定データｍを入力する（ステップＳ２０３）。そして、目的関数評価部８１０は、測定データｍに含まれる各タプル（Ｆ，Ｉ，ｙ’）について、次のように値ｙを決定する（ステップＳ２０４およびＳ２０７）。
【００７３】
（１）フィードフォワードネットワーク構成Ｆをスループット推定装置５００に送信する（ステップＳ２０８）。スループット推定装置５００は、フィードフォワードネットワークモデリング構築キャンバスにフィードフォワードネットワークをセットアップする。
【００７４】
（２）入力ベクトルＩをスループット推定装置５００に送信する（ステップＳ２０９）。次に、スループット推定装置５００は、フィードフォワードネットワークを評価する。
【００７５】
（３）スループット推定装置５００から推定結果ｙを取得する（ステップＳ２１０）。
【００７６】
（４）タプル（ｙ，ｙ’）をリストｒに追加する（ステップＳ２１１）。
【００７７】
次に、目的関数評価部８１０は、関数ｔ（ｒ）を評価し（ステップＳ２０５）、評価結果ｑ＝ｔ（ｒ）を得る（ステップＳ２０８）。最後に、目的関数評価部８１０は、ｑの値を最適化部８２０に出力する（ステップＳ２０６）。ステップＳ２０８で決定された値ｑは、ステップＳ２０１で入力されたパラメータデータｐの値ｏ（ｐ）を規定する。すなわち、ｏ（ｐ）＝ｑである。
【００７８】
最適化部８２０は、目的関数ｏ（ｐ）をほぼ最小化するパラメータデータｐを決定するために最適化方法を実施する。最適化部８２０の動作は以下の通りである。
【００７９】
まず、最適化部８２０は、初期モデルパラメータデータ９０１を入力する。初期モデルパラメータデータ９０１および一般的な最適化方法を使用して、最適化部８２０は、ｐのほぼ最適な値を決定する。このような最適値を見つけるために、一般的な最適化方法は、異なるＰに対して目的関数o（ｐ）を繰り返し評価する。目的関数ｏ（ｐ）を評価するために、最適化部８２０は、最適化部８２０がパラメータデータ８１１を目的関数評価部８１０に送信した後、評価結果８１２を取得する。
【００８０】
上記のプロセスにおいて、まず、スループット推定装置５００を使用する前に、スループット推定装置５００のソフトウェアプロセスモデルデータ記憶部５１０およびハードウェア資源モデルデータ記憶部５２０のモデルデータカタログには、既に、ソフトウェアプロセスタイプ／ハードウェア資源タイプごとの評価式データが含まれていると仮定する。ソフトウェアプロセスモデルデータ記憶部５１０およびハードウェア資源モデルデータ記憶部５２０内のモデルパラメータデータは、任意の初期値を取ることができる。
【００８１】
なお、目的関数評価部８１０は、ステップＳ２０８の処理を実行することによって、複数のソフトウェアプロセスの構成、複数のハードウェア資源、およびそれらの相互接続を、スループット推定装置５００に順次出力する。目的関数評価部８１０は、ステップＳ２０９の処理を実行することによって、ソフトウェアプロセスへの入力情報の負荷を示す複数の負荷ベクトルをスループット推定装置５００に順次出力する。目的関数評価部８１０は、ステップＳ２１０の処理を実行することによって、スループット推定装置５００から結果値を順次入力する。
【００８２】
目的関数評価部８１０によって評価される関数t（Ｒ）は、例えば次のように選択される。
【００８３】
ｔ（Ｒ）＝Ｓ（ｙ，ｙ’）ｉｎｃｌｕｄｅｄ  ｉｎ  Ｒ（ｙ’−ｙ）２      式(１)
ここで、［Ｓ（ｙ，ｙ’）ｉｎｃｌｕｄｅｄ  ｉｎ  Ｒ］ は、Ｒに含まれる（ｙ、ｙ’）についての合計を意味する。
【００８４】
最適化部８２０で使用する最適化方法として、例えば、勾配降下に基づく方法を選択することができる。ｏ（ｐ）の勾配は数値近似によって計算される。勾配降下法などの最適化手法を効果的に使用するには、o（Ｐ）の十分な滑らかさが前提になるが、図３および図６に示すような滑らかな演算部に限定し、式（１）などの平滑な関数ｔ（Ｒ）を使用することによって保証される。
【００８５】
ところで、ソフトウェアプロセスとハードウェア資源とのモデルデータを分離するアプローチでは、決定されるパラメータデータの数は、ソフトウェアプロセスのタイプ数とハードウェア資源のタイプ数との合計にほぼ関連するので、測定データ記憶装置８５０に格納されるデータを取得するために必要な性能評価測定の回数も、おおよそソフトウェアプロセスのタイプ数とハードウェア資源のタイプ数との合計に関連する。
【００８６】
上記の例示的な実施形態は、ＮＦＶのコンテキストでＶＮＦの性能を推定するために好適に適用可能であるが、上記の例示的な実施形態の対象はＶＮＦに限定されない。
【００８７】
図１５は、本発明によるスループット推定装置の主要部を示すブロック図である。図１５に示すように、スループット推定装置１０は、評価式およびパラメータをそれぞれ含むタプルを格納する記憶部１１（例示的な実施形態では、ソフトウェアプロセスモデルデータ記憶部５１０およびハードウェア資源モデルデータ記憶部５２０によって実現される。）と、ソフトウェアプロセスに関連するデータに関連するデータ、ハードウェア資源に関連するデータ、ソフトウェアプロセスとハードウェア資源と間の相互接続に関連するデータ、およびタプルを含む構成に従って演算装置（例示的な実施形態におけるスループット推定装置１０において、演算部２０１−２０４、３２１−３２７を含む演算装置で実現される。）を構築する演算装置構築部１２（例示的な実施形態では、フィードフォワードネットワーク構築部５３０により実現される。）とを含み、演算装置は、ソフトウェアプロセスへの入力情報負荷を表す負荷ベクトルを入力し、結果値を出力する。
【００８８】
図１６は、スループット推定システムの主要部を示すブロック図である。図１６に示すように、スループット推定システム２０は、スループット推定装置１０と、目的関数を最小化する最適化部２１（例示的な実施形態では、最適化部８２０によって実現される）と、パラメータデータと測定データとを入力し、入力されたパラメータデータに従ってスループット推定装置１０に格納されたパラメータデータを更新し、スループット推定装置１０に複数の構成を順次出力し、スループット推定装置１０に複数の負荷ベクトルを順次出力し、スループット推定装置１０から結果値を順次入力し、評価結果を最適化部２１に出力する目的関数評価部２２（例示的な実施形態では、目的関数評価部８１０で実現される。）とを含む。
【００８９】
なお、図１０または図１５に示されたスループット推定装置１０，５００は、図１７に示すＣＰＵ１０００、メモリ１００２およびＩ／Ｏ装置１００３を含む情報処理システムで実現可能である。図１０におけるフィードフォワードネットワーク構築部５３０および図１５における演算装置構築部１２は、ＣＰＵ１０００がメモリ１００２（非一時的なコンピュータ読み取り可能なメモリ）に格納されたプログラムに従って処理を実行することによって実現される。図１０におけるソフトウェアプロセスモデルデータ記憶部５１０およびハードウェア資源モデルデータ記憶部５２０、ならびに図１５における記憶部１１は、メモリ１００２で実現可能である。
【００９０】
図１３または図１６に示されたスループット推定システムも、情報処理システムによって実現可能である。すなわち、図１３における目的関数評価部８１０および最適化部８２０、図１６における目的関数評価部２２および最適化部２１は、ＣＰＵ１０００が、メモリ１００２に格納されたプログラムに従って処理を実行することによって実現される。
【００９１】
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
【００９２】
（付記１）それぞれが評価式とパラメータデータとを含む複数のタプルを記憶する記憶手段と、
ソフトウェアプロセスに関連するデータに関連するデータ、ハードウェア資源に関連するデータ、ソフトウェアプロセスとハードウェア資源と間の相互接続に関連するデータ、およびタプルを含む構成に従って演算装置を構築する演算装置構築手段とを備え、
前記演算装置は、ソフトウェアプロセスへの入力情報負荷を表す負荷ベクトルを入力し、結果値を出力する
スループット推定装置。
【００９３】
（付記２）前記演算装置は、
それぞれが、コンピュータで実行されるソフトウェアプロセスの１つに対応し、該ソフトウェアプロセスに対応する入力情報負荷を表す負荷ベクトルを入力する複数の演算部と、
それぞれが、コンピュータのハードウェア資源の１つに対応する複数の演算部と、
コンピュータのハードウェア資源に対応する全ての前記演算部の出力を集約することによって生成される結果値を出力する出力手段とを含む
付記１のスループット推定装置。
【００９４】
（付記３）付記１または付記２のスループット推定装置を含むスループット推定システムであって、
目的関数を最小化する最適化手段と、
パラメータデータと測定データとを入力し、入力された前記パラメータデータに従って前記スループット推定装置に格納されたパラメータデータを更新し、前記スループット推定装置に複数の構成を順次出力し、前記スループット推定装置に複数の負荷ベクトルを順次出力し、前記スループット推定装置から結果値を順次入力し、評価結果を前記最適化手段に出力する目的関数評価手段とをさらに含む
スループット推定システム。
【００９５】
（付記４）前記目的関数評価手段は、前記最適化手段により最適化されたパラメータデータを用いて、前記スループット推定装置に格納されたパラメータデータを更新する。
付記３のスループット推定システム。
【００９６】
（付記５）ソフトウェアプロセスに関連するデータに関連するデータ、ハードウェア資源に関連するデータ、ソフトウェアプロセスとハードウェア資源と間の相互接続に関連するデータ、およびそれぞれが評価式とパラメータデータとを含む複数のタプルを含む構成に従って演算装置を含むスループット推定装置を構築し、
前記演算装置は、ソフトウェアプロセスへの入力情報負荷を表す、入力される負荷ベクトルに応じて、結果値を出力するように構成される
スループット推定方法。
【００９７】
（付記６）前記演算装置は、
それぞれが、コンピュータで実行されるソフトウェアプロセスの１つに対応し、該ソフトウェアプロセスに対応する入力情報負荷を表す負荷ベクトルを入力する複数の演算部と、
それぞれが、コンピュータのハードウェア資源の１つに対応する複数の演算部と、
コンピュータのハードウェア資源に対応する全ての前記演算部の出力を集約することによって生成される結果値を出力する出力手段とを含むように構成される。
付記５のスループット推定方法。
【００９８】
（付記７）目的関数を最小化し、
パラメータデータと測定データとを入力し、入力された前記パラメータデータに従って前記スループット推定装置に格納されたパラメータデータを更新し、前記スループット推定装置に複数の構成を順次出力し、前記スループット推定装置に複数の負荷ベクトルを順次出力し、前記スループット推定装置から結果値を順次入力し、評価結果を出力する
付記５または付記６のスループット推定方法。
【００９９】
（付記８）前記スループット推定装置に格納されたパラメータデータは、最適化されたパラメータデータを使用して更新される。
付記７のスループット推定方法。
【０１００】
（付記９）コンピュータに、
ソフトウェアプロセスに関連するデータに関連するデータ、ハードウェア資源に関連するデータ、ソフトウェアプロセスとハードウェア資源と間の相互接続に関連するデータ、およびそれぞれが評価式とパラメータデータとを含む複数のタプルを含む構成に従って演算装置を含むスループット推定装置を構築する処理を実行させ、
前記演算装置は、ソフトウェアプロセスへの入力情報負荷を表す、入力される負荷ベクトルに応じて、結果値を出力するように構成される
スループット推定プログラム。
【０１０１】
（付記１０）前記演算装置は、
それぞれが、コンピュータで実行されるソフトウェアプロセスの１つに対応し、該ソフトウェアプロセスに対応する入力情報負荷を表す負荷ベクトルを入力する複数の演算部と、
それぞれが、コンピュータのハードウェア資源の１つに対応する複数の演算部と、
コンピュータのハードウェア資源に対応する全ての前記演算部の出力を集約することによって生成される結果値を出力する出力手段とを含むように構成される
付記９のスループット推定プログラム。
【０１０２】
（付記１１）コンピュータに、
目的関数を最小化する処理と、
パラメータデータと測定データとを入力し、入力された前記パラメータデータに従って前記スループット推定装置に格納されたパラメータデータを更新し、前記スループット推定装置に複数の構成を順次出力し、前記スループット推定装置に複数の負荷ベクトルを順次出力し、前記スループット推定装置から結果値を順次入力し、評価結果を出力する処理とを実行させる
付記９または付記１０のスループット推定プログラム。
【０１０３】
（付記１２）前記スループット推定装置に格納されたパラメータデータは、最適化されたパラメータデータを使用して更新される
付記１１のスループット推定プログラム。
【０１０４】
（付記１３）プロセッサで実行されるときに、
ソフトウェアプロセスに関連するデータに関連するデータ、ハードウェア資源に関連するデータ、ソフトウェアプロセスとハードウェア資源と間の相互接続に関連するデータ、およびそれぞれが評価式とパラメータデータとを含む複数のタプルを含む構成に従って演算装置を含むスループット推定装置を構築する処理を実行し、
前記演算装置は、ソフトウェアプロセスへの入力情報負荷を表す、入力される負荷ベクトルに応じて、結果値を出力するように構成される
スループット推定プログラムを格納する非一時的なコンピュータ読み取り可能な情報記録媒体。
【０１０５】
（付記１４）プロセッサによって実行されるときに、付記５、６、７または８の方法を実行するスループット推定プログラム。
【０１０６】
例示的な実施形態および実施例を参照して本発明を説明したが、本発明は、これら例示的な実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１０７】
１０      スループット推定装置
１１      記憶部
１２      演算装置構築部
２０      スループット推定システム
２１      最適化部
２２      目的関数評価部
１００    フィードフォワードネットワーク
２００    ソフトウェアプロセス
２１０    ソフトウェアプロセスを表す演算部
３００    汎用コンピュータ
３１０    ハードウェア資源を表す演算部
４００    論理積演算部
５００    スループット推定装置
５１０    ソフトウェアプロセスモデルデータ記憶部
５２０    ハードウェア資源モデルデータ記憶部
５３０    フィードフォワードネットワーク構築部
６１０    フィードフォワードネットワーク構築メモリ
７００    フィードフォワードネットワーク構成
８００    スループット推定システム
８１０    目的関数評価部
８２０    最適化部
１０００  ＣＰＵ
１００２  メモリ
１００３  Ｉ／Ｏデバイス
【図１】
2020537243.tif 000003
【図２】
2020537243.tif 000004
【図３】
2020537243.tif 000005
【図４】
2020537243.tif 000006
【図５】
2020537243.tif 000007
【図６】
2020537243.tif 000008
【図７】
2020537243.tif 000009
【図８】
2020537243.tif 000010
【図９】
2020537243.tif 000011
【図１０】
2020537243.tif 000012
【図１１】
2020537243.tif 000013
【図１２】
2020537243.tif 000014
【図１３】
2020537243.tif 000015
【図１４】
2020537243.tif 000016
【図１５】
2020537243.tif 000017
【図１６】
2020537243.tif 000018
【図１７】
2020537243.tif 000019
【国際調査報告】
2020537243.tif 000020
2020537243.tif 000021