JP2022089807A - Computer-implemented method and computer program product (estimating attributes of running workloads on platforms in system including multiple platforms as service) - Google Patents

Computer-implemented method and computer program product (estimating attributes of running workloads on platforms in system including multiple platforms as service) Download PDF

Info

Publication number
JP2022089807A
JP2022089807A JP2021197244A JP2021197244A JP2022089807A JP 2022089807 A JP2022089807 A JP 2022089807A JP 2021197244 A JP2021197244 A JP 2021197244A JP 2021197244 A JP2021197244 A JP 2021197244A JP 2022089807 A JP2022089807 A JP 2022089807A
Authority
JP
Japan
Prior art keywords
workload
platforms
platform
workloads
attributes
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
JP2021197244A
Other languages
Japanese (ja)
Inventor
アロノヴィッチ、リオール
Aronovich Lior
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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
Priority claimed from US17/113,100 external-priority patent/US11366694B1/en
Priority claimed from US17/113,098 external-priority patent/US11704156B2/en
Priority claimed from US17/113,102 external-priority patent/US11693697B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022089807A publication Critical patent/JP2022089807A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

To provide techniques of allowing optimal placement of workloads on platforms in a system including multiple platforms as a service.SOLUTION: The invention provides a computer-implemented method and a computer program product for estimating attributes of running workloads on platforms in a system including multiple platforms as a service. A computer receives definitions of respective workloads and definitions of respective platforms that are eligible to run a set of the respective workloads. The computer maps the respective workloads and the respective platforms to attributes of running the respective workloads on the respective platforms. The computer estimates the attributes and storing the attributes in a matrix. The computer updates the attribute in the matrix, in response to a triggering event for modifying the matrix.SELECTED DRAWING: Figure 2

Description

本発明は、サービスとしてのプラットフォーム(PaaS)モデル全般に関し、より具体的には、サービスとしての複数のプラットフォームを含むシステムにおいて、プラットフォーム上でワークロード(作業負荷)を実行する際の属性を推定することに関する。 The present invention relates to a platform as a service (PaaS) model in general, and more specifically, estimates attributes when a workload is executed on a platform in a system including a plurality of platforms as a service. Regarding that.

サービスとしてのプラットフォーム(PaaS)モデルにおいて、ワークロードは、仮想マシンや物理マシンではなく、プラットフォーム上で実行されるように配置(place)される。プラットフォームは、基礎となるリソースの任意の組み合わせを含むことができるが、これは通常、プラットフォームのユーザには公開されない。プラットフォームは通常、プラットフォーム上へのワークロードの配置、実行、監視、制御を可能にするインタフェースを公開する。 In a platform as a service (PaaS) model, workloads are placed to run on a platform rather than a virtual or physical machine. The platform can contain any combination of underlying resources, which is usually not exposed to the users of the platform. Platforms typically expose interfaces that allow workloads to be placed, run, monitored, and controlled on the platform.

仮想マシン(VM)種類の選択、VMイメージの作成と管理、VMとクラスタとの接続と切断、VMの返却(return)、VMの準備(provision)待ち、VMの追跡など、サービスとしてのインフラストラクチャ(IaaS)プラットフォームでの作業では通常必要となるいくつかの処理要素が、PaaSプラットフォームでの作業では不要になる。PaaSでは、ワークロードと、ワークロードを実行するプラットフォームという2つの主要な概念がある。 Infrastructure as a service, such as virtual machine (VM) type selection, VM image creation and management, VM and cluster connectivity and disconnection, VM return, VM provision waiting, VM tracking, etc. Some processing elements that are normally required when working on the (IAaS) platform are no longer needed when working on the PaaS platform. At PaaS, there are two main concepts: workloads and platforms that run workloads.

PaaSプラットフォームはローカルでもよいし、リモートでもよい。ユーザは、PaaSプラットフォーム上にアカウントを作成する。そして、作成したアカウントを介して、これらのPaaSプラットフォーム上にワークロードをアップロードして実行することができる。ローカルとリモートの両方のプラットフォーム上でワークロードを実行できることで、いくつかのメリットが得られる。コスト削減がその代表である。たまにしか発生しないリソース使用量の急増に対応するために費用をかけてリソースの構築や維持を行うことなく、ハイブリッドクラウドの仕組みを利用することで、ローカルプラットフォームからリモートプラットフォームにワークロードをオフロード(offload)することができるため、必要なときにだけ追加リソースの支払いを行えばよく、総所有コストを削減することができる。他のメリットとして、ワークロードの要件やコストなどを考慮して、属性の異なる複数のクラウドプロバイダやプラットフォームを柔軟に利用できることが挙げられる。また、セキュリティの向上もメリットである。クラウドプロバイダは、セキュリティの強化、隔離(isolation)、プライベートネットワークを介した通信を提供できるので、セキュリティやコンプライアンスの側面に対応できる。ハイブリッドクラウドの仕組みは、ワークロードをクラウドプラットフォーム上に動的に配置することで、スケーラビリティを提供できる。また、クラウドプロバイダのリソースを活用することで、障害やダウンタイムのリスクを最小限にできる。 The PaaS platform can be local or remote. The user creates an account on the PaaS platform. You can then upload and run workloads on these PaaS platforms via the accounts you create. Being able to run workloads on both local and remote platforms offers several benefits. Cost reduction is a typical example. Offload workloads from local to remote platforms by leveraging the hybrid cloud mechanism without spending money to build and maintain resources to handle the occasional spike in resource usage ( Since it can be offloaded, you only have to pay for additional resources when you need it, and you can reduce your total cost of ownership. Another advantage is the flexibility to use multiple cloud providers and platforms with different attributes, taking into account workload requirements and costs. Another advantage is the improvement of security. Cloud providers can provide enhanced security, isolation, and communication over private networks, thus addressing security and compliance aspects. The hybrid cloud mechanism can provide scalability by dynamically allocating workloads on the cloud platform. You can also minimize the risk of failure and downtime by leveraging the resources of your cloud provider.

本開示は、サービスとしての複数のプラットフォームを含むシステムにおいて、プラットフォームへのワークロードの最適な配置を可能にする技術を提供することを目的とする。 The present disclosure is intended to provide a technique that enables optimal placement of workloads on platforms in a system that includes multiple platforms as a service.

一態様によれば、サービスとしての複数のプラットフォームを含むシステムにおいて、プラットフォーム上でワークロードを実行する際の属性を推定するためのコンピュータ実装方法が提供される。コンピュータ実装方法は、それぞれのワークロードの定義と、それぞれのワークロードのセットを実行する資格のあるそれぞれのプラットフォームの定義とを受信することを含む。コンピュータ実装方法はさらに、それぞれのワークロードおよびそれぞれのプラットフォームを、それぞれのプラットフォーム上でそれぞれのワークロードを実行する際の属性にマッピングすることを含む。コンピュータ実装方法はさらに、属性を推定し、属性を行列に格納することを含む。コンピュータ実装方法はさらに、行列を修正するトリガーイベントに応じて、行列内の属性を更新することを含む。 According to one aspect, in a system including a plurality of platforms as a service, a computer implementation method for estimating attributes when executing a workload on the platforms is provided. The computer implementation method involves receiving the definition of each workload and the definition of each platform that is eligible to run each set of workloads. Computer implementation methods further include mapping each workload and each platform to the attributes of running each workload on each platform. Computer implementation methods further include estimating attributes and storing them in a matrix. Computer implementation methods further include updating the attributes in the matrix in response to trigger events that modify the matrix.

他の態様によれば、サービスとしての複数のプラットフォームを含むシステムにおいて、プラットフォーム上でワークロードを実行する際の属性を推定するためのコンピュータプログラム製品が提供される。コンピュータプログラム製品は、プログラム命令を具備するコンピュータ可読記憶媒体を含む。プログラム命令は1つ以上のプロセッサによって実行可能である。プログラム命令は、それぞれのワークロードの定義と、それぞれのワークロードのセットを実行する資格のあるそれぞれのプラットフォームの定義とを受信することと、それぞれのワークロードおよびそれぞれのプラットフォームを、それぞれのプラットフォーム上でそれぞれのワークロードを実行する際の属性にマッピングすることと、属性を推定し、属性を行列に格納することと、行列を修正するトリガーイベントに応じて、行列内の属性を更新することと、を実行可能である。 According to another aspect, in a system including a plurality of platforms as a service, a computer program product for estimating attributes when executing a workload on the platforms is provided. Computer program products include computer-readable storage media with program instructions. Program instructions can be executed by one or more processors. Program instructions receive the definition of each workload and the definition of each platform that is eligible to run each set of workloads, and each workload and each platform on each platform. Mapping to the attributes when running each workload, estimating the attributes and storing the attributes in the matrix, and updating the attributes in the matrix in response to the trigger event that modifies the matrix. , Is feasible.

図1は、本発明の一実施形態による、サービスとしての複数のプラットフォームを含むシステムを示す図である。FIG. 1 is a diagram showing a system including a plurality of platforms as a service according to an embodiment of the present invention. 図2は、本発明の一実施形態による、複数のプラットフォーム上にワークロードを配置する動作ステップを示すフローチャートである。FIG. 2 is a flowchart showing an operation step of arranging a workload on a plurality of platforms according to an embodiment of the present invention. 図3Aは、本発明の一実施形態による、複数のプラットフォーム上へのワークロード配置を最適化する動作ステップを示すフローチャートである。FIG. 3A is a flowchart showing an operation step for optimizing workload placement on a plurality of platforms according to an embodiment of the present invention. 図3Bは、本発明の一実施形態による、複数のプラットフォーム上へのワークロード配置を最適化する動作ステップを示すフローチャートである。FIG. 3B is a flowchart showing an operation step for optimizing workload placement on a plurality of platforms according to an embodiment of the present invention. 図4は、本発明の一実施形態による、コンピュータ装置のコンポーネントを示す図である。FIG. 4 is a diagram showing components of a computer device according to an embodiment of the present invention. 図5は、本発明の一実施形態による、クラウドコンピューティング環境を示す図である。FIG. 5 is a diagram showing a cloud computing environment according to an embodiment of the present invention. 図6は、本発明の一実施形態による、クラウドコンピューティング環境における抽象化モデルレイヤを示す図である。FIG. 6 is a diagram showing an abstraction model layer in a cloud computing environment according to an embodiment of the present invention.

本開示において検討される課題は、以下の通り定義される。複数のワークロードが実行可能であるか、または既に実行中である。複数のプラットフォームが、これら複数のワークロードの実行に利用可能である。複数のプラットフォームのうち一部は、ワークロードを実行中の場合がある。各ワークロードは、その処理を完了するための要求時間が設けられている場合がある。各ワークロードは、リソースの消費量および完了までの時間の点で、各プラットフォーム上で異なるパフォーマンスを示す場合がある。各プラットフォームでは異なるコストが発生し、これらは時間の経過とともに変化する場合がある。プラットフォームごとのコストは、指定されたリソースの使用状況、時間間隔、およびその他の要素によって異なる場合がある。各プラットフォームは、異なる容量限界(capacity limits)を有している場合がある。複数のプラットフォームのうち一部はローカルで、他の一部はリモートである場合がある。本技術の目的は、複数のワークロードと複数のプラットフォームとの間のマッピングを発見することであり、当該マッピングは、ワークロードの完了までの時間および、プラットフォームを使用することで発生する総コストを最小化するものである。 The issues considered in this disclosure are defined as follows. Multiple workloads are runnable or already running. Multiple platforms are available to run these multiple workloads. Some of the platforms may be running workloads. Each workload may have a required time to complete its processing. Each workload may show different performance on each platform in terms of resource consumption and time to completion. Each platform incurs different costs, which can change over time. The cost per platform may vary depending on the resource usage, time interval, and other factors specified. Each platform may have different capacity limits. Some of the platforms may be local and some may be remote. The purpose of this technique is to discover mappings between multiple workloads and multiple platforms, which map the time to completion of the workload and the total cost of using the platforms. It is to be minimized.

クラウドバースティング(cloud bursting)を実行するための既存の商用システムには、いくつかの制限がある。サービスとしてのプラットフォーム(PaaS)モデルにおいては、システムは通常、監視ツールを介したリソースの過不足状況の特定、どのアプリケーションを移動させるかの監視および決定、予算(budget)の利用の監視および規制、ならびにクラウドリソースの準備およびリリースの管理を行う上で、システム管理者に依存している。PaaSクラウドは比較的新しいモデルであり、現在のPaaSクラウドのシステムでは、サービスレベルや予算の管理の面でのサポートが限られているか、または全くない。 Existing commercial systems for performing cloud bursting have some limitations. In a platform as a service (PaaS) model, systems typically identify resource overs and shortages through monitoring tools, monitor and determine which applications to move, monitor and regulate budget usage, It also relies on system administrators to manage cloud resource preparation and releases. The PaaS cloud is a relatively new model, with limited or no support in terms of service level and budget management in current PaaS cloud systems.

上記の制限を克服するために、本発明の実施形態は、PaaSクラウドモデルに焦点を当てている。本発明の実施形態は、任意の種類のワークロードおよびワークロード環境をサポートし、仮想化環境(virtualized environment)に関していかなる仮定も行わない。本発明の実施形態は、サービスレベル、予算、コスト、リソース、ワークロード、およびプラットフォームについて併せて考慮する。本発明の実施形態は、異なる属性を有する複数のローカルおよびリモートクラウドをサポートする。本発明の実施形態は、予算、リソース、およびプラットフォームに関する制約がある中で、ワークロードのサービスレベルおよびクラウドの利用コストを自動的に最適化する。本発明の実施形態は、スケーラブルなソリューションを提供する。 To overcome the above limitations, embodiments of the present invention focus on the PaaS cloud model. Embodiments of the invention support any type of workload and workload environment and make no assumptions about the virtualized environment. The embodiments of the present invention also consider service levels, budgets, costs, resources, workloads, and platforms. Embodiments of the invention support multiple local and remote clouds with different attributes. Embodiments of the present invention automatically optimize service levels of workloads and cloud utilization costs in the face of budget, resource, and platform constraints. Embodiments of the present invention provide a scalable solution.

図1は、本発明の一実施形態による、サービスとしての複数のプラットフォームを含むシステム100を示す図である。サービスとしての複数のプラットフォームを含むシステム100は、ワークロード120、プラットフォーム130、およびワークロード120とプラットフォーム130をマッピングするためのシステム110で構成される。ワークロード120は、M個の待機中(pending)ワークロード(待機中ワークロード1(121-1)、待機中ワークロード2(121-2)、・・・、待機中ワークロードM(121-M))を含む。待機中ワークロードは、プラットフォーム上に配置されるのを待機している。ワークロード120はさらに、N個の実行中(running)ワークロード(実行中ワークロード1(122-1)、実行中ワークロード2(122-2)、・・・、実行中ワークロードN(122-N))を含む。実行中ワークロードは、プラットフォーム上で現在実行中のワークロードである。プラットフォーム130は、K個のローカルプラットフォーム(ローカルプラットフォーム1(131-1)、ローカルプラットフォーム2(131-2)、・・・、ローカルプラットフォームK(131-K))と、L個のリモートプラットフォーム(リモートプラットフォーム1(132-1)、リモートプラットフォーム2(132-2)、・・・、リモートプラットフォームL(131-L))とを含む。プラットフォーム130は、1つ以上のクラウドプロバイダによって提供することができる。 FIG. 1 is a diagram showing a system 100 including a plurality of platforms as a service according to an embodiment of the present invention. The system 100 including the plurality of platforms as a service is composed of a workload 120, a platform 130, and a system 110 for mapping the workload 120 and the platform 130. The workload 120 includes M pending workloads (waiting workload 1 (121-1), waiting workload 2 (121-2), ..., Waiting workload M (121-). M)) is included. Waiting workloads are waiting to be deployed on the platform. The workload 120 further includes N running workloads (running workload 1 (122-1), running workload 2 (122-2), ..., Running workload N (122-1). -N)) is included. A running workload is a workload that is currently running on the platform. Platform 130 includes K local platforms (local platform 1 (131-1), local platform 2 (131-2), ..., Local platform K (131-K)) and L remote platforms (remote). Platform 1 (132-1), remote platform 2 (132-2), ..., Remote platform L (131-L)). Platform 130 can be provided by one or more cloud providers.

