JP7070110B2 - 配置装置および配置方法 - Google Patents

配置装置および配置方法 Download PDF

Info

Publication number
JP7070110B2
JP7070110B2 JP2018108254A JP2018108254A JP7070110B2 JP 7070110 B2 JP7070110 B2 JP 7070110B2 JP 2018108254 A JP2018108254 A JP 2018108254A JP 2018108254 A JP2018108254 A JP 2018108254A JP 7070110 B2 JP7070110 B2 JP 7070110B2
Authority
JP
Japan
Prior art keywords
performance
hardware
resource consumption
function
predicted
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
JP2018108254A
Other languages
English (en)
Other versions
JP2019212069A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2018108254A priority Critical patent/JP7070110B2/ja
Priority to US16/972,121 priority patent/US11709751B2/en
Priority to PCT/JP2019/020775 priority patent/WO2019235271A1/ja
Publication of JP2019212069A publication Critical patent/JP2019212069A/ja
Application granted granted Critical
Publication of JP7070110B2 publication Critical patent/JP7070110B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Geometry (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、配置装置および配置方法に関する。
キャリアネットワークにおいて、トラヒックの増加に伴って、サーバのCPU(Central Processing Unit)のパケット処理負荷が増加している。そこで、サーバのCPU負荷をオフロードするため、CPUとは異なるハードウェア種別のアクセラレータをサーバと組み合わせて、ネットワーク機能(以下、単に機能とも記す。)の処理を分散させる技術が知られている(非特許文献1参照)。このように、ハードウェア(以下、デバイスとも記す。)を組み合わせて、システム全体の性能の向上を図る技術が検討されている。
その場合に、アクセラレータに使用するハードウェアプロセッサによって、システムのアーキテクチャの特徴やネットワーク機能の実現手法が異なる。そこで、これらの違いを隠蔽して機能開発を効率化するために、抽象度を高めて複数種のデバイスに対応したハードウェア記述言語であるP4等の高位言語が提案されている(非特許文献2~4参照)。
また、アクセラレータを1つのネットワーク機能で占有するとリソースに無駄が生じるため、アクセラレータには複数の機能を配置することが望ましい。そして、システム全体の性能向上を図るためには、複数種のハードウェアを組み合わせたシステム構成が必要である。
J.F.Zazo, et al., "A PCIe DMA engine to support the virtualization of 40 Gbps FPGA-accelerated network appliances", inReconfigurableComputing and FPGAs, pp.1-6, 2015年 「P4/CによるSmartNICファームウェア開発の取組み」、[online]、2017年、富士通、[2018年5月11日検索]、インターネット<URL:https://www.okinawaopenlabs.com/ood/2017/wp-content/uploads/sites/4/2017/12/fujitsu_3.pdf> ]P.Bosshart, et al., "P4: Programming Protocol-Independent Packet Processors", SIGCOMM CCR, vol.44, no.3, pp.87-95, 2014年 Henning Stubbe, "P4 Compiler & Interpreter: A Survey", Proc. Future Internet (FI) Innov. Internet Technol. Mobile Commun. (IITM). Vol.47, pp.47-52, 2017年
しかしながら、従来、複数種のハードウェアを用いてネットワーク機能を実現する場合に、ハードウェアごとに異なるシミュレーションや動作確認を実行することにより、処理性能や消費リソース容量を確認していた。そのため、シミュレーションや動作確認に長時間を要し、迅速にネットワーク機能の配置を行うことができなかった。その結果、リソースに無駄が生じる場合があった。
本発明は、上記に鑑みてなされたものであって、複数種のハードウェアへのネットワーク機能の配置を迅速に行うことを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係る配置装置は、機能の配置先の候補である複数種のハードウェアのそれぞれのリソース消費量と性能を表す性能情報とを含む統計情報を記憶する記憶部と、複数種のハードウェアに対応したハードウェア記述言語である高位言語による機能の記述内容と、要求される性能を表す性能要件との入力を受け付ける受付部と、ハードウェアごとに、前記記述内容と所定のアルゴリズムとを用いて、予測される性能である予測性能と、予測されるリソース消費量である予測リソース消費量とを算出する予測部と、算出された前記予測性能および前記性能情報が前記性能要件を満たし、前記予測リソース消費量と前記リソース消費量との合計値がリソース容量以下であるハードウェアを、配置先として選択する選択部と、を備えることを特徴とする。
本発明によれば、複数種のハードウェアへのネットワーク機能の配置を迅速に行うことができる。
図1は、本実施形態に係る配置装置の対象システムを説明するための説明図である。 図2は、配置装置の概略構成を例示する模式図である。 図3は、統計情報のデータ構成を例示する図である。 図4は、配置装置の処理を説明するための説明図である。 図5は、配置処理手順を例示するフローチャートである。 図6は、配置プログラムを実行するコンピュータを例示する図である。
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[対象システム]
図1は、本実施形態に係る配置装置の対象システムを説明するための説明図である。図1に示すように、配置装置による配置処理の対象となるシステムは、サーバにアクセラレータが組み込まれて構成される。アクセラレータは、NP(Network Processor)やFPGA(Field Programmable Gate Array)等のサーバのCPUとは種別の異なるハードウェアで実現される。
このシステムにおいて、アクセラレータが通信ネットワークの他のネットワーク装置から受信したパケットのトラヒックが、パケットに対して要求される処理に応じて、アクセラレータまたはサーバのCPUに振り分けられる。アクセラレータには、サーバのCPUの負荷要因となるネットワーク機能が配置される。これにより、サーバのCPU負荷をアクセラレータにオフロードすることが可能となる。
本実施形態の配置装置は、このようなシステムにおいて、各ネットワーク機能をCPU、またはアクセラレータのいずれのハードウェアに配置するかを決定する配置処理を実行する。
[配置装置の構成]
図2は、配置装置10の概略構成を例示する模式図である。図2に例示するように、本実施形態の配置装置10は、ワークステーションやパソコン等の汎用コンピュータで実現され、入力部11、出力部12、通信制御部13、記憶部14、および制御部15を備える。
入力部11は、キーボードやマウス等の入力デバイスを用いて実現され、操作者による入力操作に対応して、制御部15に対して処理開始などの各種指示情報を入力する。出力部12は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置、情報通信装置等によって実現される。通信制御部13は、LAN(Local Area Network)やインターネットなどの電気通信回線を介したネットワーク装置等の外部の装置との通信を制御する。例えば、通信制御部13は、図1に例示した配置処理対象のシステムから、CPU、NP、またはFPGA等のハードウェアについての性能の測定値等を受信する。
記憶部14は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。なお、記憶部14は、LANやインターネット等の電気通信回線を介して制御部15と通信する構成でもよい。
本実施形態において、記憶部14には、統計情報14aが記憶されている。この統計情報14aは、機能の配置先の候補である複数種のハードウェアのそれぞれのリソース消費量と性能を表す性能情報とを含む情報である。
ここで、図3は、統計情報14aのデータ構成を例示する図である。図3に例示するように、統計情報14aは、デバイスごとのリソース消費量と性能情報とを含む。図3には、デバイスとして、CPU、FPGA1、FPGA2等が例示されている。
リソース消費量は、各デバイスの使用率(%)等で表される実績値である。図3に示す例では、リソース消費量には、さらに、デバイスごとに異なる詳細な情報が含まれる。例えば、図3に示すCPUのリソース消費量には、コア数、コア数使用量、メモリ数、メモリ使用量等が含まれ、FPGA1のリソース消費量には、FF(フリップフロップ)数、FF使用量、LUT(ルックアップテーブル)数、LUT使用量等が含まれている。
性能情報は、スループット(Gbps)、遅延(ms)等を含む実績値である。ここで、スループットとは、各デバイスが一定時間内に処理できるデータ量である。また、遅延は、例えば、パケットを送信してから、受信した側が送信側にACKパケットを送信し、送信側でそれを受信するまでの時間で表される。
また、統計情報14aは、ステータスと、使用機能とを含む。ステータスは、各デバイスが使用可能か否かを示す情報であり、「稼働」あるいは「故障」で表される。配置装置10は、後述する配置処理において、ステータスが「稼働」であるデバイスを対象に、ネットワーク機能の配置先として選択する。
また、使用機能は、各デバイスに配置されている機能と、各機能によるリソース消費量の実績値とで表される。配置装置10は、後述する配置処理において、高位言語のソースコードを、ネットワーク機能の配置先として選択したデバイスのソースコードに変換し、変換したソースコードを用いてその機能のリソース消費量を測定し、この測定値を実績値として用いて、統計情報14aを更新する。なお、上記の「リソース消費量」は、各デバイスに配置されている全ての「使用機能」のリソース消費量の合計値に相当する。
図2の説明に戻る。制御部15は、CPU等で実現され、メモリに記憶された処理プログラムを実行し、図2に示すように、受付部15a、性能予測部15b、デバイス選択部15c、高位言語編集部15d、変換部15eおよび配置実行部15fとして機能する。
受付部15aは、複数種のハードウェアに対応したハードウェア記述言語である高位言語による機能の記述内容と、要求される性能を表す性能要件との入力を受け付ける。具体的には、受付部15aは、入力部11または通信制御部13を介して、配置処理の対象とされる機能の高位言語で記述されたソースコードと、スループットや遅延等の性能についての要求条件である性能要件の入力を受け付ける。
性能予測部15bは、予測部として機能する。すなわち、性能予測部15bは、ハードウェアごとに、高位言語の記述内容と所定のアルゴリズムとを用いて、予測される処理性能である予測性能と、予測されるリソース消費量である予測リソース消費量とを算出する。
また、性能予測部15bは、高位言語の記述内容と、この記述内容に対応する機能について測定されたリソース消費量および性能情報とを用いた学習により、アルゴリズムを生成する。
具体的には、性能予測部15bは、機能の高位言語のソースコードと、この機能についての実績値としての統計情報14aのリソース消費量および性能情報とを用いて、高位言語のソースコードと各ハードウェアのリソース消費量および性能情報との関係を学習する。これにより、性能予測部15bは、高位言語のソースコードと各ハードウェアのリソース消費量および性能情報との関係を算出するアルゴリズムを生成する。性能予測部15bは、生成したアルゴリズムを記憶部14に記憶させる。
そして、性能予測部15bは、ハードウェアごとに、生成したアルゴリズムを適用して、配置処理の対象として入力された機能の高位言語のソースコードから、予測される性能すなわち予測性能と、予測されるリソース消費量すなわち予測リソース消費量とを算出する。
デバイス選択部15cは、選択部として機能する。すなわち、デバイス選択部15cは、算出された予測性能および性能情報が性能要件を満たし、かつ予測リソース消費量とリソース消費量との合計値がリソース容量以下であるハードウェアを、配置先として選択する。
具体的には、デバイス選択部15cは、ハードウェアごとに、入力された性能要件と算出された予測性能とハードウェアについての統計情報14aの性能情報とを比較する。そして、デバイス選択部15cは、予測性能、性能情報の双方が性能要件を満たす場合に、このハードウェアを配置先の候補とする。
次に、デバイス選択部15cは、算出されたリソース予測リソース消費量と統計情報14aのリソース消費量との合計値を算出する。そして、デバイス選択部15cは、算出した合計値がこのハードウェアのリソース容量以下である場合に、このハードウェアを機能の配置先として選択する。
ここで、図4は、配置装置10の処理を説明するための説明図である。図4に示す例では、デバイス選択部15cは、選択機能部と比較機能部とで構成されている。そして、選択機能部が、性能予測部15bに対して、機能の配置先として適切か否かを判定する処理のターゲットのデバイスを順に指定している。この場合には、まず、選択機能部は、予め入力部11または通信制御部13を介して入力され記憶部14に記憶されている初期配置情報を参照し、初期配置情報で指定されているデバイスを、最初のターゲットのデバイスとして、デバイス選択部15cに通知する。
また、デバイス選択部15cの選択機能部は、受付部15aとして機能して、配置処理の対象として入力された機能の高位言語のソースコードを受け付けて、性能予測部15bに転送する。
性能予測部15bは、指定されたデバイスについて、高位言語のソースコードとアルゴリズムとを用いて、予測性能と予測リソース消費量とを算出し、予測結果としてデバイス選択部15cの比較機能部に転送する。このアルゴリズムは、性能予測部15bが、予め機能の高位言語のソースコードと、この機能についての実績値としての統計情報14aのリソース消費量および性能情報とを用いて生成したものである。
デバイス選択部15cの比較機能部は、受付部15aとして機能して、性能要件を受け付ける。また、比較機能部は、入力された性能要件と、予測結果と、このデバイスについての統計情報14aの性能情報およびリソース消費量とを比較する。
そして、比較機能部は、算出された予測性能および性能情報が性能要件を満たし、かつ予測リソース消費量とデバイスのリソース消費量との合計値がこのデバイスのリソース容量の範囲内である場合に、判定結果OKとして、このデバイスを配置先として選択する。
なお、比較機能部は、判定結果OKではない場合には、判定結果NGとして、ターゲットのデバイスの変更を選択機能部に指示する。このようにして、選択機能部が、性能予測部15bに対して、配置処理の配置先のターゲットのデバイスを順に指定する。ターゲットのデバイスの指定順は特に限定されないが、例えば、リソース消費量が少ない順、すなわち、デバイスのリソース容量からデバイスのリソース消費量を減算したリソース許容量が大きい順に指定されればよい。
図3に示した統計情報14aにおいて、入力された性能要件が遅延5ms、スループット10Gbpsである場合に、ターゲットのデバイスがCPUの場合には、遅延100ms、スループット1Gbpsであり、性能要件を満たさない。したがって、比較機能部は、判定結果NGとして、選択機能部にターゲットのデバイスの変更を指示する。
そこで、選択機能部は、ターゲットのデバイスをFPGA1に変更する。その場合に、統計情報14aにおいて、FPGA1の遅延1ms、スループット40Gbpsであり、性能要件を満たす。したがって、選択機能部は、予測性能が性能要件を満たし、かつ予測リソース消費量とリソース消費量との合計値がデバイスのリソース容量以下であれば、FPGA1を機能の配置先として決定する。
例えば、FPGA1のリソース消費量が10%、予測リソース消費量が20%、またリソース容量が100%であれば、予測リソース消費量とリソース消費量との合計はリソース容量以下であるため、配置先として決定される。なお、この場合には、配置後のFPGA1のリソース消費量は30%になる。また、この場合には、CPUのリソース消費量は変化しない。
なお、デバイス選択部15cの比較機能部は、さらに統計情報14aのステータスを参照し、ターゲットのデバイスが故障していないことを確認したうえで、配置先として決定する。
このように、配置装置10では、配置対象の機能の高位言語によるソースコードを用いて、機能によるリソース消費量と性能情報を予測することができる。そのため、シミュレーションや実機による動作確認を実行しなくても、機能の配置先のハードウェアを迅速かつ適切に選択することが可能となる。
図2の説明に戻る。高位言語編集部15dは、編集部として機能する。すなわち、高位言語編集部15dは、ハードウェアのリソース容量からリソース消費量を減算した値であるリソース許容量が予測リソース消費量より小さい場合に、高位言語による記述内容を分割する。また、高位言語編集部15dは、リソース許容量が予測リソース消費量より大きい場合に、該リソース許容量の範囲で複数の機能の高位言語による記述内容を結合する。
変換部15eは、機能の高位言語によるソースコードをハードウェアに対応したソースコードに変換する。また、配置実行部15fは、ハードウェアに対応したソースコードを用いて、統計情報を測定する。
具体的には、高位言語編集部15dは、例えば図4に示すように、比較機能部による判定結果がNGの場合に、配置処理の対象の機能の高位言語のソースコードを用いて分割あるいは他の機能のソースコードと結合する等の編集を行う。また、高位言語編集部15dは、編集後のソースコードをデバイス選択部15cに引き渡す。その場合に、デバイス選択部15cは、編集後のソースコードで記述される機能を配置処理の対象に変更して、後続の処理を行う。
また、上記の配置処理により機能の配置先のデバイスが決定した場合に、変換部15eが、デバイス選択部15cから受け取った機能の高位言語によるソースコードを、決定したデバイスのソースコードに変換し、配置実行部15fに引き渡す。
配置実行部15fは、変換部15eが変換したソースコードを用いて、機能のシミュレーションまたは実機における動作確認を実行する。そして、配置実行部15fは、その機能のリソース消費量を測定し、この測定値を実績値として用いて、統計情報14aを更新する。すなわち、配置後の機能のリソース消費量を用いて、統計情報14aの「使用機能」および「リソース消費量」を更新する。
この更新された統計情報14aを用いて、性能予測部15bが性能予測に用いるアルゴリズムを生成し記憶部14のアルゴリズムを更新する。これにより、アルゴリズムの精度が向上する。
[配置処理]
次に、図5を参照して、本実施形態に係る配置装置による配置処理について説明する。図5は、配置処理手順を例示するフローチャートである。図5のフローチャートは、例えば、ユーザが開始を指示したタイミングで開始される。
最初に、配置装置は、各デバイスから、デバイスの種別と、遅延、スループット等の性能情報を取得して(ステップS1)、統計情報14aとして記憶部14に記憶する(ステップS2)。また、配置装置は、各デバイスのリソース消費量を取得する(ステップS3)。
次に、受付部15aが、配置処理対象の機能の高位言語によるソースコードと、性能要件との入力を受け付ける(ステップS4)。本実施形態では、受付部15aは、性能要件として、遅延要件およびスループット要件の入力を受け付ける。また、受付部15aは、配置処理のターゲットとするデバイスの初期値である初期配置情報との入力を受け付けて、統計情報14aのデバイスを識別する登録番号i(i=0,1,…)についての初期化処理(i=0)を行う(ステップS4~S5)。
次に、デバイス選択部15cの選択機能部が、初期配置情報が入力されていることを確認し(ステップS6)、入力されている場合に(ステップS6、Yes)、初期配置情報のデバイスが配置先として存在することを確認する(ステップS7)。選択機能部は、初期配置情報のデバイスが配置先として存在する場合に(ステップS7、Yes)、このデバイスを配置処理のターゲットのデバイスとして選択する(ステップS8)。
一方、選択機能部は、初期配置情報が入力されていない場合(ステップS6、No)、または初期配置情報のデバイスが配置先として存在しない場合には(ステップS7、No)、統計情報14aの登録番号iに基づいて配置処理のターゲットのデバイスを選択する(ステップS9)。
選択機能部は、選択したデバイスを指定する情報と、高位言語のソースコードとを性能予測部15bに転送する(ステップS10)。その場合に、性能予測部15bは、予測リソース消費量と予測性能とを算出し(ステップS21)、算出した予測結果をデバイス選択部15cの比較機能部に出力する(ステップS22)。本実施形態では、予測性能として、性能要件に対応して、遅延およびスループットの予測値が比較機能部に出力される。
比較機能部は、性能要件が入力されていることを確認する。比較機能部は、まず、遅延要件が入力されていることを確認し(ステップS31)、入力されている場合に(ステップS31、Yes)、予想結果および統計情報14aの遅延が遅延要件を満たすか否かを確認する(ステップS32)。比較機能部は、予想結果および統計情報14aの遅延が遅延要件を満たす場合に(ステップS32、Yes)、ステップS33に処理を進め、満たさない場合に(ステップS32、No)、ステップS36に処理を進める。
ステップS33の処理では、比較機能部が、スループット要件が入力されていることを確認し、入力されている場合に(ステップS33、Yes)、予想結果および統計情報14aのスループットがスループット要件を満たすか否かを確認する(ステップS34)。比較機能部は、予想結果および統計情報14aのスループットがスループット要件を満たす場合に(ステップS34、Yes)、ステップS35に処理を進め、満たさない場合に(ステップS34、No)、ステップS36に処理を進める。
ステップS35の処理では、比較機能部が、予測結果の予測リソース消費量と統計情報14aのリソース消費量との合計値がこのデバイスのリソース容量以下の許容範囲か否かを確認する。比較機能部は、合計値が許容範囲ではない場合に(ステップS35、No)、ステップS36に処理を進め、許容範囲である場合に(ステップS35、Yes)、このデバイスを機能の配置先として選択し、ステップS37に処理を進める。
ステップS36の処理では、比較機能部が、統計情報14aのデバイスを識別する登録番号iのインクリメントを行って、ステップS9に処理を戻す。
ステップS37の処理では、比較機能部が、変換部15eに、機能の配置先として選択したデバイスと高位言語のソースコードとを通知して、コンパイラ処理の実行を指示する(ステップS37)。
変換部15eは、高位言語のソースコードを配置先のデバイスのソースコードに変換するコンパイラ処理を実行し、配置実行部15fに引き渡す。配置実行部15fは、コンパイラ処理された機能をデバイスに配置し(ステップS41)、配置された機能のリソース消費量を測定し(ステップS42)、この測定値を実績値として用いて統計情報14aを更新する。これにより、一連の配置処理が終了する。
以上、説明したように、本実施形態の配置装置10では、記憶部14が、機能の配置先の候補である複数種のハードウェアのそれぞれのリソース消費量と性能を表す性能情報とを含む統計情報14aを記憶する。また、受付部15aが、複数種のハードウェアに対応したハードウェア記述言語である高位言語による機能の記述内容と、要求される性能を表す性能要件との入力を受け付ける。また、性能予測部15bが、ハードウェアごとに、前記記述内容と所定のアルゴリズムとを用いて、予測される性能である予測性能と、予測されるリソース消費量である予測リソース消費量とを算出する。また、デバイス選択部15cが、算出された予測性能および統計情報14aの性能情報が性能要件を満たし、かつ算出された予測リソース消費量と統計情報14aのリソース消費量との合計値がリソース容量以下であるハードウェアを、配置先として選択する。
これにより、配置装置10では、配置対象の機能の高位言語によるソースコードを用いて機能によるリソース消費量と性能情報を予測することができる。そのため、シミュレーションや実機による動作確認を実行しなくても、機能の配置先のハードウェアを迅速かつ適切に選択することが可能となる。したがって、配置装置10の配置処理によれば、複数種のハードウェアへのネットワーク機能の配置を迅速に行うことが可能となる。
また、性能予測部15bは、高位言語による記述内容と、該記述内容に対応して測定されたリソース消費量および性能情報とを用いた学習により、アルゴリズムを生成する。これにより、性能予測に用いられるアルゴリズムの精度が向上する。
また、高位言語編集部15dは、ハードウェアのリソース容量からリソース消費量を減算した値であるリソース許容量が予測リソース消費量より小さい場合に、高位言語による記述内容を分割し、リソース許容量が予測リソース消費量より大きい場合に、該リソース許容量の範囲で複数の機能の高位言語による記述内容を結合する。これにより、さらに適切にネットワーク機能の配置を行うことが可能となる。
[プログラム]
上記実施形態に係る配置装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、配置装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の配置処理を実行する配置プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の配置プログラムを情報処理装置に実行させることにより、情報処理装置を配置装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistants)等のスレート端末等がその範疇に含まれる。
また、配置装置10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の配置処理に関するサービスを提供するサーバ装置として実装することもできる。例えば、配置装置10は、性能要件と機能の高位言語によるソースコードとを入力とし、機能の配置先のハードウェアを出力する配置処理サービスを提供するサーバ装置として実装される。この場合、配置装置10は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の配置処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。以下に、配置装置10と同様の機能を実現する配置プログラムを実行するコンピュータの一例を説明する。
図6は、配置プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
ここで、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ1031やメモリ1010に記憶される。
また、配置プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した配置装置10が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
また、配置プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
なお、配置プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、配置プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
10 配置装置
11 入力部
12 出力部
13 通信制御部
14 記憶部
14a 統計情報
15 制御部
15a 受付部
15b 性能予測部
15c デバイス選択部
15d 高位言語編集部
15e 変換部
15f 配置実行部