ユーザは、待機中ワークロードをプラットフォーム上で実行することを要求する。そして、マッピング用システム110は、待機中ワークロードのプラットフォームへの最適な配置を計算し、その最適な配置に従って、待機中ワークロードをプラットフォーム上に配置する。何らかの変更(例えば、システム100への新たなワークロードの追加や、ワークロードの要件の変更など。詳細な説明は後述)に応じて、マッピング用システム110は、実行中ワークロードのプラットフォームへの最適な配置を再計算する。実行中ワークロードの最適な配置に従って、マッピング用システム110は、現在のプラットフォームが計算された最適なプラットフォームではない場合に、実行中ワークロードのうちの1つまたは複数を、現在のプラットフォームから、当該ワークロードについて計算された最適なプラットフォームに移動または移行させる。 The user requests that the waiting workload run on the platform. Then, the mapping system 110 calculates the optimum placement of the waiting workload on the platform, and places the waiting workload on the platform according to the optimum placement. In response to any changes (eg, adding new workloads to system 100, changing workload requirements, etc., detailed description below), the mapping system 110 is optimal for the platform of running workloads. Recalculate the placement. According to the optimal placement of the running workload, the mapping system 110 will select one or more of the running workloads from the current platform if the current platform is not the calculated optimal platform. Move or migrate to the optimal platform calculated for your workload.

マッピング用システム110は、コンピュータ装置上に存在してもよいし、サーバ上に存在してもよい。コンピュータ装置またはサーバの詳細は、図4を参照して後述する。ワークロード120とプラットフォーム130とのマッピング用システム110は、クラウドコンピューティング環境で実装される。クラウドコンピューティング環境の詳細は、図5および図6を参照して後述する。 The mapping system 110 may exist on a computer device or a server. Details of the computer device or server will be described later with reference to FIG. The mapping system 110 between the workload 120 and the platform 130 is implemented in a cloud computing environment. Details of the cloud computing environment will be described later with reference to FIGS. 5 and 6.

<ワークロードとプラットフォームの、実行属性へのマッピング> <Mapping of workload and platform to execution attributes>

マッピング用システム110は、複数のワークロードの定義と、当該複数のワークロードを実行する資格のある複数のプラットフォームの定義とを受信する。マッピング用システム110は、以下のように、一のワークロードと一のプラットフォームの各ペアを、当該プラットフォーム上で当該ワークロードを実行する際の属性(attributes)にマッピングするマッピング関数を用いて、特定のプラットフォーム上で特定のワークロードを実行する際の属性をモデリングする。

Figure 2022089807000002
ここで、Costは、特定のプラットフォーム上で特定のワークロードを実行する際の推定コストである。Estimated Duration to Complete(EDC)は、当該特定のプラットフォーム上で実行される当該特定のワークロードの推定完了時間であり、プラットフォーム上でワークロードが実行開始する時点から測定され、実行開始までのワークロードの待機時間は含まれない。プラットフォームに関するResource Requirements(RR)は、当該特定のプラットフォーム上で実行される当該特定のワークロードの推定リソース要件であり、当該特定のプラットフォームによって課金(charge)されるメインリソースに関する。各プラットフォームでは、使用料(usage charge)の計算の元となるリソースが定義されている。CostはおよびEDCは、マッピング用システム110によって学習され、推定される。RRは、プラットフォームが提供するインタフェースに応じて、マッピング用システム110によって推定されるか、またはユーザ入力によって提供することができる。 The mapping system 110 receives definitions for a plurality of workloads and definitions for a plurality of platforms that are eligible to execute the plurality of workloads. The mapping system 110 is specified by using a mapping function that maps each pair of one workload and one platform to the attributes when the workload is executed on the platform as follows. Model the attributes of running a particular workload on your platform.
Figure 2022089807000002
Here, Cost is the estimated cost of running a particular workload on a particular platform. Estimated Duration to Complete (EDC) is the estimated completion time of a particular workload running on that particular platform, measured from the time the workload starts running on the platform to the start of execution. Waiting time is not included. Resource Requirements (RR) for a platform are estimated resource requirements for that particular workload running on that particular platform and relate to the main resources that are charged by that particular platform. Each platform defines the resources from which the usage charge is calculated. Cost and EDC are learned and estimated by the mapping system 110. The RR can be estimated by the mapping system 110 or provided by user input, depending on the interface provided by the platform.

<プラットフォーム上でワークロードを実行する際の属性を含む行列WkPl> <Matrix WkPl containing attributes when running workloads on the platform>

それぞれのワークロードとそれぞれのプラットフォームの各ペアと、それぞれのプラットフォーム上でそれぞれのワークロードを実行する際の属性とのマッピングは、行列(matrix)に格納することができる。例えば、各ワークロードは行列の行で表され、各プラットフォームは行列の列で表され、特定のワークロードを特定のプラットフォーム上で実行する際の属性は、行列のセルに格納される。この行列を、WkPlと表記する。行列WkPlの例を表1に示す。

Figure 2022089807000003
The mapping between each workload and each pair of platforms and the attributes of running each workload on each platform can be stored in a matrix. For example, each workload is represented by a row in the matrix, each platform is represented by a column in the matrix, and the attributes for running a particular workload on a particular platform are stored in the cells of the matrix. This matrix is referred to as WkPl. An example of the matrix WkPl is shown in Table 1.
Figure 2022089807000003

行列WkPlのセルには、特定のプラットフォームPL上で特定のワークロードWKを実行する際の属性が格納されている。このセルを、WkPl[WK,PL]と表記する。属性Cost、EDC、RRのうち、特定のプラットフォームPL上で特定のワークロードWKを実行することに関連する一の属性を、Attribute(WkPl[WK,PL])と表記する(例えば、Cost(WkPl[WK,PL]))。 The cells of the matrix WkPl store attributes for executing a specific workload WK i on a specific platform PL j . This cell is referred to as WkPl [WK i , PL j ]. Of the attributes Cost, EDC, and RR, one attribute related to executing a specific workload WK i on a specific platform PL j is referred to as Attribute (WkPl [WK i , PL j ]) (for example, , Cost (WkPl [WK i , PL j ])).

<行列WkPlの更新> <Update of matrix WkPl>

マッピング用システム110は、以下のトリガーイベントが発生した場合、行列WkPlを更新する。 The mapping system 110 updates the matrix WkPl when the following trigger event occurs.

(1)新たなワークロードがシステム100に追加される。この場合、新たな行が行列WkPlに追加される。 (1) A new workload is added to the system 100. In this case, a new row is added to the matrix WkPl.

(2)ワークロードの1つ以上の要件が変更される。この場合、当該ワークロードに関連する行の各セルが変更される。 (2) One or more requirements of the workload are changed. In this case, each cell in the row associated with the workload is modified.

(3)ワークロードが特定のプラットフォーム上で処理を完了する。この場合、プラットフォーム上のワークロードの実際の実行属性(running attributes)を、当該ワークロードおよびプラットフォームに関連するセル内で更新してもよい。プラットフォーム上のワークロードの実際の実行属性は、Cost、EDC、RRの各指標の推定メカニズム(estimation mechanism)にも追加される。同じプラットフォーム上で実行中の可能性のある他のワークロードの属性も更新してよい。 (3) The workload completes the process on a specific platform. In this case, the actual running attributes of the workload on the platform may be updated in the cells associated with the workload and platform. The actual execution attributes of the workload on the platform are also added to the cost, EDC, and RR metrics estimation mechanisms. You may also update the attributes of other workloads that may be running on the same platform.

(4)プラットフォーム上でのワークロードの処理が完了したことにより、当該ワークロードが行列WkPlから定期的に、または即時に削除される。この場合、削除対象のワークロードに関連する行が、行列WkPlから削除される。削除が定期的に行われる場合、削除基準(例えば、ワークロードの時間属性に基づく基準)に基づいて削除が適用される。 (4) When the processing of the workload on the platform is completed, the workload is deleted from the matrix WkPl periodically or immediately. In this case, the row related to the workload to be deleted is deleted from the matrix WkPl. If the deletion is done on a regular basis, the deletion will be applied based on the deletion criteria (eg, criteria based on the time attribute of the workload).

(5)新たなプラットフォームが追加される。この場合、行列WkPlに新たな列が追加され、それぞれのワークロードの属性の推定値が格納される。 (5) A new platform will be added. In this case, a new column is added to the matrix WkPl and the estimated values of the attributes of each workload are stored.

(6)プラットフォームが課金するコストが変更される。この場合、当該プラットフォームに関連する行列の列に格納された情報が更新される。 (6) The cost charged by the platform will be changed. In this case, the information stored in the columns of the matrix associated with the platform is updated.

(7)プラットフォームで利用できるリソースの量もしくは種類またはその両方が変更される。この場合、当該プラットフォームに関連する行列の列に格納されている情報が更新される。 (7) The amount and / or type of resources available on the platform will change. In this case, the information stored in the column of the matrix related to the platform is updated.

(8)プラットフォームが削除される。この場合、削除されたプラットフォームに関連する列が削除される。 (8) The platform is deleted. In this case, the column associated with the deleted platform is deleted.

上記のトリガーイベントのいずれかを発見するために、行列WkPlを保持するマッピング用システム110は、ワークロードを定期的にスキャンおよび監視してワークロードの現在の状態を特定すると共に、プラットフォームを定期的にスキャンおよび監視してプラットフォームの現在の状態を特定する。 To discover any of the above trigger events, the mapping system 110 holding the matrix WkPl periodically scans and monitors the workload to determine the current state of the workload and periodically the platform. Scan and monitor to determine the current state of the platform.

マッピング用システム110は、利用可能なプラットフォームを定義する列を含むが、行を含まない行列WkPlの構築を開始する。ワークロードが追加されると、マッピング用システム110は、行列に行を追加する。そして、マッピング用システム110はこの行の各セルに、利用可能なプラットフォーム上でのワークロードの属性の推定値を追加する。 The mapping system 110 initiates the construction of a matrix WkPl that includes columns that define the available platforms but no rows. When the workload is added, the mapping system 110 adds rows to the matrix. The mapping system 110 then adds to each cell in this row an estimate of the workload attributes on the available platforms.

<Cost、EDC、RRの推定> <Estimation of Cost, EDC, RR>

ワークロードとプラットフォームの各ペアについて、Cost、EDC、RRの各指標を推定するために、システム110は、以前に記録された情報、すなわち、特定のプラットフォーム上で実行された同種の他のワークロードの実行属性に基づく推定値を使用する。一のワークロードが現在実行中であり、当該ワークロードについてこれらの指標の推定が行われている場合、システム110は、当該ワークロードの処理における現在の状態を考慮することも可能である。 To estimate the Cost, EDC, and RR indicators for each workload and platform pair, the system 110 has previously recorded information, i.e. other workloads of the same type running on a particular platform. Use estimates based on the execution attributes of. If one workload is currently running and estimates of these indicators have been made for that workload, the system 110 may also consider the current state of processing the workload.

Cost、EDC、RRの各指標を推定する際、以下の要素が考慮される。 The following factors are considered when estimating the Cost, EDC, and RR indicators.

(1)ワークロード種類(workload type):各ワークロードは、一のワークロード種類に関連付けることができる。各ワークロード種類は、実行特性(running characteristics)およびリソース要件の点で類似するワークロードをグループ化したものである。所与のワークロードと一の種類との関連付けは、当該所与のワークロードの属性の一部として、システム110に対するユーザ入力によって指定することができる。システム110が用いるCost、EDC、RRの推定メカニズムは、各ワークロードに対する種類属性(type attribute)の使用可能性に基づいており、所与のワークロードを同種の以前のワークロードに関連付けることができる。推定指標は、各ワークロード種類について計算される。ワークロード種類ごとに、プラットフォーム上でワークロードを実行する際の指標または属性に関する集約的な(aggregated)もしくは詳細なまたはその両方の情報が決定され、格納される。これにより、ワークロード種類に関連付けられたワークロードについての推定が容易になる。完了したワークロードの実際の実行属性を用いて、当該ワークロードが関連付けられたワークロード種類について格納されている集約的なもしくは詳細なまたはその両方の情報が更新される。 (1) workload type: Each workload can be associated with one workload type. Each workload type is a grouping of workloads that are similar in terms of running characteristics and resource requirements. The association between a given workload and one type can be specified by user input to system 110 as part of the attributes of that given workload. The Cost, EDC, and RR estimation mechanisms used by System 110 are based on the availability of type attributes for each workload, allowing a given workload to be associated with previous workloads of the same type. .. Estimates are calculated for each workload type. For each workload type, aggregated and / or detailed information about the metrics and attributes of running the workload on the platform is determined and stored. This facilitates estimation of the workload associated with the workload type. Aggregate and / or detailed information stored about the workload type associated with the workload is updated with the actual execution attributes of the completed workload.

(2)指標値の加法性(additivity):収集したCost、EDC、RRの各指標は、各ワークロードを独立して表し、加法性を有する必要がある。 (2) Additivity of index value: Each index of Cost, EDC, and RR collected must represent each workload independently and have additivity.

(3)PaaSクラウドの課金モデル:PaaSクラウドプラットフォームは通常、使用量および料金が計算される1つ以上のリソースを有する。例えば、メモリの使用量またはワークロードの処理数を用いて、使用量および料金を計算することができる。これらのリソースは通常、(ハードウェアではなく)ソフトウェアで定義される。コスト料金は通常、これらのリソースの消費量に比例しており、ユーザの時間単位あたりのリソース消費量に対して計算される。また、ユーザごとにリソース最大使用量に上限がある場合もある。PaaSクラウドプラットフォームは、複数のサービス種類を提供している場合がある。これらのサービス種類について、コスト料金の計算方法に応じて、使用コストを別々に計算してもよいし、まとめて計算してもよい。また、サービス種類は、ユーザごとのリソース最大使用量の上限と関連している場合もある。 (3) PaaS cloud billing model: The PaaS cloud platform usually has one or more resources for which usage and charges are calculated. For example, memory usage or workload processing can be used to calculate usage and charges. These resources are usually defined in software (rather than hardware). Costs Fees are typically proportional to the consumption of these resources and are calculated relative to the user's hourly resource consumption. In addition, there may be an upper limit on the maximum resource usage for each user. The PaaS cloud platform may offer multiple service types. For these service types, the usage cost may be calculated separately or collectively depending on the method of calculating the cost charge. The service type may also be related to the maximum resource usage per user.

(4)実行中または完了したワークロードに関するリソース消費量およびコストの計算:一のプラットフォームから、特定のワークロードを実行するためのリソース消費量およびコストに関する情報の報告があった場合、システム110は、この報告されたリソース消費量およびコストに関する情報を用いて、当該ワークロードに対応するワークロード種類のリソース要件およびコスト情報を更新する(または、当該ワークロード種類について格納された集約的なもしくは詳細なまたはその両方の情報を更新する)。一のプラットフォームから、ユーザの時間単位ごとのリソース使用量に基づくコスト情報の報告があった場合、または、リソース消費量およびコストがワークロードごとに報告されなかった場合、特定のワークロードを実行するためのリソース消費量およびコストは、いくつかの方法で計算することができる。1 1つ目の方法は、特定のプラットフォーム上で特定のユーザのためにワークロードを独自に実行しながら、プラットフォームから報告されるリソース消費量およびコストの情報を収集する方法である。2 2つ目の方法は、例えばオペレーティングシステムの監視情報を用いて、特定のワークロードを実行した場合の他のワークロードに対するリソース消費割合を抽出し、この割合を適用して、ユーザが実行する複数のワークロードについてプラットフォームから報告されたリソース消費量およびコストのうち、特定のワークロードのリソース消費量およびコストを計算する方法である。3 ワークロードごとのリソース要件およびコストを得るための3つ目の方法は、自動推定ができない場合に、ユーザ入力を介してこの情報を受信するか、またはユーザ入力を用いる方法である。これらの方法で得られた、報告されたリソース消費量およびコストの情報を用いて、ワークロード種類について格納された集約的なもしくは詳細なまたはその両方の情報を更新する。 (4) Calculation of resource consumption and cost for running or completed workload: If one platform reports information on resource consumption and cost for running a specific workload, the system 110 will Use this reported resource consumption and cost information to update resource requirements and cost information for the workload type that corresponds to that workload (or aggregate or details stored for that workload type). Update or both information). Run a specific workload if one platform reports cost information based on the user's hourly resource usage, or if resource consumption and cost are not reported per workload. Resource consumption and cost for this can be calculated in several ways. 1 The first method is to collect resource consumption and cost information reported from the platform while running the workload independently for a specific user on a specific platform. 2 The second method uses, for example, operating system monitoring information to extract the resource consumption ratio for other workloads when a specific workload is executed, and applies this ratio to be executed by the user. A method of calculating the resource consumption and cost of a specific workload among the resource consumption and cost reported by the platform for multiple workloads. 3 A third way to obtain resource requirements and costs per workload is to receive this information via user input or use user input when automatic estimation is not possible. The reported resource consumption and cost information obtained by these methods is used to update the stored intensive and / or detailed information about the workload type.

(5)ワークロードの移行コスト(migration cost):このコストを、実行中のワークロードに対して追加することができる。これは、推定コスト、推定完了時間、および推定リソース要件に対する追加要素であり、移行を考慮していない推定値の上に追加される。この追加のコスト要素は、実行中のワークロードの現在の状態およびワークロード環境の移行コストに応じて、正または負のいずれかになる。移行コストが追加された場合、プラットフォームごとの推定値は、各ワークロードの移行なしの場合の推定値と比較して異なる可能性がある。移行コストは、1つの実行中のワークロードを、現在のプラットフォームから、マッピング用システム110が決定した最適なプラットフォームに移行するためのコストである。 (5) Workload migration cost: This cost can be added to the running workload. This is an additional factor for estimated cost, estimated completion time, and estimated resource requirements, and is added on top of estimates that do not take migration into account. This additional cost factor can be either positive or negative, depending on the current state of the running workload and the migration cost of the workload environment. If migration costs are added, the estimates for each platform may differ compared to the estimates for each workload without migration. The migration cost is the cost of migrating one running workload from the current platform to the optimal platform determined by the mapping system 110.

<全体属性> <Overall attributes>

全体属性(overall attributes)は、OverallBudgetを含む。OverallBudgetは、ユーザ/組織単位(organizational unit)ごとに割り当てられる金銭的な全体予算であり、ユーザ/組織単位が実行するワークロードに用いられる。 Overall attributes include OverallBudget. An Overall Budget is a monetary overall budget allocated to each user / organizational unit and is used for workloads performed by the user / organizational unit.

<ワークロード属性> <Workload attribute>

ワークロード(WK)は、以下の属性を有する。(1)OriginalBudget(WK):これは、ワークロードWKに割り当てられた金銭的な予算である。(2)RemainingBudget(WK):これは、ワークロードWKに割り当てられている現在の金銭的な残り予算(支出後)である。(3)RDC(WK):これは、プラットフォーム上でワークロードWKを完了するまでの要求完了時間であり、ワークロードの投入時刻(submission time)から指定される。RDC(WK)は、ベストエフォート(ソフト)制約と見なされる。(4)SubmissionTime(WK):これは、ワークロードWKの投入時刻である。(5)Priority(WK):これは、ワークロードWKに割り当てられた優先度である。優先度は、他のワークロードの優先度に対する相対的なものである。(6)EligiblePlatforms(WK):これは、行列WkPl内のプラットフォームインデックス(platform indexes)として指定されるプラットフォームのリストであり、リスト内のプラットフォームは、ワークロードWKを実行する資格がある。特定のワークロードに関する適格なプラットフォームのリストは、例えばプラットフォームの種類やプラットフォームへのユーザアクセスに基づいて選択される、プラットフォームのサブセットとすることができる。 The workload (WK i ) has the following attributes. (1) Original Budget (WK i ): This is the monetary budget allocated to the workload WK i . (2) Reminding Budget (WK i ): This is the current remaining monetary budget (after spending) allocated to the workload WK i . (3) RDC (WK i ): This is the request completion time until the workload WK i is completed on the platform, and is specified from the workload submission time. RDC (WK i ) is considered a best effort (soft) constraint. (4) SubmissionTime (WK i ): This is the input time of the workload WK i . (5) Priority (WK i ): This is the priority assigned to the workload WK i . Priority is relative to the priority of other workloads. (6) Eligible Platforms (WK i ): This is a list of platforms designated as platform indexes in the matrix WkPl, and the platforms in the list are eligible to run workload WK i . The list of eligible platforms for a particular workload can be, for example, a subset of platforms selected based on platform type and user access to the platform.

<プラットフォーム属性> <Platform attribute>

一のプラットフォーム(PL)のプラットフォーム属性は、MaxResource(PL)を含む。属性MaxResource(PL)は、プラットフォームPLによって課金されるメインリソースの消費についての、一のユーザに対する最大上限である。メインリソースは例えば、メモリサイズやワークロードの処理数とすることができる。 The platform attribute of one platform (PL j ) includes MaxResource (PL j ). The attribute MaxResource (PL j ) is the maximum upper limit for the consumption of the main resource charged by the platform PL j for one user. The main resource can be, for example, the memory size or the number of workload processes.

<サービスとしての複数のプラットフォームに関するコストおよびサービスレベルを考慮したワークロードの配置> <Distribution of workload considering cost and service level for multiple platforms as a service>