Claims (4)

  1. 機能の配置先の候補である複数種のハードウェアのそれぞれのリソース消費量と性能を表す性能情報とを含む統計情報を記憶する記憶部と、
    複数種のハードウェアに対応したハードウェア記述言語である高位言語による機能の記述内容と、要求される性能を表す性能要件との入力を受け付ける受付部と、
    ハードウェアごとに、高位言語による機能の記述内容と該記述内容を各ハードウェアのソースコードに変換して該機能について各ハードウェアで測定された前記統計情報との関係を表す所定のアルゴリズムを用いて、受け付けられた前記記述内容について予測される性能である予測性能と、予測されるリソース消費量である予測リソース消費量とを算出する予測部と、
    算出された前記予測性能および前記性能情報が前記性能要件を満たし、かつ前記予測リソース消費量と前記リソース消費量との合計値がリソース容量以下であるハードウェアを、配置先として選択する選択部と、
    を備えることを特徴とする配置装置。
  2. 前記予測部は、さらに高位言語による機能の記述内容と、該記述内容を各ハードウェアのソースコードに変換して該機能について各ハードウェアで測定された前記リソース消費量および前記性能情報とを用いた学習により、前記アルゴリズムを生成することを特徴とする請求項1に記載の配置装置。
  3. ハードウェアのリソース容量から前記リソース消費量を減算した値であるリソース許容量が前記予測リソース消費量より小さい場合に、前記記述内容を分割し、前記リソース許容量が前記予測リソース消費量より大きい場合に、該リソース許容量の範囲で複数の機能の前記記述内容を結合する編集部を、さらに備えることを特徴とする請求項1または2に記載の配置装置。
  4. 機能の配置先の候補である複数種のハードウェアのそれぞれのリソース消費量と性能を表す性能情報とを含む統計情報を記憶する記憶部を備えた配置装置において実行される配置方法であって、
    複数種のハードウェアに対応したハードウェア記述言語である高位言語による機能の記述内容と、要求される性能を表す性能要件との入力を受け付ける受付工程と、
    ハードウェアごとに、高位言語による機能の記述内容と該記述内容を各ハードウェアのソースコードに変換して該機能について各ハードウェアで測定された前記統計情報との関係を表す所定のアルゴリズムを用いて、受け付けられた前記記述内容について予測される性能である予測性能と、予測されるリソース消費量である予測リソース消費量とを算出する予測工程と、
    算出された前記予測性能および前記性能情報が前記性能要件を満たし、かつ前記予測リソース消費量と前記リソース消費量との合計値がリソース容量以下であるハードウェアを、配置先として選択する選択工程と、
    を含んだことを特徴とする配置方法。