図2は、本発明の一実施形態による、複数のプラットフォーム上にワークロードを配置する動作ステップを示すフローチャートである。ステップ201にて、ワークロードとプラットフォームをマッピングするシステム(例えば、図1に示すシステム110)が、行列を修正するトリガーイベントを検出する。行列は、ワークロードとプラットフォームをそれぞれペアにすると共に、プラットフォーム上でワークロードを実行する際の属性を含むものである。例えば、行列は、上述した行列WkPlである。行列を修正するトリガーイベントを検出するために、マッピング用システムは、ワークロードおよびプラットフォームを定期的にスキャンおよび監視して、ワークロードおよびプラットフォームの現在の状態を決定する。トリガーイベントは、以下のイベントの少なくとも1つである。(1)新たなワークロードがサービスとしての複数のプラットフォームを含むシステムに追加される、(2)それぞれのワークロードの1つ以上の要件(予算、要求完了期間、優先度、適格プラットフォーム)が変更される、(3)ワークロードが複数のプラットフォームの1つにおいて処理を完了する、(4)新たなプラットフォームがサービスとしての複数のプラットフォームを含むシステムに追加される、(5)複数のプラットフォームの1つのコストが変更される、(6)複数のプラットフォームの1つが利用可能なリソースの可用性、量、または種類が変更される、(7)複数のプラットフォームの1つについて、ユーザあたりの最大リソース利用率が変更される、(8)複数のプラットフォームの1つが、サービスとしての複数のプラットフォームを含むシステムから削除される、(9)全体予算が変更される。 FIG. 2 is a flowchart showing an operation step of arranging a workload on a plurality of platforms according to an embodiment of the present invention. In step 201, a system that maps the workload to the platform (eg, system 110 shown in FIG. 1) detects a trigger event that modifies the matrix. The matrix pairs the workload and the platform, and contains the attributes for running the workload on the platform. For example, the matrix is the matrix WkPl described above. To detect the trigger event that modifies the matrix, the mapping system periodically scans and monitors the workload and platform to determine the current state of the workload and platform. The trigger event is at least one of the following events. (1) New workloads are added to systems that include multiple platforms as a service, (2) one or more requirements (budget, requirement completion period, priority, eligible platforms) for each workload change (3) The workload completes processing on one of multiple platforms, (4) a new platform is added to a system containing multiple platforms as a service, (5) one of multiple platforms One cost changes, (6) the availability, quantity, or type of resources available to one of the multiple platforms changes, (7) the maximum resource utilization per user for one of the multiple platforms. Is changed, (8) one of the multiple platforms is removed from the system containing the multiple platforms as a service, (9) the overall budget is changed.

ステップ202にて、マッピング用システムは、トリガーイベントが検出されると、行列を再計算する。例えば、マトリクスWkPlが再計算される。そして、行列内では、プラットフォーム上でワークロードを実行する際の属性が更新される。 In step 202, the mapping system recalculates the matrix when a trigger event is detected. For example, the matrix WkPl is recalculated. Then, in the matrix, the attributes when executing the workload on the platform are updated.

ステップ203にて、マッピング用システムは、プラットフォーム上へのワークロードの最適な配置を計算する。マッピング用システムは、最適化問題を解くアルゴリズムを使用する。最適化問題およびそれを解くアルゴリズムについては、図3を参照して詳細に後述する。 At step 203, the mapping system calculates the optimal placement of the workload on the platform. The mapping system uses an algorithm that solves the optimization problem. The optimization problem and the algorithm for solving it will be described in detail later with reference to FIG.

ステップ204にて、マッピング用システムは、それぞれのワークロードが、それぞれのプラットフォーム上で未実行であるか否かを判定する。例えば、それぞれのワークロードが未実行である場合、当該ワークロードは待機中ワークロードであり(例えば、図1に示すように、待機中ワークロード1(121-1)、待機中ワークロード2(121-2)、・・・、待機中ワークロードM(121-M))、あるプラットフォームに(マッピング用システムによって)マッピングされるのを待機している状態である。それぞれのワークロードが実行中である場合、当該ワークロードは実行中ワークロードである(例えば、図1に示すように、実行中ワークロード1(122-1)、実行中ワークロード2(122-2)、・・・、実行中ワークロードN(122-N))。 At step 204, the mapping system determines if each workload has not been executed on each platform. For example, if each workload is unexecuted, the workload is a waiting workload (eg, as shown in FIG. 1, waiting workload 1 (121-1), waiting workload 2 (eg, as shown in FIG. 1). 121-2), ..., Waiting workload M (121-M)), waiting to be mapped (by the mapping system) to a platform. When each workload is running, it is a running workload (eg, running workload 1 (122-1), running workload 2 (122-, as shown in FIG. 1)). 2), ..., Running workload N (122-N)).

それぞれのワークロードが未実行であると判定した場合(ステップ204にてYES)、ステップ205にて、マッピング用システムは、それぞれのワークロードを、当該ワークロードについての計算された最適なプラットフォームに配置する。最適なプラットフォームは、ステップ203で計算される。 If it is determined that each workload has not been executed (YES in step 204), in step 205, the mapping system places each workload on the calculated optimal platform for that workload. do. The optimal platform is calculated in step 203.

それぞれのワークロードが実行中であると判定した場合(ステップ204にてNO)、ステップ206にて、マッピング用システムは、それぞれのワークロードが(ステップ203で計算された)最適なプラットフォーム上で現在実行されているか否かを判定する。言い換えれば、マッピング用システムは、それぞれのワークロードが実行されている現在のプラットフォームが、当該ワークロードについての計算された最適なプラットフォームであるか否かを判定する。 If it is determined that each workload is running (NO in step 204), then in step 206 the mapping system is currently on the optimal platform for each workload (calculated in step 203). Determine if it is running. In other words, the mapping system determines if the current platform on which each workload is running is the calculated optimal platform for that workload.

それぞれのワークロードが、計算された最適なプラットフォーム上で現在実行されていないと判定した場合(ステップ206にてNO)、すなわち、現在のプラットフォームが、それぞれのワークロードについての計算された最適なプラットフォームではない場合、ステップ207にて、マッピング用システムは、当該ワークロードを現在のプラットフォームから、計算された最適なプラットフォームに移動または移行する。 If it is determined that each workload is not currently running on the calculated optimal platform (NO in step 206), that is, the current platform is the calculated optimal platform for each workload. If not, at step 207 the mapping system moves or migrates the workload from the current platform to the calculated optimal platform.

それぞれのワークロードが、計算された最適なプラットフォーム上で現在実行されていると判定した場合(ステップ206にてYES)、すなわち、現在のプラットフォームが、それぞれのワークロードについての計算された最適なプラットフォームである場合、マッピング用システムは、当該ワークロードを現在のプラットフォームから別のプラットフォームに移動または移行することなく、現在のプラットフォーム(当該ワークロードの最適なプラットフォーム)上に保持する。 If it is determined that each workload is currently running on the calculated optimal platform (YES in step 206), that is, the current platform is the calculated optimal platform for each workload. If so, the mapping system keeps the workload on the current platform (optimal platform for the workload) without moving or migrating from the current platform to another platform.

それぞれのワークロードが、計算された最適なプラットフォーム上で現在実行されていると判定した場合(ステップ206にてYES)、ステップ205の後、またはステップ207の後に、マッピング用システムは、ステップ208を実行する。ステップ208にて、マッピング用システムは、すべてのワークロードが(ステップ203で算出された)最適配置に従って配置されているか否かを判定する。 If it is determined that each workload is currently running on the calculated optimal platform (YES in step 206), after step 205 or after step 207, the mapping system will go to step 208. Run. At step 208, the mapping system determines if all workloads are arranged according to the optimal placement (calculated in step 203).

すべてのワークロードが最適配置に従って配置されていると判定した場合(ステップ208にてYES)、マッピング用システムは、サービスとしての複数のプラットフォームに関するコストおよびサービスレベルを考慮した、または最適配置に従った、ワークロードの配置を完了する。ワークロードのすべてが最適配置に従って配置されてはいないと判定した場合(ステップ208にてNO)、マッピング用システムは、ワークロードのすべてが最適な配置に従って配置されるまで、ステップ204~208を繰り返す。 If it is determined that all workloads are deployed according to optimal placement (YES in step 208), the mapping system considers the cost and service level for multiple platforms as a service, or follows optimal placement. , Complete the workload placement. If it determines that all of the workloads are not arranged according to the optimal placement (NO in step 208), the mapping system repeats steps 204-208 until all of the workloads are placed according to the optimal placement. ..

<最適化問題の定式化> <Formulation of optimization problem>

Figure 2022089807000004
Figure 2022089807000005
ここで、プラットフォームインデックスPは、ワークロードWKに最適なプラットフォームを特定し、複数のプラットフォームインデックス{P}は、ワークロードのそれぞれに最適なプラットフォームを特定する。WKNはワークロードの数、PLNはプラットフォームの数を表す。目的関数には以下の制約(constraints)がある。
Figure 2022089807000004
Figure 2022089807000005
Here, the platform index Pi identifies the optimal platform for the workload WK i , and the plurality of platform indexes {P i } identify the optimal platform for each of the workloads. WKN represents the number of workloads and PLN represents the number of platforms. The objective function has the following constraints.

第1の制約は以下の通りである。

Figure 2022089807000006
これは、ベストエフォート(またはソフト)制約である。この制約は、各ワークロードについて、選択されたプラットフォーム上での推定完了時間(EDC)が、要求完了時間(RDC)を超えないことを必要とするものである。 The first constraint is as follows.
Figure 2022089807000006
This is a best effort (or soft) constraint. This constraint requires that, for each workload, the estimated completion time (EDC) on the selected platform does not exceed the required completion time (RDC).

第2の制約は以下の通りである。

Figure 2022089807000007
これは、必須(またはハード)制約である。第2の制約は、各ワークロードについて、選択されたプラットフォーム上で実行するためのコスト(Cost)が、残り予算(RemainingBudget)を超えないことを必要とするものである。 The second constraint is as follows.
Figure 2022089807000007
This is a mandatory (or hard) constraint. The second constraint requires that, for each workload, the cost to run on the selected platform does not exceed the remaining budget (Remaining Budget).

第3の制約は以下の通りである。

Figure 2022089807000008
これは、必須(またはハード)制約である。第3の制約は、すべてのワークロードを各々の選択されたプラットフォーム上で実行するための総コストが、全体予算(OverallBudget)を超えないことを必要とするものである。 The third constraint is as follows.
Figure 2022089807000008
This is a mandatory (or hard) constraint. The third constraint requires that the total cost of running all workloads on each selected platform does not exceed the overall budget.

第4の制約は以下の通りである。

Figure 2022089807000009
これは、必須(またはハード)制約である。第4の制約は、一のワークロードについて選択されたプラットフォームが、当該ワークロードを実行する資格のある複数のプラットフォームの1つであることを必要とするものである。 The fourth constraint is as follows.
Figure 2022089807000009
This is a mandatory (or hard) constraint. The fourth constraint requires that the platform selected for a workload be one of a plurality of platforms eligible to run that workload.

第5の制約は以下の通りである。

Figure 2022089807000010
これは、必須(またはハード)制約である。第5の制約は、一のプラットフォーム上で実行されるワークロードによって当該プラットフォームから消費されるリソースが、ユーザに対する当該プラットフォームのリソース消費上限を超えないこと、または、いずれかのプラットフォームのリソース容量またはリソース消費上限を超えないことを必要とするものである。 The fifth constraint is as follows.
Figure 2022089807000010
This is a mandatory (or hard) constraint. The fifth constraint is that the resources consumed by a workload running on one platform from that platform do not exceed the resource consumption limit of that platform for the user, or the resource capacity or resources of either platform. It is necessary not to exceed the upper limit of consumption.

<最適化問題のアルゴリズム> <Algorithm of optimization problem>

最適化問題は、P、P、...、PWKN(プラットフォームインデックス)を変数とする、目的コスト関数(objective cost function)および制約関数(constraint functions)を含む。目的関数と制約関数のそれぞれが変数P、P、...、PWKNに依存する数学的な方法は、定式化(formulation)によって定義できないため(ただし、これは上述の推定方法に基づいて行列WkPlに格納された値に依存する)、数理計画ソルバー(mathematical programming solvers)はこの最適化問題には適用できない。ここで定義される最適化問題に対しては、局所的に最適な選択を用いて、段階的に大域的最適解(global optimum)へと進んでいく貪欲アルゴリズム(greedy algorithm)のパラダイムが適用可能である。 The optimization problem is P 1 , P 2 , ... .. .. , Includes objective cost function and constraint functions, with PWKN (Platform Index) as variables. The objective function and the constraint function are variables P 1 , P 2 , ... .. .. , Mathematicatical methods that depend on PWKN cannot be defined by formulation (although this depends on the values stored in the matrix WkPl based on the estimation method described above). programming solvers) are not applicable to this optimization problem. For the optimization problem defined here, the paradigm of the greedy algorithm that progresses step by step to the global optimum solution can be applied by using the locally optimal selection. Is.