JP2018108254A 2018-06-06 2018-06-06 配置装置および配置方法 Active JP7070110B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018108254A JP7070110B2 (ja) 2018-06-06 2018-06-06 配置装置および配置方法
US16/972,121 US11709751B2 (en) 2018-06-06 2019-05-24 Installation device and installation method
PCT/JP2019/020775 WO2019235271A1 (ja) 2018-06-06 2019-05-24 配置装置および配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018108254A JP7070110B2 (ja) 2018-06-06 2018-06-06 配置装置および配置方法

Publications (2)

Publication Number Publication Date
JP2019212069A JP2019212069A (ja) 2019-12-12
JP7070110B2 true JP7070110B2 (ja) 2022-05-18

Family

ID=68770109

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018108254A Active JP7070110B2 (ja) 2018-06-06 2018-06-06 配置装置および配置方法

Country Status (3)

Country Link
US (1) US11709751B2 (ja)
JP (1) JP7070110B2 (ja)
WO (1) WO2019235271A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004240530A (ja) 2003-02-04 2004-08-26 Matsushita Electric Ind Co Ltd 回路設計方法、回路設計装置および記録媒体
JP2017129951A (ja) 2016-01-19 2017-07-27 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008046096A1 (de) * 2008-09-05 2010-06-10 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Bestimmen von Anforderungsparametern an mindestens eine physische Hardwareeinheit
WO2012066604A1 (en) * 2010-11-19 2012-05-24 Hitachi, Ltd. Server system and method for managing the same
CN103780259A (zh) * 2012-10-23 2014-05-07 飞思卡尔半导体公司 用于验证数模转换器设计的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004240530A (ja) 2003-02-04 2004-08-26 Matsushita Electric Ind Co Ltd 回路設計方法、回路設計装置および記録媒体
JP2017129951A (ja) 2016-01-19 2017-07-27 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム

Also Published As

Publication number Publication date
US11709751B2 (en) 2023-07-25
WO2019235271A1 (ja) 2019-12-12
US20210232477A1 (en) 2021-07-29
JP2019212069A (ja) 2019-12-12

Similar Documents

Publication Publication Date Title
US11290534B2 (en) System and method for scheduling computer tasks
US9921809B2 (en) Scaling a cloud infrastructure
TWI620075B (zh) 用於雲端巨量資料運算架構之伺服器及其雲端運算資源最佳化方法
US10671360B1 (en) Resource-aware compiler for multi-cloud function-as-a-service environment
US9501304B1 (en) Lightweight application virtualization architecture
US11442779B2 (en) Method, device and computer program product for determining resource amount for dedicated processing resources
KR101578177B1 (ko) 클라우드 컴퓨팅 환경에서의 자원 이용률에 기초한 마이그레이션 방법 및 시스템
US8732717B2 (en) Resource allocation
CN112291335B (zh) 移动边缘计算中的优化任务调度方法
US20210103456A1 (en) Virtualized network function deployment
CN109697121B (zh) 用于向应用分配处理资源的方法、设备和计算机可读介质
US11429429B2 (en) Prefetch chaining for optimizing data read-ahead for workflow and analytics
JP2020136701A (ja) 作成装置、作成システム、作成方法および作成プログラム
US9501303B1 (en) Systems and methods for managing computing resources
JP7070110B2 (ja) 配置装置および配置方法
KR102123750B1 (ko) 네트워크 서비스 요청
US11410023B2 (en) Lexicographic deep reinforcement learning using state constraints and conditional policies
US20220237099A1 (en) Service specifying method and non-transitory computer-readable medium
US20240184633A1 (en) Method, apparatus, system and computer program for workload deployment in cloud system including function accelerator card
US20240121152A1 (en) Configuration feeding device, configuration feeding method, and configuration feeding program
Xu et al. Adaptive edge service deployment in burst load scenarios using deep reinforcement learning
Shanthi et al. DEOMAC—Decentralized and Energy-Efficient Framework for Offloading Mobile Applications to Clouds
CN116028159A (zh) 一种虚拟网络功能自动化资源分配方法及系统
Glocker et al. Temperature modeling and emulation of an ASIC temperature monitor system for Tightly-Coupled Processor Arrays (TCPAs)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220314

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220418

R150 Certificate of patent or registration of utility model

Ref document number: 7070110

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150