ワークロードとプラットフォームをマッピングするためのシステム(例えば、図1に示すシステム110)はまず、各ワークロードを、当該ワークロードに関して生じるコストが最も低いプラットフォーム上に配置する。次に、推定完了時間(EDC)が要求完了時間(RDC)を超えるワークロードについて、システムはコストを段階的にインクリメントする。各段階において、マッピング用システムは、アップグレードコスト(upgrade cost)が最も低いワークロードを選択する。ここで、ワークロードのアップグレードは、ワークロードの推定完了時間(EDC)が要求完了時間(RDC)以下になることを可能にするものでなければならない。その後、マッピング用システムは、選択されたワークロードをアップグレードする。各段階において、必須制約およびベストエフォート制約がチェックされる。 A system for mapping a workload to a platform (eg, system 110 shown in FIG. 1) first places each workload on the platform with the lowest cost associated with that workload. The system then increments the cost stepwise for workloads for which the estimated completion time (EDC) exceeds the required completion time (RDC). At each stage, the mapping system selects the workload with the lowest upgrade cost. Here, the workload upgrade must allow the estimated completion time (EDC) of the workload to be less than or equal to the requested completion time (RDC). The mapping system then upgrades the selected workload. At each stage, mandatory and best effort constraints are checked.

最適化問題を解く際には、最新の行列WkPlを入力とし、最適化問題を解いた結果は次の通りである。すなわち、各ワークロードWKに関して、行列WkPlにおける関連プラットフォームインデックスPが算出される。関連プラットフォームインデックスPは、ワークロードWKの実行に最適なプラットフォームを特定する。 When solving the optimization problem, the latest matrix WkPl is input, and the result of solving the optimization problem is as follows. That is, for each workload WK i , the related platform index Pi in the matrix WkPl is calculated. The related platform index Pi identifies the best platform for running the workload WK i .

図3Aおよび図3Bは、本発明の一実施形態による、複数のプラットフォーム上へのワークロード配置を最適化する動作ステップを示すフローチャートである。 3A and 3B are flowcharts showing operation steps for optimizing workload placement on a plurality of platforms according to an embodiment of the present invention.

図3(A)を参照すると、ステップ301にて、ワークロードとプラットフォームをマッピングするためのシステム(例えば、図1に示すシステム110)が、それぞれのワークロードについて、それぞれのワークロードを実行するためのコストが最も低いプラットフォームをそれぞれ特定するプラットフォームインデックスを設定する。各ワークロードWKについて、マッピング用システムは、行列WkPl内に関連プラットフォームインデックスPの値を設定する。かかるプラットフォームインデックスPの値によって特定されるプラットフォームは、ワークロードWKを実行するために生じるコストが最も低い。プラットフォームインデックスPは、以下を満たす。

Figure 2022089807000011
Referring to FIG. 3A, in step 301, the system for mapping the workload and the platform (eg, system 110 shown in FIG. 1) executes each workload for each workload. Set up a platform index that identifies each of the platforms with the lowest cost. For each workload WK i , the mapping system sets the value of the associated platform index Pi in the matrix WkPl . The platform identified by the value of such platform index Pi has the lowest cost of running the workload WK i . The platform index Pi satisfies the following.
Figure 2022089807000011

図3(A)を参照すると、ステップ302にて、マッピング用システムは、予算、プラットフォームの適格性、およびプラットフォームのリソース容量に関する必須制約が満たされているか否かを判定する。マッピング用システムは、必須(またはハード)制約が満たされているか否かをチェックする。必須(またはハード)制約とは、上述した第2~第5の制約である。 Referring to FIG. 3A, in step 302, the mapping system determines whether the required constraints on budget, platform eligibility, and platform resource capacity are met. The mapping system checks whether the required (or hard) constraints are met. The essential (or hard) constraint is the second to fifth constraint described above.

必須制約が満たされていないと判定した場合(ステップ302にてNO)、マッピング用システムは、図3(B)に示すステップ310を実行する。図3(B)を参照すると、ステップ310にて、マッピング用システムは、それぞれのワークロードの以前の配置(previous placements)が必須制約を満たすか否かを判定する。以前の配置とは、以前の反復(previous iteration)における最適化問題の解である。 If it is determined that the required constraint is not satisfied (NO in step 302), the mapping system executes step 310 shown in FIG. 3 (B). Referring to FIG. 3B, at step 310, the mapping system determines whether the previous placements of each workload meet the required constraints. The previous placement is the solution of the optimization problem in the previous iteration.

引き続き図3(B)を参照すると、それぞれのワークロードの以前の配置が必須制約を満たすと判定した場合(ステップ310にてYES)、ステップ311にて、マッピング用システムは、それぞれのワークロードの最適配置として以前の配置を出力する。マッピング用システムは、アルゴリズムの結果として以前の解を使用する。そして、システムはアルゴリズムのステップを完了する。 Continuing to refer to FIG. 3 (B), if it is determined that the previous placement of each workload meets the required constraints (YES in step 310), then in step 311 the mapping system will use the mapping system for each workload. Output the previous placement as the optimal placement. The mapping system uses the previous solution as a result of the algorithm. The system then completes the steps of the algorithm.

引き続き図3(B)を参照すると、それぞれのワークロードの以前の配置が必須制約を満たさないと判定した場合(ステップ310にてNO)、ステップ312にて、マッピング用システムは、それぞれのワークロードに関する最適配置を出力しない。最適化問題の実現可能な解がないということであるが、その理由は以下の通りである。アルゴリズムは、最もコストの低いマッピングから開始する。このマッピングにおいて予算の制約に違反する場合、所与の制約の下では実現可能なソリューションが存在しないことになる。かかるシナリオは、アルゴリズムに対する無効なユーザ入力であると分類できる。このようにして、システムはアルゴリズムのステップを完了する。 Continuing to refer to FIG. 3B, if it is determined that the previous placement of each workload does not meet the required constraints (NO in step 310), then in step 312 the mapping system will have its respective workload. Does not output the optimal placement for. There is no feasible solution to the optimization problem, for the following reasons: The algorithm starts with the lowest cost mapping. If the budget constraint is violated in this mapping, then there is no feasible solution under the given constraint. Such a scenario can be classified as invalid user input to the algorithm. In this way, the system completes the steps of the algorithm.

ここで図3(A)に戻ると、必須制約を満たしていると判定した場合(ステップ302にてYES)、ステップ303にて、マッピング用システムは、それぞれのワークロードの要求完了時間に関するベストエフォート制約を確認し、ベストエフォート制約を満たしていないワークロード群(set of workloads)を決定する。ベストエフォート制約とは、上述した第1の制約である。ワークロード群の各ワークロードは、行列WkPl内のインデックスを用いて特定される。ワークロード群を、WKSと表記する。 Returning to FIG. 3A, if it is determined that the required constraint is satisfied (YES in step 302), in step 303, the mapping system has the best effort regarding the request completion time of each workload. Check the constraints and determine the set of workloads that do not meet the best effort constraints. The best effort constraint is the first constraint described above. Each workload in the workload group is identified using an index in the matrix WkPl. The workload group is referred to as WKS.

図3(A)を参照すると、ステップ304にて、マッピング用システムは、ワークロード群(WKS)が空(empty)であるか否かを判定する。ワークロード群(WKS)が空であることは、要求完了時間(RDC)に関するベストエフォート制約が満たされていることを示す。ワークロード群(WKS)が空であると判定した場合(ステップ304にてYES)、マッピング用システムは、図3(B)に示すステップ313を実行する。図3(B)を参照すると、ステップ313にて、マッピング用システムは、それぞれのワークロードの最適配置として、現在の配置を出力する。現在の配置は、現在の反復(current iteration)における最適化問題の解である。システムは、アルゴリズムの結果として、現在の解を使用する。そして、システムはアルゴリズムのステップを完了する。 Referring to FIG. 3A, in step 304, the mapping system determines whether the workload group (WKS) is empty. An empty workload group (WKS) indicates that the best effort constraint on request completion time (RDC) is met. If it is determined that the workload group (WKS) is empty (YES in step 304), the mapping system executes step 313 shown in FIG. 3 (B). Referring to FIG. 3B, at step 313, the mapping system outputs the current placement as the optimal placement for each workload. The current placement is the solution to the optimization problem in the current iteration. The system uses the current solution as a result of the algorithm. The system then completes the steps of the algorithm.

図3(A)に戻り、ワークロード群(WKS)が空ではないと判定した場合(ステップ304にてNO)、ステップ305にて、マッピング用システムは、ワークロード群(WKS)について、生じるコストが最も低くかつベストエフォート制約を満たすことが可能な候補プラットフォーム群(set of candidate platforms)を決定する。ワークロード群内の各ワークロード(WKS内のWK)について、マッピング用システムは最低コストのプラットフォームを決定する。このプラットフォームにより、ベストエフォート制約が満たされる。候補プラットフォーム群{PC}は以下の通りである。

Figure 2022089807000012
Returning to FIG. 3A and determining that the workload group (WKS) is not empty (NO in step 304), in step 305, the mapping system incurs costs for the workload group (WKS). Determines the set of candidate platforms that are the lowest and can meet the best effort constraints. For each workload in the workload group (WK i in WKS), the mapping system determines the lowest cost platform. This platform meets best effort constraints. The candidate platforms {PC i } are as follows.
Figure 2022089807000012

図3(A)を参照すると、ステップ306にて、マッピング用システムは、ワークロード群(WKS)について、候補プラットフォームを特定するアップグレード後プラットフォームインデックス(upgraded platform indexes)を決定し、アップグレード後コスト(upgraded costs)を計算する。ワークロード群内の各ワークロードWKについて、アップグレード後プラットフォームインデックスPUを以下のように計算する。

Figure 2022089807000013
ワークロード群WKSに含まれるワークロードWKに関するアップグレード後コストは、以下のように示すことができる。
Figure 2022089807000014
Referring to FIG. 3 (A), in step 306, the mapping system determines, for the workload group (WKS), the upgraded platform indexes that identify candidate platforms, and the upgraded cost (upgraded). costs) is calculated. For each workload WK i in the workload group, the post-upgrade platform index PU i is calculated as follows.
Figure 2022089807000013
The post-upgrade cost for the workload WK i included in the workload group WKS can be shown as follows.
Figure 2022089807000014

ワークロード群WKSに含まれる一のワークロードについて、候補プラットフォーム群の中にベストエフォート制約を満たすことが可能なプラットフォームが存在せず、候補プラットフォーム群のいずれのプラットフォームも利用できない場合、システムは、当該ワークロードのアップグレードは不可能であると判断し、当該ワークロードのアップグレード後コストを無効または無限に設定する(例えば、UpgradeCost(WK)=∞)。このようにして、システムは、次回のアルゴリズムの反復において、当該ワークロードがワークロード群WKSに追加されることを回避する。当該ワークロードのアップグレードは、最適化問題を解決するための次回の反復において考慮されない。 If there is no platform in the candidate platforms that can meet the best effort constraint for one workload included in the workload group WKS and none of the platforms in the candidate platforms is available, the system is concerned. It is determined that the workload cannot be upgraded, and the post-upgrade cost of the workload is set to invalid or infinite (for example, UpgradeCost (WK i ) = ∞). In this way, the system avoids adding the workload to the workload group WKS at the next algorithm iteration. The workload upgrade will not be considered in the next iteration to resolve the optimization problem.

図3(A)を参照すると、ステップ307にて、マッピング用システムは、ワークロード群(WKS)が、アップグレード後コストが有効なワークロードを少なくとも1つ含んでいるか否かを判定する。ワークロード群が、アップグレード後コストが有効なワークロードを1つも含んでいないと判定した場合(ステップ307にてNO)、システムは、図3(B)に示すステップ313を実行する。図3(B)を参照すると、ステップ313にて、システムは、現在の配置をそれぞれのワークロードの最適配置として設定する。現在の配置は、現在の反復における最適化問題の解である。システムは、アルゴリズムの結果として、現在の解を使用する。この場合、最適化問題の解をアップグレードする方法はこれ以上存在しない。そして、システムはアルゴリズムのステップを完了する。 Referring to FIG. 3A, at step 307, the mapping system determines if the workload group (WKS) contains at least one workload for which the post-upgrade cost is valid. If the workload group determines that the post-upgrade cost does not contain any valid workload (NO in step 307), the system performs step 313 shown in FIG. 3 (B). Referring to FIG. 3B, at step 313, the system sets the current placement as the optimal placement for each workload. The current placement is the solution to the optimization problem in the current iteration. The system uses the current solution as a result of the algorithm. In this case, there is no better way to upgrade the solution of the optimization problem. The system then completes the steps of the algorithm.

図3(A)に戻り、ワークロード群が、アップグレード後コストが有効なワークロードを少なくとも1つ含んでいると判定した場合(ステップ307にてYES)、ステップ308にて、マッピング用システムは、アップグレード後コストが有効な1つ以上のワークロードから、アップグレード後コストが最も低いワークロードを選択する。ワークロード群(WKS)から、アップグレード後コストが最も低いワークロードが選択される。アップグレード後コストが最も低いワークロードを、WKと表記する。WKは、以下の式を満たす。

Figure 2022089807000015
WKは、最適化問題を解く今回の反復で発見された最も費用対効果の高いワークロードである。 Returning to FIG. 3A, if the workload group determines that it contains at least one post-upgrade cost-effective workload (YES in step 307), in step 308, the mapping system Select the workload with the lowest post-upgrade cost from one or more workloads with the lowest post-upgrade cost. From the workload group (WKS), the workload with the lowest post-upgrade cost is selected. The workload with the lowest post-upgrade cost is referred to as WK t . WK t satisfies the following equation.
Figure 2022089807000015
WK t is the most cost-effective workload found in this iteration of solving an optimization problem.

図3(A)を参照すると、ステップ309にて、マッピング用システムは、アップグレード後コストが最も低いワークロードに対してアップグレード後プラットフォームインデックスを設定することにより、当該ワークロードをアップグレードする。システムは、P=PUを設定することにより、WKをアップグレードする。ここで、PUはアップグレード後プラットフォームインデックスであり、PはWKについて選択された最新のプラットフォームインデックスである。 Referring to FIG. 3A, in step 309, the mapping system upgrades the workload by setting the post-upgrade platform index for the workload with the lowest post-upgrade cost. The system upgrades WK t by setting P t = PU t . Here, PU t is the post-upgrade platform index and P t is the latest platform index selected for WK t .

ステップ309の後、マッピング用システムは、アルゴリズムの次回の反復としてステップ302を繰り返し、別の最も費用対効果の高いワークロードを発見する。マッピング用システムは、それぞれのプラットフォーム上へのそれぞれのワークロードの最適な配置が見つかるまで、最適化問題を解く次回の反復を実行する。 After step 309, the mapping system iterates step 302 as the next iteration of the algorithm to discover another most cost-effective workload. The mapping system performs the next iteration of solving the optimization problem until it finds the optimal placement of each workload on each platform.

一のワークロードのアップグレードは、最適化問題のアルゴリズムにおいて一度だけ行うことができ、アップグレード後のワークロードは、アルゴリズムの次回の反復において再検討されない。したがって、アルゴリズムの反復回数は、ワークロードの数に限られる。各反復において、ワークロードの線形スキャン(linear scan)を行うことができる。次に、最適化問題のアルゴリズムは、アップグレードするワークロードを選択し、次回の反復に進む。ワークロードごとのすべての計算は一度で済み、すべてのワークロードを考慮した制約条件のみが、反復ごとに再計算される必要がある。 An upgrade of one workload can only be done once in the algorithm of the optimization problem, and the post-upgrade workload will not be reviewed in the next iteration of the algorithm. Therefore, the number of algorithm iterations is limited to the number of workloads. At each iteration, a linear scan of the workload can be performed. The optimization problem algorithm then selects the workload to upgrade and proceeds to the next iteration. All calculations per workload need to be done once, and only constraints that take into account all workloads need to be recalculated per iteration.

最適化問題のアルゴリズムは、ワークロードごとのすべての独立した計算を、関連するすべてのワークロードについて同時に実行することで、並行して行うことができる。アルゴリズムをさらに最適化する方法として、ワークロードおよびプラットフォームの両方について、種々の制約に関するすべての基本データおよびカウンタを維持し、変更が行われた際にこのデータおよびカウンタをインクリメンタルに更新することができる。これにより、制約の計算をより速く行うことができる。 The algorithm of the optimization problem can be done in parallel by performing all the independent calculations for each workload at the same time for all the associated workloads. As a way to further optimize the algorithm, all basic data and counters for various constraints can be maintained for both workloads and platforms, and these data and counters can be updated incrementally as changes are made. .. This allows the constraint calculation to be performed faster.

図4は、本発明の一実施形態による、コンピュータ装置またはサーバ400のコンポーネントを示す図である。なお、図4は、1つの実施形態の例示に過ぎず、異なる実施形態を実施可能な環境に対するいかなる制限も意味しない。 FIG. 4 is a diagram showing a component of a computer device or a server 400 according to an embodiment of the present invention. Note that FIG. 4 is merely an example of one embodiment and does not imply any restrictions on the environment in which different embodiments can be implemented.

図4を参照すると、コンピュータ装置またはサーバ400は、1つ以上のプロセッサ420、メモリ410、および1つ以上の有形記憶装置430を含む。図4では、コンピュータ装置またはサーバ400の上述のコンポーネント間の通信を、符号490で示す。メモリ410は、1つ以上のROM411、1つ以上のRAM413、および1つ以上のキャッシュ415を含む。1つ以上のオペレーティングシステム431および1つ以上のコンピュータプログラム433は、コンピュータ可読有形記憶装置430上に存在する。 Referring to FIG. 4, the computer device or server 400 includes one or more processors 420, memory 410, and one or more tangible storage devices 430. In FIG. 4, the communication between the above-mentioned components of the computer device or the server 400 is indicated by reference numeral 490. The memory 410 includes one or more ROMs 411, one or more RAMs 413, and one or more caches 415. One or more operating systems 431 and one or more computer programs 433 reside on a computer-readable tangible storage device 430.

コンピュータ装置またはサーバ400はさらに、1つ以上のI/Oインタフェース450を含む。I/Oインタフェース450は、コンピュータ装置またはサーバ400に接続可能な1つ以上の外部装置460とのデータの入出力を可能にする。コンピュータ装置またはサーバ400はさらに、コンピュータ装置またはサーバ400とコンピュータネットワークとの間の通信のための1つ以上のネットワークインタフェース440を含む。 The computer device or server 400 further includes one or more I / O interfaces 450. The I / O interface 450 allows data to be input and output to and from a computer device or one or more external devices 460 that can be connected to the server 400. The computer device or server 400 further includes one or more network interfaces 440 for communication between the computer device or server 400 and the computer network.

本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。 The present invention can be an integrated system, method or computer program product or a combination thereof at any possible level of technical detail. The computer program product may include a computer-readable storage medium that stores computer-readable program instructions for causing the processor to perform aspects of the invention.

コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。 The computer-readable storage medium can be a tangible device capable of holding and storing the instructions used by the instruction executing device. The computer-readable storage medium may be, for example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or an appropriate combination thereof. More specific examples of computer readable storage media include portable computer diskettes, hard disks, RAMs, ROMs, EPROMs (or flash memories), SRAMs, CD-ROMs, DVDs, memory sticks, floppy disks, punch cards or grooves. Examples include mechanically coded devices that record instructions in raised structures and the like, and appropriate combinations thereof. Computer-readable storage devices as used herein are radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (eg, optical pulses through optical fiber cables). Or it should not be interpreted as a transient signal itself, such as an electrical signal transmitted over a wire.

本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピュータ装置/処理装置へダウンロードすることができる。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくはワイヤレスネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部記憶装置へダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピュータ装置/処理装置内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、各々のコンピュータ装置/処理装置におけるコンピュータ可読記憶媒体に記憶するために転送する。 The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computer device / processing device. Alternatively, it can be downloaded to an external computer or external storage device via a network (eg, the Internet, LAN, WAN or wireless network or a combination thereof). The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers or edge servers or combinations thereof. A network adapter card or network interface in each computer device / processing device receives computer-readable program instructions from the network and stores the computer-readable program instructions in a computer-readable storage medium in each computer device / processing device. Forward.

本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、およびCプログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。 The computer-readable program instructions for performing the operations of the present invention are assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcodes, firmware instructions, state setting data, integrated circuit configuration data, or , Source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as SmallTalk and C ++, and procedural programming languages such as C programming languages and similar programming languages. It can be either. Computer-readable program instructions can be executed entirely on the user's computer or partially on the user's computer as a stand-alone software package. Alternatively, it can be run partially on the user's computer and partially on the remote computer, or entirely on the remote computer or server. In the latter case, the remote computer may connect to the user's computer via any type of network, including LAN and WAN, or to an external computer (eg, over the Internet using an Internet service provider). You may connect. In some embodiments, electronic circuits including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), programmable logic arrays (PLAs) are used to customize the electronic circuits for the purposes of carrying out aspects of the invention. By using the state information of the computer-readable program instruction, the computer-readable program instruction can be executed.

本発明の各態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実行することができる。 Each aspect of the invention is described herein with reference to a flow chart and / or block diagram of a method, apparatus (system), and computer program product according to an embodiment of the invention. Each block in the flow chart and / or block diagram, and a combination of multiple blocks in the flow chart and / or block diagram, can be executed by computer-readable program instructions.

上記のコンピュータ可読プログラム命令は、機械を生産するために、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサに提供してよい。これにより、かかるコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を形成する。上記のコンピュータ可読プログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他の装置またはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶してよい。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行する命令を含む製品を構成する。 The computer-readable program instructions described above may be provided to the processor of a computer or other programmable data processing device to produce a machine. Thereby, these instructions executed through the processor of such a computer or other programmable data processing device perform a function / operation specified by one or more blocks in a flowchart, a block diagram, or both. Form the means of. The computer-readable program instructions described above may be further stored in a computer-readable storage medium that can be instructed to function in a particular manner for a computer, programmable data processing device or other device or a combination thereof. Thereby, the computer-readable storage medium in which the instructions are stored constitutes a product containing instructions that execute a function / operation mode identified by one or more blocks in a flowchart, a block diagram, or both.

また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置、または他の装置にロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他の装置上で実行することにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他の装置上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。 Also, a computer execution process by loading computer-readable program instructions into a computer, other programmable device, or other device and performing a series of operating steps on that computer, other programmable device, or other device. May be generated. Thereby, an instruction executed on the computer, another programmable device, or another device performs a function / operation specified by one or more blocks in a flowchart, a block diagram, or both.

図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行してもよい。例えば、連続して示される2つのブロックは、実際には、関係する機能に応じて、1つの工程として達成してもよいし、同時もしくは略同時に実行してもよいし、部分的もしくは全体的に時間的に重複した態様で実行してもよいし、または場合により逆順で実行してもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能または動作を行う専用ハードウェアベースのシステムによって、または専用ハードウェアとコンピュータ命令との組み合わせによって実行することができる。 Flow charts and block diagrams in the drawings show the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the invention. In this regard, each block in a flowchart or block diagram can represent a module, segment, or portion of an instruction that contains one or more executable instructions to perform a particular logical function. In some other implementations, the functions shown in the blocks may be performed in a different order than shown in each figure. For example, two blocks shown in succession may actually be achieved as one step, simultaneously or substantially simultaneously, or partially or wholly, depending on the functions involved. It may be executed in a time-overlapping manner, or may be executed in the reverse order as the case may be. It should be noted that each block in the block diagram and / or flowchart, and the combination of multiple blocks in the block diagram or flowchart or both, may be by a dedicated hardware-based system performing a specific function or operation, or with dedicated hardware. It can be executed in combination with computer instructions.

本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載した教示の実装形態はクラウドコンピューティング環境に限定されない。むしろ、本発明の実施形態は、現在公知のまたは将来開発される他の任意の種類のコンピュータ環境と共に実施することができる。 Although this disclosure includes a detailed description of cloud computing, the implementation of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of the invention can be practiced with any other type of computer environment currently known or developed in the future.

クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの実装モデルを含むことがある。 Cloud computing enables easy and on-demand network access to shared pools of configurable computing resources (eg networks, network bandwidth, servers, processing, memory, storage devices, applications, virtual machines and services). It is a model of service provision to ensure that it can be quickly provisioned and released with minimal administrative effort or interaction with a minimal service provider. This cloud model may include at least 5 characteristics, at least 3 service models, and at least 4 implementation models.

特性は以下の通りである。 The characteristics are as follows.

オンデマンド・セルフサービス:クラウドのコンシューマは、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。 On-demand self-service: Cloud consumers unilaterally prepare computing power such as server time and network storage as needed, without the need for human interaction with service providers. Can be done.

ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。 Broad network access: Computing power is available over the network and can be accessed through standard mechanisms. This facilitates utilization by heterogeneous thin or thick client platforms (eg mobile phones, laptops, PDAs).

リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数のコンシューマに提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般にコンシューマは、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただしコンシューマは、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。 Resource pooling: Provider's computing resources are pooled and offered to multiple consumers using a multi-tenant model. Various physical and virtual resources are dynamically allocated and reassigned on demand. Consumers generally do not manage or know the exact location of the resources provided, so they have a sense of location independence. However, consumers may be able to locate at higher levels of abstraction (eg, country, state, data center).

迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。コンシューマにとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。 Rapid Elasticity: Computing power can be prepared quickly and flexibly, so that in some cases it can be automatically scaled out immediately, or released quickly and scaled in immediately. .. To consumers, the computing power available for preparation often appears to be unlimited and can be purchased in any quantity at any time.

測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供することができる。 Services Measured: Cloud systems automatically utilize resource usage by leveraging some level of abstraction-level measurement capabilities appropriate for the type of service (eg storage, processing, bandwidth, active user accounts). Control and optimize. Resource usage can be monitored, controlled, and reported to provide transparency to both providers and consumers of the services utilized.

サービスモデルは以下の通りである。 The service model is as follows.

サービスとしてのソフトウェア(SaaS):コンシューマに提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。 Software as a Service (Software as a Service): A feature provided to consumers is the availability of provider applications running on the cloud infrastructure. The application can be accessed from various client devices via a thin client interface such as a web browser (eg, webmail). Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or even individual application features. However, this does not apply to user-specific limited application configuration settings.

サービスとしてのプラットフォーム(PaaS):コンシューマに提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、コンシューマが作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。 Platform as a Service (PaaS): The functionality provided to the consumer is to deploy the application created or acquired by the consumer to the cloud infrastructure using the programming languages and tools supported by the provider. .. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, and storage, but they can control the deployed applications and, in some cases, the configuration of their hosting environment.

サービスとしてのインフラストラクチャ(IaaS):コンシューマに提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアをコンシューマが展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。コンシューマは、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。 Infrastructure as a Service (IaaS): The capabilities provided to consumers are processors, storage, networks, and other basic computing resources that allow consumers to deploy and run any software, including operating systems and applications. Is to prepare. Consumers do not manage or control the underlying cloud infrastructure, but can control the operating system, storage, and deployed applications, and in some cases partially some network components (eg, host firewalls). Can be controlled.

展開モデルは以下の通りである。 The deployment model is as follows.

プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織またはサードパーティーによって管理することができ、オンプレミスまたはオフプレミスで存在することができる。 Private cloud: This cloud infrastructure is dedicated to a specific organization. This cloud infrastructure can be managed by the organization or a third party and can exist on-premises or off-premises.

コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。 Community Cloud: This cloud infrastructure is shared by multiple organizations and supports specific communities with common interests (eg, missions, security requirements, policies, and compliance). This cloud infrastructure can be managed by the organization or a third party and can exist on-premises or off-premises.

パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。 Public Cloud: This cloud infrastructure is provided to the general public and large industry groups and is owned by organizations that sell cloud services.

ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。 Hybrid Cloud: This cloud infrastructure is a combination of two or more cloud models (private, community or public). Each model retains its own entity, but is bound by standard or individual techniques to provide data and application portability (eg, cloud bursting for load balancing between clouds).

クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。 A cloud computing environment is a service-oriented environment with an emphasis on statelessness, low coupling, modularity and semantic interoperability. At the core of cloud computing is an infrastructure that includes a network of interconnected nodes.

図5に、例示的なクラウドコンピューティング環境50を示す。図示するように、クラウドコンピューティング環境50は1つ以上のクラウドコンピューティングノード10を含む。これらに対して、クラウドコンシューマが使用するローカルコンピュータ装置(モバイル装置54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード10は互いに通信することができる。ノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つ以上のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウドコンシューマはこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、コンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード10およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。 FIG. 5 shows an exemplary cloud computing environment 50. As shown in the figure, the cloud computing environment 50 includes one or more cloud computing nodes 10. With respect to these, a local computer device used by a cloud consumer (such as a mobile device 54A, a desktop computer 54B, a laptop computer 54C, or an automobile computer system 54N or a combination thereof) can communicate with each other. Nodes 10 can communicate with each other. Nodes 10 can be physically or virtually grouped (not shown) in one or more networks, such as, for example, the private, community, public or hybrid clouds described above, or a combination thereof. This allows the cloud computing environment 50 to provide infrastructure, platforms or software as services or a combination thereof, for which cloud consumers do not need to maintain resources on local computer equipment. The types of computer devices 54A to N are merely examples, and the computing node 10 and the cloud computing environment 50 may use any type of network, a network addressable connection (for example, using a web browser), or both. It should be understood that it is possible to communicate with any kind of electronic device through.

次に、クラウドコンピューティング環境50(図5)によって提供される機能的抽象化レイヤのセットを図6に示す。なお、図6に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。 Next, FIG. 6 shows a set of functional abstraction layers provided by the cloud computing environment 50 (FIG. 5). It should be understood in advance that the components, layers and functions shown in FIG. 6 are merely examples, and the embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding features are provided.

ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。 The hardware and software layer 60 includes hardware and software components. Examples of hardware components include a mainframe 61, a reduced instruction set computer (RISC) architecture-based server 62, a server 63, a blade server 64, a storage device 65, and a network and network component 66. In some embodiments, the software components include network application server software 67 and database software 68.

仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75などの仮想エンティティを提供することができる。 The virtualization layer 70 provides an abstraction layer. From that layer, virtual entities such as virtual servers 71, virtual storage 72, virtual networks 73 including virtual private networks, virtual applications and operating systems 74, and virtual clients 75 can be provided.

一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含むことができる。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウドコンシューマおよびタスクの識別確認を可能にする。ユーザポータル83は、コンシューマおよびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。 As an example, the management layer 80 can provide the following functions. Resource preparation 81 enables the dynamic procurement of computing resources and other resources used to perform tasks within a cloud computing environment. Weighing and pricing 82 enables cost tracking as resources are used within a cloud computing environment and billing or invoice delivery for consumption of these resources. As an example, these resources can include licenses for application software. Security allows for identification of cloud consumers and tasks, as well as protection for data and other resources. The user portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 allows the allocation and management of cloud computing resources to meet the requested service level. Service Level Agreements (SLA) Planning and Implementation 85 will enable the advance arrangement and procurement of cloud computing resources that are expected to be needed in the future in accordance with SLA.

ワークロードレイヤ90は、クラウドコンピューティング環境の利用が可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、ならびに、機能96が含まれる。機能96は、サービスとしての複数のプラットフォーム上にワークロードを配置するための機能である。 The workload layer 90 provides an example of a function that can be used in a cloud computing environment. Examples of workloads and features available from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom education delivery 93, data analysis processing 94, transaction processing 95, and function 96. Is done. Function 96 is a function for arranging a workload on a plurality of platforms as a service.

Claims (20)

サービスとしての複数のプラットフォームを含むシステムにおいて、プラットフォーム上でワークロードを実行する際の属性を推定するためのコンピュータ実装方法であって、
それぞれのワークロードの定義と、当該それぞれのワークロードのセットを実行する資格のあるそれぞれのプラットフォームの定義とを受信することと、
前記それぞれのワークロードおよび前記それぞれのプラットフォームを、当該それぞれのプラットフォーム上で当該それぞれのワークロードを実行する際の属性にマッピングすることと、
前記属性を推定し、当該属性を行列に格納することと、
前記行列を修正するトリガーイベントに応じて、当該行列内の前記属性を更新することと、
を含む、コンピュータ実装方法。
A computer implementation method for estimating attributes when running workloads on platforms in a system that includes multiple platforms as a service.
Receiving the definition of each workload and the definition of each platform that is eligible to run that set of workloads.
Mapping each of the above workloads and each of the above platforms to the attributes of running the respective workloads on the respective platforms, and
Estimating the attribute and storing the attribute in a matrix,
Updating the attributes in the matrix in response to a trigger event that modifies the matrix.
Computer implementation methods, including.
前記属性の1つとして、前記それぞれのプラットフォーム上で前記それぞれのワークロードを実行するコストを推定することをさらに含む、
請求項1に記載のコンピュータ実装方法。
One of the attributes further comprises estimating the cost of running each of the workloads on each of the platforms.
The computer mounting method according to claim 1.
前記属性の1つとして、前記それぞれのプラットフォーム上で前記それぞれのワークロードを完了するまでの推定時間を決定することをさらに含む、
請求項1に記載のコンピュータ実装方法。
One of the attributes further comprises determining the estimated time to complete each of the workloads on each of the platforms.
The computer mounting method according to claim 1.
前記属性の1つとして、前記それぞれのプラットフォーム上で実行される前記それぞれのワークロードのリソース要件を決定することをさらに含む、
請求項1に記載のコンピュータ実装方法。
One of the attributes further comprises determining the resource requirements of each of the workloads running on each of the platforms.
The computer mounting method according to claim 1.
現在実行中のワークロードについて、前記属性に移行コストを追加することをさらに含み、
前記移行コストは、前記現在実行中のワークロードを現在のプラットフォームから当該現在実行中のワークロードにとって最適なプラットフォームに移行するためのコストである、
請求項1に記載のコンピュータ実装方法。
For workloads currently running, it further includes adding a migration cost to the attributes.
The migration cost is the cost of migrating the currently running workload from the current platform to the optimal platform for the currently running workload.
The computer mounting method according to claim 1.
実行属性およびリソース要件の類似性に基づいて、前記それぞれのワークロードを1つ以上のワークロード種類に分類することと、
前記1つ以上のワークロード種類のそれぞれについて、前記属性に関する集約的な情報を決定し、記憶することと、
前記集約的な情報を用いて、前記1つ以上のワークロード種類のうち1つに関連付けられる新たなワークロードを実行する際の前記属性を推定することと、をさらに含む、
請求項1に記載のコンピュータ実装方法。
To classify each of the above workloads into one or more workload types based on the similarity of execution attributes and resource requirements.
Determining and storing aggregated information about the attributes for each of the one or more workload types.
Using the aggregated information, further comprising estimating said attributes when running a new workload associated with one of said one or more workload types.
The computer mounting method according to claim 1.
一のワークロードを実行するためのリソース消費およびコスト情報を一のプラットフォームから受信した場合に、当該リソース消費およびコスト情報を用いて、当該ワークロードが関連付けられている一のワークロード種類に関する前記集約的な情報を更新することをさらに含む、
請求項6に記載のコンピュータ実装方法。
When resource consumption and cost information for executing a workload is received from one platform, the resource consumption and cost information is used to describe the aggregation for one workload type with which the workload is associated. Including further updating information,
The computer mounting method according to claim 6.
一のワークロードを実行するためのリソース消費およびコスト情報を一のプラットフォームから受信しない場合に、
(1)前記プラットフォーム上で前記ワークロードを実行しながら、当該ワークロードを実行するための前記リソース消費およびコスト情報を収集する、
(2)前記それぞれのプラットフォームにおける他のプラットフォームに対する前記ワークロードのリソース消費割合を抽出し、当該それぞれのプラットフォームにおける当該他のプラットフォームのリソース消費およびコスト情報に基づき、当該ワークロードのリソース消費およびコスト情報を決定する、
(3)ユーザ入力を受信する
のうちいずれかの方法で、前記リソース消費およびコスト情報を決定することと、
前記リソース消費およびコスト情報を用いて、前記ワークロードが関連付けられている一のワークロード種類に関する前記集約的な情報を更新することと、をさらに含む、
請求項6に記載のコンピュータ実装方法。
If you do not receive resource consumption and cost information to run one workload from one platform,
(1) While executing the workload on the platform, collect the resource consumption and cost information for executing the workload.
(2) The resource consumption and cost information of the workload is extracted based on the resource consumption and cost information of the other platform in the respective platforms by extracting the resource consumption ratio of the workload to the other platforms in the respective platforms. To decide,
(3) Determining the resource consumption and cost information by one of the methods of receiving user input, and
It further comprises updating the aggregated information about one workload type with which the workload is associated with the resource consumption and cost information.
The computer mounting method according to claim 6.
前記それぞれのワークロードをスキャンすることと、
新たなワークロードが追加されているか否かを検出することと、
現在実行中のワークロードに関する1つ以上の要件が変更されているか否かを検出することと、
前記それぞれのワークロードの1つが処理を完了したか否かを検出することと、
前記それぞれのプラットフォームをスキャンすることと、
新たなプラットフォームが追加されているか否かを検出することと、
前記それぞれのプラットフォームの1つで発生するコストが変更されているか否かを検出することと、
前記それぞれのプラットフォームの前記1つにおける1つ以上のリソースが変更されているか否かを検出することと、
前記それぞれのプラットフォームの前記1つが削除されているか否かを検出することと、
前記新たなワークロードが追加される、前記現在実行中のワークロードに関する前記1つ以上の要件が変更される、前記それぞれのワークロードの前記1つが処理を完了する、前記新たなプラットフォームが追加される、前記それぞれのプラットフォームの前記1つで発生する前記コストが変更される、前記1つ以上のリソースが変更される、前記それぞれのプラットフォームの前記1つが削除される、のうち少なくとも1つが発生した場合に、前記行列を修正する前記トリガーイベントが検出されたと判定することと、をさらに含む、
請求項1に記載のコンピュータ実装方法。
Scanning each of the above workloads and
Detecting if new workloads have been added and
Detecting whether one or more requirements for the currently running workload have changed, and
Detecting whether one of each of the above workloads has completed processing,
Scanning each of the above platforms and
Detecting if a new platform has been added and
Detecting whether the costs incurred on one of the above platforms have changed, and
To detect whether one or more resources in said one of each of the said platforms have changed.
Detecting whether or not the one of the respective platforms has been deleted,
The new platform is added, the one or more requirements for the currently running workload are modified, the one of the respective workloads completes the process, the new platform is added. At least one of the costs incurred on the one of the respective platforms is changed, the one or more resources are modified, and the one of the respective platforms is deleted. In the case of further including determining that the trigger event that modifies the matrix has been detected.
The computer mounting method according to claim 1.
前記行列内の情報に基づき、前記それぞれのプラットフォーム上への前記それぞれのワークロードの最適な配置が決定され、
前記最適な配置に基づき、前記それぞれのプラットフォーム上に前記それぞれのワークロードが配置される、
請求項1に記載のコンピュータ実装方法。
Based on the information in the matrix, the optimal placement of each of the workloads on each of the platforms is determined.
Based on the optimal placement, each of the above workloads will be placed on each of the above platforms.
The computer mounting method according to claim 1.
サービスとしての複数のプラットフォームを含むシステムにおいて、プラットフォーム上でワークロードを実行する際の属性を推定するためのコンピュータプログラム製品であって、当該コンピュータプログラム製品は、プログラム命令を具備するコンピュータ可読記憶媒体を含み、当該プログラム命令は1つ以上のプロセッサによって実行可能であり、当該プログラム命令は、
それぞれのワークロードの定義と、当該それぞれのワークロードのセットを実行する資格のあるそれぞれのプラットフォームの定義とを受信することと、
前記それぞれのワークロードおよび前記それぞれのプラットフォームを、当該それぞれのプラットフォーム上で当該それぞれのワークロードを実行する際の属性にマッピングすることと、
前記属性を推定し、当該属性を行列に格納することと、
前記行列を修正するトリガーイベントに応じて、当該行列内の前記属性を更新することと、
を実行可能である、コンピュータプログラム製品。
In a system including multiple platforms as a service, a computer program product for estimating attributes when executing a workload on the platform, the computer program product is a computer-readable storage medium including program instructions. Including, the program instruction can be executed by one or more processors, and the program instruction is.
Receiving the definition of each workload and the definition of each platform that is eligible to run that set of workloads.
Mapping each of the above workloads and each of the above platforms to the attributes of running the respective workloads on the respective platforms, and
Estimating the attribute and storing the attribute in a matrix,
Updating the attributes in the matrix in response to a trigger event that modifies the matrix.
A computer program product that can be executed.
前記属性の1つとして、前記それぞれのプラットフォーム上で前記それぞれのワークロードを実行するコストを推定することを実行可能なプログラム命令をさらに含む、
請求項11に記載のコンピュータプログラム製品。
As one of the attributes, it further comprises a program instruction capable of estimating the cost of running each of the workloads on each of the platforms.
The computer program product according to claim 11.
前記属性の1つとして、前記それぞれのプラットフォーム上で前記それぞれのワークロードを完了するまでの推定時間を決定することを実行可能なプログラム命令をさらに含む、
請求項11に記載のコンピュータプログラム製品。
As one of the attributes, further comprising a program instruction capable of determining the estimated time to complete each of the workloads on each of the platforms.
The computer program product according to claim 11.
前記属性の1つとして、前記それぞれのプラットフォーム上で実行される前記それぞれのワークロードのリソース要件を決定することを実行可能なプログラム命令をさらに含む、
請求項11に記載のコンピュータプログラム製品。
As one of the attributes, it further comprises a program instruction capable of determining the resource requirements of each of the workloads running on each of the platforms.
The computer program product according to claim 11.
現在実行中のワークロードについて、前記属性に移行コストを追加することを実行可能なプログラム命令をさらに含み、
前記移行コストは、前記現在実行中のワークロードを現在のプラットフォームから当該現在実行中のワークロードにとって最適なプラットフォームに移行するためのコストである、
請求項11に記載のコンピュータプログラム製品。
For the workload currently running, it further contains program instructions that can be executed to add a migration cost to the attributes.
The migration cost is the cost of migrating the currently running workload from the current platform to the optimal platform for the currently running workload.
The computer program product according to claim 11.
実行属性およびリソース要件の類似性に基づいて、前記それぞれのワークロードを1つ以上のワークロード種類に分類することと、
前記1つ以上のワークロード種類のそれぞれについて、前記属性に関する集約的な情報を決定し、記憶することと、
前記集約的な情報を用いて、前記1つ以上のワークロード種類のうち1つに関連付けられる新たなワークロードを実行する際の前記属性を推定することと、を実行可能なプログラム命令をさらに含む、
請求項11に記載のコンピュータプログラム製品。
To classify each of the above workloads into one or more workload types based on the similarity of execution attributes and resource requirements.
Determining and storing aggregated information about the attributes for each of the one or more workload types.
It further includes program instructions that can use the aggregated information to estimate the attributes when executing a new workload associated with one of the one or more workload types, and to execute. ,
The computer program product according to claim 11.
一のワークロードを実行するためのリソース消費およびコスト情報を一のプラットフォームから受信した場合に、当該リソース消費およびコスト情報を用いて、当該ワークロードが関連付けられている一のワークロード種類に関する前記集約的な情報を更新することを実行可能なプログラム命令をさらに含む、
請求項16に記載のコンピュータプログラム製品。
When resource consumption and cost information for running a workload is received from a platform, the resource consumption and cost information is used to the aggregate for one workload type with which the workload is associated. Includes additional program instructions that can be executed to update specific information,
The computer program product according to claim 16.
一のワークロードを実行するためのリソース消費およびコスト情報を一のプラットフォームから受信しない場合に、
(1)前記プラットフォーム上で前記ワークロードを実行しながら、当該ワークロードを実行するための前記リソース消費およびコスト情報を収集する、
(2)前記それぞれのプラットフォームにおける他のプラットフォームに対する前記ワークロードのリソース消費割合を抽出し、当該それぞれのプラットフォームにおける当該他のプラットフォームのリソース消費およびコスト情報に基づき、当該ワークロードのリソース消費およびコスト情報を決定する、
(3)ユーザ入力を受信する
のうちいずれかの方法で、前記リソース消費およびコスト情報を決定することと、
前記リソース消費およびコスト情報を用いて、前記ワークロードが関連付けられている一のワークロード種類に関する前記集約的な情報を更新することと、を実行可能なプログラム命令をさらに含む、
請求項16に記載のコンピュータプログラム製品。
If you do not receive resource consumption and cost information to run one workload from one platform,
(1) While executing the workload on the platform, collect the resource consumption and cost information for executing the workload.
(2) The resource consumption and cost information of the workload is extracted based on the resource consumption and cost information of the other platform in the respective platforms by extracting the resource consumption ratio of the workload to the other platforms in the respective platforms. To decide,
(3) Determining the resource consumption and cost information by one of the methods of receiving user input, and
The resource consumption and cost information is used to update the aggregated information about one workload type with which the workload is associated, and further includes program instructions that can be executed.
The computer program product according to claim 16.
前記それぞれのワークロードをスキャンすることと、
新たなワークロードが追加されているか否かを検出することと、
現在実行中のワークロードに関する1つ以上の要件が変更されているか否かを検出することと、
前記それぞれのワークロードの1つが処理を完了したか否かを検出することと、
前記それぞれのプラットフォームをスキャンすることと、
新たなプラットフォームが追加されているか否かを検出することと、
前記それぞれのプラットフォームの1つで発生するコストが変更されているか否かを検出することと、
前記それぞれのプラットフォームの前記1つにおける1つ以上のリソースが変更されているか否かを検出することと、
前記それぞれのプラットフォームの前記1つが削除されているか否かを検出することと、
前記新たなワークロードが追加される、前記現在実行中のワークロードに関する前記1つ以上の要件が変更される、前記それぞれのワークロードの前記1つが処理を完了する、前記新たなプラットフォームが追加される、前記それぞれのプラットフォームの前記1つで発生する前記コストが変更される、前記1つ以上のリソースが変更される、前記それぞれのプラットフォームの前記1つが削除される、のうち少なくとも1つが発生した場合に、前記行列を修正する前記トリガーイベントが検出されたと判定することと、を実行可能なプログラム命令をさらに含む、
請求項11に記載のコンピュータプログラム製品。
Scanning each of the above workloads and
Detecting if new workloads have been added and
Detecting whether one or more requirements for the currently running workload have changed, and
Detecting whether one of each of the above workloads has completed processing,
Scanning each of the above platforms and
Detecting if a new platform has been added and
Detecting whether the costs incurred on one of the above platforms have changed, and
To detect whether one or more resources in said one of each of the said platforms have changed.
Detecting whether or not the one of the respective platforms has been deleted,
The new platform is added, the one or more requirements for the currently running workload are changed, the one of the respective workloads completes the process, the new platform is added. At least one of the costs incurred on the one of the respective platforms is changed, the one or more resources are modified, and the one of the respective platforms is deleted. In some cases, it further comprises a program instruction capable of determining that the trigger event that modifies the matrix has been detected.
The computer program product according to claim 11.
前記行列内の情報に基づき、前記それぞれのプラットフォーム上への前記それぞれのワークロードの最適な配置が決定され、
前記最適な配置に基づき、前記それぞれのプラットフォーム上に前記それぞれのワークロードが配置される、
請求項11に記載のコンピュータプログラム製品。
Based on the information in the matrix, the optimal placement of each of the workloads on each of the platforms is determined.
Based on the optimal placement, each of the above workloads will be placed on each of the above platforms.
The computer program product according to claim 11.
JP2021197244A 2020-12-06 2021-12-03 Computer-implemented method and computer program product (estimating attributes of running workloads on platforms in system including multiple platforms as service) Pending JP2022089807A (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US17/113,102 2020-12-06
US17/113,100 US11366694B1 (en) 2020-12-06 2020-12-06 Estimating attributes of running workloads on platforms in a system of multiple platforms as a service
US17/113,098 US11704156B2 (en) 2020-12-06 2020-12-06 Determining optimal placements of workloads on multiple platforms as a service in response to a triggering event
US17/113,098 2020-12-06
US17/113,100 2020-12-06
US17/113,102 US11693697B2 (en) 2020-12-06 2020-12-06 Optimizing placements of workloads on multiple platforms as a service based on costs and service levels

Publications (1)

Publication Number Publication Date
JP2022089807A true JP2022089807A (en) 2022-06-16

Family

ID=81989196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021197244A Pending JP2022089807A (en) 2020-12-06 2021-12-03 Computer-implemented method and computer program product (estimating attributes of running workloads on platforms in system including multiple platforms as service)

Country Status (1)

Country Link
JP (1) JP2022089807A (en)

Similar Documents

Publication Publication Date Title
US11204793B2 (en) Determining an optimal computing environment for running an image
US11805076B2 (en) Microservice placement in hybrid multi-cloud using graph matching
US9218196B2 (en) Performing pre-stage replication of data associated with virtual machines prior to migration of virtual machines based on resource usage
US11573835B2 (en) Estimating resource requests for workloads to offload to host systems in a computing environment
US20220188172A1 (en) Cluster selection for workload deployment
US10841369B2 (en) Determining allocatable host system resources to remove from a cluster and return to a host service provider
US10942784B2 (en) Database resource scaling
US10877814B2 (en) Profiling workloads in host systems allocated to a cluster to determine adjustments to allocation of host systems to the cluster
WO2022116738A1 (en) Optimizing placements of workloads on multiple platforms as a service based on costs and service levels
US11366694B1 (en) Estimating attributes of running workloads on platforms in a system of multiple platforms as a service
JP2022089807A (en) Computer-implemented method and computer program product (estimating attributes of running workloads on platforms in system including multiple platforms as service)
US10657079B1 (en) Output processor for transaction processing system
WO2022116739A1 (en) Placements of workloads on multiple platforms as a service
US11645013B2 (en) Managing dispersed storage network background tasks
US20240184618A1 (en) Automated information technology infrastructure management
WO2022247553A1 (en) Compliance aware application scheduling
US20220237206A1 (en) Data migration planning and scheduling based on data change rate analysis

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518

RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20220610

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240620