JP6796994B2 - Information processing system - Google Patents
Information processing system Download PDFInfo
- Publication number
- JP6796994B2 JP6796994B2 JP2016208345A JP2016208345A JP6796994B2 JP 6796994 B2 JP6796994 B2 JP 6796994B2 JP 2016208345 A JP2016208345 A JP 2016208345A JP 2016208345 A JP2016208345 A JP 2016208345A JP 6796994 B2 JP6796994 B2 JP 6796994B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- application
- application program
- server
- management server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
本発明は、複数のサーバを含む情報処理システム及びその制御方法に関するものである。 The present invention relates to an information processing system including a plurality of servers and a control method thereof.
近年、人工知能や機械学習などのように、大量のデータを網羅的に繰返し分析して、人が想定し得ない結果を導き出す分析アプリケーションが注目を集めている。このようなアプリケーションは、結果を導き出すまでに長時間掛かるため、繰返し処理部分に並列コンピューティングシステムを適用して、実行時間を短縮することが望まれている。しかし、アプリケーションの分析対象となるデータ量や分析パラメータ(たとえば、データの分割粒度など)により、実行時間が異なるため、アプリケーションを利用する分析者は、希望する実行時間以内に処理を完了するために、どれだけの計算機リソースを準備しておけばよいか決定することが困難である。 In recent years, analysis applications such as artificial intelligence and machine learning that comprehensively and repeatedly analyze a large amount of data to derive results that cannot be expected by humans have been attracting attention. Since it takes a long time to derive a result in such an application, it is desired to apply a parallel computing system to the iterative processing part to shorten the execution time. However, the execution time differs depending on the amount of data to be analyzed by the application and the analysis parameters (for example, data division granularity), so the analyst using the application can complete the process within the desired execution time. , It is difficult to determine how much computer resources should be prepared.
このような分野の背景技術として、特許文献1では、クラウドを活用して、アプリケーションに対する処理の需要を予測して、クラウドのリソースを自動で拡張及び縮小するアプリケーション・リソース・マネージャを提供している。 As a background technology in such a field, Patent Document 1 provides an application resource manager that uses the cloud to predict the processing demand for an application and automatically expands and contracts the resources of the cloud. ..
特許文献1に記載されたアプリケーション・リソース・マネージャを用いれば、アプリケーションの負荷状況を予測して、指定されたポリシーに基づき迅速に計算機リソースを確保すると共に、イメージを高速配備(プロビジョニング)、もしくは使用されてないイメージをスタッシュして、アプリケーションの処理負荷を動的に変更することができる。これにより、アプリケーション利用者は、事前に計算機リソース量を決定しなくても、ポリシーに基づいた計算機リソースを利用することができる。 By using the application resource manager described in Patent Document 1, the load status of the application is predicted, computer resources are quickly secured based on the specified policy, and the image is rapidly deployed (provisioned) or used. You can stash unprovisioned images to dynamically change the processing load of your application. As a result, the application user can use the computer resource based on the policy without determining the computer resource amount in advance.
しかしながら、アプリケーション・リソース・マネージャで想定されているポリシーは、継続的にアプリケーションが実行されているときの負荷変動に対して、一定に保つように計算機リソースを確保する方法であり、アプリケーション利用者が、実行要求毎に利用形態やコスト等を鑑みて、計算機リソース量を決定するようなケースは想定されていない。 However, the policy envisioned by the application resource manager is a method of securing computer resources so that the load fluctuations when the application is continuously executed are kept constant, and the application user can use it. , It is not assumed that the amount of computer resources is determined for each execution request in consideration of the usage pattern and cost.
たとえば、アプリケーション利用者が、分析パラメータを試行錯誤しながら調整する利用形態を想定した場合、最初は分析粒度を粗く検証するために短実行時間であまり計算機リソースを使わず、すなわち計算機リソースにコストを掛けずに分析を行い、詳細分析をする際に、分析粒度を細かくするように分析パラメータを設定して、実行時間を短縮させるために、コストを掛けて計算機リソースを多めに利用したい、などのニーズが考えられる。このような利用形態の場合、アプリケーション利用者ごとに必要とする計算機リソース量が異なるために、特許文献1に記載の技術のように、ポリシーに基づく計算機リソースの確保を行う方法では、対応が困難である。 For example, if an application user assumes a usage pattern in which analysis parameters are adjusted by trial and error, at first, in order to roughly verify the analysis granularity, a short execution time and not much computer resources are used, that is, the cost to the computer resources is increased. When performing analysis without multiplication and performing detailed analysis, you want to set analysis parameters so that the analysis granularity is fine, and use more computer resources at a cost to shorten the execution time. Needs can be considered. In the case of such a usage pattern, since the amount of computer resources required for each application user is different, it is difficult to deal with the method of securing computer resources based on the policy as in the technique described in Patent Document 1. Is.
上記目的を達成するために、本発明の一実施形態に係る情報処理システムは、管理サーバと、アプリケーションプログラムを実行するための1以上のプロセッサを備えた処理サーバを複数有する。管理サーバは、ユーザからアプリケーションプログラムの並列度を受領すると、複数の処理サーバの有する使用可能な計算機リソースの中から、受領した並列度でアプリケーションプログラムを実行するために必要な計算機リソースを確保し、確保された計算機リソースを有する処理サーバに、アプリケーションプログラムを配置し、アプリケーションプログラムを並列実行させる。 In order to achieve the above object, the information processing system according to the embodiment of the present invention has a management server and a plurality of processing servers including one or more processors for executing an application program. When the management server receives the degree of parallelism of the application program from the user, it secures the computer resources necessary to execute the application program at the received degree of parallelism from the available computer resources of the multiple processing servers. The application program is placed on the processing server having the secured computer resources, and the application program is executed in parallel.
本発明によれば、アプリケーション利用者が、アプリケーションの実行要求毎に必要な計算機リソース量を、アプリケーション利用者の処理要求に合わせて柔軟に決定して、決定した計算機リソース量で迅速に並列コンピューティングシステムを構築することが可能となる。 According to the present invention, an application user flexibly determines the amount of computer resources required for each application execution request according to the processing request of the application user, and quickly performs parallel computing with the determined amount of computer resources. It becomes possible to build a system.
以下、各実施例における実施形態について図面を参照して説明する。なお、以下の実施例に用いる図において、同一の符号を付した部分は同一物を表し、それらの構造および動作は同じである。 Hereinafter, embodiments in each embodiment will be described with reference to the drawings. In the figures used in the following examples, the parts with the same reference numerals represent the same objects, and their structures and operations are the same.
図1は、実施例1に係る情報処理システムの全体構成の例である。実施例1に係る情報システムは、クライアント端末101と、クライアント端末101とネットワーク102を介して接続されるリクエスト受付サーバ103、そしてネットワーク105を介してリクエスト受付サーバ103と接続されるデータ管理サーバ104、アプリ管理サーバ110、クラスタ管理サーバ120、複数の処理サーバ130を有する。図1ではクライアント端末101とそれ以外のサーバ(リクエスト受付サーバ103、データ管理サーバ104、アプリ管理サーバ110、クラスタ管理サーバ120、処理サーバ130)が異なるネットワーク(102,105)に接続されているが、クライアント端末101とそれ以外のサーバが同一ネットワークに接続されるように、情報処理システムが構成されていてもよい。
FIG. 1 is an example of the overall configuration of the information processing system according to the first embodiment. The information system according to the first embodiment includes a
クライアント端末101は、アプリケーション利用者が使用する端末であり、アプリケーション利用者が、アプリケーションプログラム(以下、「アプリケーション」と略記する)に処理させるための入力データを作成して、リクエスト受付サーバ103にアプリケーションの処理要求を入力データとともに送信するために用いられる。クライアント端末101はたとえば、会社や工場内のパーソナルコンピュータやサーバである。あるいはクライアント端末101は、スマートフォンやタブレット端末などの、通信機能を有する通信デバイスであってもよい。
The
ネットワーク102は、通信キャリアなどによって提供される無線ネットワークまたは有線ネットワークである。ネットワーク102は、個別の会社などが所有するネットワークを、ネットワーク102の一部に含んでもよく、複数種類のプロトコルを通過させるネットワークであってもよい。
The
リクエスト受付サーバ103は、クライアント端末101からアプリ実行要求などの処理要求を受け付け、受け付けた処理要求に基づき、データ管理サーバ104、アプリ管理サーバ110、クラスタ管理サーバ120、処理サーバ130に処理依頼を行い、処理結果をクライアント端末101に返信する処理を実行するサーバである。
The
データ管理サーバ104は、アプリケーションの実行時に処理対象となるデータ(入力データ)を格納するサーバであり、入力データがファイルの場合は共有ファイルサーバ、レコードとして格納しておく場合は構造データベースサーバ、jsonなどの形式で格納しておく場合はキーバリューストアなどの非構造データベースなどのデータを格納するサーバである。
The
アプリ管理サーバ110は、処理サーバ130で実行されるアプリケーションの情報を管理するとともに、入力データや計算機リソースを設定することでアプリケーションの実行処理時間の見積もり値を計算するサーバである。アプリ管理サーバ110は、アプリケーションの情報を管理するアプリ管理記憶部111と、入力データと計算機リソース量に基づきアプリケーションの実行時間を事前に計算するアプリ実行時間計算部112と、を有する。詳細は、図4および図6で説明する。
The
クラスタ管理サーバ120は、各処理サーバ130の利用状態を管理して、クラスタの生成/破棄を動的に行うサーバであり、ノード-クラスタ管理情報記憶部121とクラスタ生成部122、クラスタ破棄部123、を有する。本実施例では、1つのアプリケーションを実行する際に使用される計算機リソースの集合(あるいはこの計算機リソースを有する処理サーバ130の集合)を「クラスタ」と呼ぶ。詳細は、図5および図7、図8で説明する。
The
処理サーバ130は、アプリ管理サーバ110が管理しているアプリケーションを実行するためのサーバであり、アプリケーションの実行コードを記憶するアプリケーション管理部131と、アプリケーションの並列処理を実現する並列処理管理部132と、を有する。アプリケーション管理部131には、複数のアプリケーションが登録されてもよい。複数のアプリケーションが登録されている場合、クラスタはアプリケーションの処理要求ごとに生成されるため、処理サーバ130は複数のクラスタに属していることとなり、それぞれのクラスタ内の処理サーバ130からアプリケーションの処理を割り振られることとなる。詳細は図3で説明する。
The
本実施例では、これらのサーバがそれぞれ物理的に異なる計算機である例を説明する。ただし必ずしもこれらのサーバが、異なる計算機である必要はなく、上で述べたいくつかのサーバが有する機能部が、単一の計算機上に実装されていてもよい。たとえば情報処理システム内に、上で述べたリクエスト受付サーバ103、データ管理サーバ104、アプリ管理サーバ110、クラスタ管理サーバ120に代えて、1台の計算機(仮に「管理サーバ」と呼ぶ)を設け、上で述べたリクエスト受付サーバ103、データ管理サーバ104、アプリ管理サーバ110、クラスタ管理サーバ120が有する機能部を、その管理サーバ上に設けてもよい。あるいは、処理サーバの1つ(または複数)が、管理サーバとして用いられてもよい。
In this embodiment, an example in which these servers are physically different computers will be described. However, these servers do not necessarily have to be different computers, and the functional parts of some of the servers described above may be implemented on a single computer. For example, in the information processing system, one computer (tentatively called a "management server") is provided in place of the
さらに別の実施形態として、情報処理システム内に設けられた1台または複数台の計算機上で、いわゆる仮想計算機を提供するためのソフトウェア(一般的にハイパーバイザと呼ばれる)を実行させ、計算機上に、リクエスト受付サーバの役割を果たす仮想計算機、データ管理サーバの役割を果たす仮想計算機、アプリ管理サーバの役割を果たす仮想計算機、クラスタ管理サーバの役割を果たす仮想計算機を定義することで、情報処理システムが構成されてもよい。 As yet another embodiment, software for providing a so-called virtual computer (generally called a hypervisor) is executed on one or a plurality of computers provided in the information processing system, and the computer is used. By defining a virtual computer that plays the role of a request reception server, a virtual computer that plays the role of a data management server, a virtual computer that plays the role of an application management server, and a virtual computer that plays the role of a cluster management server, the information processing system can be created. It may be configured.
図2は、図1で示したリクエスト受付サーバ103、データ管理サーバ104、アプリ管理サーバ110、クラスタ管理サーバ120、処理サーバ130、クライアント端末101の物理的な構成を示す図である。本実施例ではこれらのサーバ(またはクライアント端末)には、プロセッサ(CPU)201、メモリ202、補助記憶装置203及び通信インターフェース(通信I/F)204を有する計算機200が用いられる。この計算機は一例として、パーソナルコンピュータ(PC)等の汎用的な計算機でよい。
FIG. 2 is a diagram showing the physical configurations of the
プロセッサ201は、メモリ202に格納されたプログラムを実行する。プロセッサ201の数は1とは限らない。計算機200は複数のプロセッサ201を有していてもよい。またプロセッサ201は複数のプロセッサコアを有する、いわゆるマルチコアプロセッサであってもよい。メモリ202は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサ201が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
The
補助記憶装置203は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、プロセッサ201が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置203から読み出されて、メモリ202にロードされて、プロセッサ201によって実行される。
The
通信インターフェース204は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
The
計算機200はまた、入力インターフェース(入力I/F)205及び出力インターフェース(出力I/F)208を有してもよい。入力インターフェース205は、キーボード206やマウス207などが接続され、オペレータからの入力を受けるインターフェースである。出力インターフェース208は、ディスプレイ装置209やプリンタなどが接続され、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースである。
The
なお、本実施例では、アプリ管理サーバ110、クラスタ管理サーバ120、処理サーバ130の有する各機能部は、ソフトウェア(プログラム)によって実装されるものとする。たとえばアプリ管理サーバ110では、アプリ管理サーバ110をアプリ管理記憶部111とアプリ実行時間計算部112として機能させるためのプログラムが、アプリ管理サーバ110(計算機200)のメモリ202上にロードされ、プロセッサ201により実行される。これによりアプリ管理サーバ110は、アプリ管理記憶部111とアプリ実行時間計算部112を有する装置として動作する。
In this embodiment, it is assumed that each functional unit of the
クラスタ管理サーバ120や処理サーバ130でも同様に、計算機200(クラスタ管理サーバ120や処理サーバ130)のプロセッサ201で、上で述べた各機能部を実現するためのプログラムが実行される。これによってクラスタ管理サーバ120や処理サーバ130は、上で述べた各機能部を有する装置として動作する。以下では、アプリ管理サーバ110やクラスタ管理サーバ120、あるいは処理サーバ130等で実行される処理を説明する際に、アプリ実行時間計算部112やクラスタ生成部122等の機能部を主語とした説明を行うことがあるが、それは実際には、機能部を有する計算機200のプロセッサ201が処理を行うことを意味する。
Similarly, in the
また、プロセッサ201が実行するプログラムは、計算機が読み取り可能な記憶メディア又はネットワークを介して計算機200に提供され、非一時的記憶媒体である補助記憶装置203に格納される。計算機が読み取り可能な記憶メディアとは、非一時的なコンピュータ可読媒体で、たとえばCD−ROMやフラッシュメモリなどの、不揮発性のリムーバブルメディアである。このため計算機200は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
Further, the program executed by the
また、別の実施形態として、各機能部の一部またはすべては、FPGAやASICなどのハードウェアを用いて実装されていてもよい。 Further, as another embodiment, a part or all of each functional unit may be implemented by using hardware such as FPGA or ASIC.
図3は、処理サーバ130でアプリケーションが実行される時の仕組みを概説する図である。
FIG. 3 is a diagram illustrating a mechanism when an application is executed on the
処理サーバ130は先に述べたとおり、アプリケーションが配置されるアプリケーション管理部131と、同一クラスタ内の処理サーバ130を管理して、処理を各処理サーバ130に割り振りながらアプリケーションを並列実行することを管理する並列処理管理部132と、を有する。
As described above, the
アプリケーション管理部131はアプリケーションプログラムを格納する機能部で、メモリ202や補助記憶装置203の記憶領域を用いてアプリケーションプログラムを保持する。
The
並列処理管理部132は、アプリケーションを並列実行させるために必要な、各種機能を提供する。並列処理管理部132の説明の前に、処理サーバ130でアプリケーションがどのようにして並列実行されるか、概説する。
The parallel
本実施例では一例として、アプリケーションがデータの分析を行うためのプログラムである例を説明する。アプリケーションは、1以上の処理を実行するためのプログラムコード(実行コード)を含む。図4の410は、アプリケーション(App A)の構成例を示している。図4の410に示されているように、App Aは複数の処理Aa,Ab,Acを含んでおり、App Aが処理サーバで実行される時、処理Aa,Ab,Acの順に実行される。ここで、たとえば処理Aaは入力データの正規化を行う処理、処理Abは正規化されたデータの分析を行う処理、そして処理Acは処理Abにて分析されたデータの統計処理である。 In this embodiment, as an example, an example in which the application is a program for analyzing data will be described. The application includes a program code (execution code) for executing one or more processes. 410 in FIG. 4 shows a configuration example of an application (App A). As shown in 410 of FIG. 4, the application A includes a plurality of processes Aa, Ab, and Ac, and when the application A is executed on the processing server, the processes Aa, Ab, and Ac are executed in this order. .. Here, for example, the process Aa is a process of normalizing the input data, the process Ab is a process of analyzing the normalized data, and the process Ac is a statistical process of the data analyzed by the process Ab.
各処理の中には、複数の処理サーバ130(あるいは複数のプロセッサ201)で並列処理されてもよいものもある。本実施例では処理Aa,Abが、並列実行可能な処理である例を説明する。 Some of the processes may be processed in parallel by a plurality of processing servers 130 (or a plurality of processors 201). In this embodiment, an example in which the processes Aa and Ab are processes that can be executed in parallel will be described.
アプリケーションは、これらの各処理(Aa,Ab,Ac)をプロセッサ201に実行させるための実行コードと、各処理の実行を各処理サーバ130に依頼する(振り分ける)処理をプロセッサ201に行わせる実行コードとを有し、前者の実行コードのことを「実行部」(図3の312)と呼び、後者の実行コードのことを「振分部」(図3の311)と呼ぶ。本実施例では、振分部311が各処理サーバ130に、実行部の処理を依頼するために送信される情報のことを「メッセージ」と呼ぶ。また、図3または図4に示されたApp Aのように、複数の処理(Aa,Ab,Ac)が実行されるアプリケーションでは、実行部312には処理Aaを行う実行コード,処理Abを行う実行コード,処理Acを行う実行コードが含まれる。以下では処理Aa,Ab,Acを行う実行コードをそれぞれ、「コードAa」,「コードAb」,「コードAc」と呼ぶ。
The application has an execution code for causing the
処理サーバ130の並列処理管理部132は、振分部311と実行部312の形で分離設計定義されたアプリケーションの並列実行の管理を行う。並列処理管理部132は、リクエスト受付サーバ103などの外部からアプリケーションの実行依頼を受け付けて、アプリケーションの振分部311の実行を開始するリクエスト受付部321と、振分部311が生成したメッセージを、処理サーバ(実行)130に送信するメッセージ振分部322、処理サーバ(振分)130から受信したメッセージを解析して、対象の実行部312に含まれる実行コード(コードAa,Ab,Ac)を呼び出すメッセージ受付部323により、アプリケーションの並列実行を行う。
The parallel
また並列処理管理部132は、クラスタ管理サーバ120などからアプリケーションのデプロイまたはアンデプロイ依頼を受けとり、アプリケーション管理部131にアプリケーションの配置と削除を行うアプリ・デプロイ/アンデプロイ受付部324と、アプリケーション管理部131に配置されているアプリケーションが所属しているクラスタについてのクラスタ情報を管理するクラスタ情報記憶部325の機能も提供する。クラスタ情報については後述する。
Further, the parallel
並列処理管理部132は、このメッセージの送受信や、受信したメッセージに基づいて実行部に処理を実行させる等の処理を行う。以下では図3を参照しながら、App A310が実行される時の処理の流れを概説する。
The parallel
以下では、処理AaがN個のプロセッサ201で並列処理され、処理AbがM個のプロセッサ201で並列処理される例を説明する(N,Mはいずれも1以上の整数で、NとMは等しい場合もある)。なお、アプリケーションが処理サーバ130で実行される前に、アプリケーションを実行するクラスタ内の各処理サーバ130にはアプリケーションが配布され、クラスタ内の各処理サーバ130のアプリケーション管理部131にはアプリケーションが格納された状態にある。この処理は後述する。
In the following, an example in which processing Aa is processed in parallel by
ここで、処理サーバ130のうち、メッセージを生成して振り分ける振分部311を担当する処理サーバ130を処理サーバ(振分)130、メッセージを受け取り、処理を実行する実行部312を担当する処理サーバ130を処理サーバ(実行)130と呼ぶ。処理サーバ(実行)130と処理サーバ(振分)130は同一サーバであってもよい。
Here, among the processing
アプリケーションAppA310の実行が開始されると、処理サーバ(振分)130の振分部311はまずメッセージAaをN個生成して、並列処理管理部132のメッセージ振分部322を介して、クラスタ内の各処理サーバ130にメッセージAaを送信する。メッセージAaの送信先となる処理サーバ130は、振分部311により決定される。メッセージAaを送信された処理サーバ130(実行)では、メッセージ受付部323がメッセージAaに対応した実行部312内の処理Aaを実行するコードを呼び出して、処理Aaを実行させる。処理Aaの実行後、メッセージ受付部323は処理サーバ(振分)130に、処理結果を返信する。
When the execution of the application AppA310 is started, the
処理サーバ(振分)130の振分部311は、メッセージAaに対応する処理結果の返信をN個分受け取ると、次の処理としてメッセージAbをM個生成して、同様に並列処理管理部132のメッセージ振分部322を介して、メッセージAbをクラスタ内の処理サーバ(実行)130に送信する。振分部311は、各処理(Aa,Ab,Ac)について、メッセージの送信及び結果の受信を行い、メッセージAcに対応する結果を受信し終えると、アプリケーションは終了する。つまり、アプリケーションを、処理依頼となるメッセージを生成する振分部311と、メッセージを受け取る実行部312に分けて設計定義しておくことで、繰り返し処理部分を並列に処理させることができる。
When the
並列処理管理部132により、処理サーバ130にアプリケーションを配置するだけで、クラスタ内の処理サーバ130のどれか1つに対して実行依頼を送信することで、処理サーバ130が自動で処理サーバ(振分)130と処理サーバ(実行)130に分かれて、アプリケーションの処理を処理サーバ(実行)130に振り分けながら並列に処理を実行することができる。これらの処理の流れについては、後で図9から図11のシーケンス図を用いて説明する。
The parallel
図4は、アプリ管理サーバ110内に保持されているアプリ管理記憶部111のテーブルの例を示す図である。
FIG. 4 is a diagram showing an example of a table of the application management storage unit 111 held in the
アプリ管理記憶部111は、アプリケーションとして配置する実行コードや、アプリケーションの処理時間を計算するための処理フローの情報や、処理ごとの実行時間を計算するための計算ロジックの情報を格納する機能部で、これらの情報を格納するために、メモリ202や補助記憶装置203の記憶領域を用いる。アプリ管理記憶部111は一例として、公知のファイルシステムプログラムまたはデータベース管理システム(DBMS)のようなプログラムを用いて実装されて良い。本実施例ではアプリ管理記憶部111は、アプリケーションの実行コードや処理フローや計算ロジックの情報を、メモリ202や補助記憶装置203の記憶領域上に形成されたテーブルに記憶させる例を説明する。
The application management storage unit 111 is a functional unit that stores the execution code to be arranged as an application, the processing flow information for calculating the processing time of the application, and the calculation logic information for calculating the execution time for each processing. , The storage area of the
アプリ管理記憶部111が有するテーブル400は、図4に示されるように6つのカラムを有する。以下、各カラムに格納される情報について説明する。アプリ名401には、アプリケーションの名称が格納される。アプリケーションの名称とは、アプリケーション利用者が、アプリケーションの実行を依頼する際に、アプリケーションを特定するために用いる名称である。実行コード402には、アプリ名401に対応したアプリケーションの実行コード(のファイル)が格納される。
The table 400 included in the application management storage unit 111 has six columns as shown in FIG. The information stored in each column will be described below. The name of the application is stored in the
並列度計算ロジック403には、入力データ量に応じてアプリケーションの各処理の繰り返し回数を算出するためのロジックが記述されたファイルが格納される。本実施例では、各処理の繰り返し回数を算出するためのロジックを「並列度計算ロジック」と呼ぶ。処理フロー404には、アプリケーションの処理実行手順が記録される。並列性405には、処理フロー404に記述されている各処理が、並列実行が可能か否かを表す情報が格納される。計算ロジック406には、処理フロー404内の各処理の1回の実行時間を算出するための計算ロジック(これを「実行時間計算ロジック」と呼ぶ)が記述されたファイルが格納される。
The parallel
たとえば図4を参照しながら、各カラムに格納される情報の具体例を説明する。図4のテーブルの先頭行に格納されているアプリケーション(AppAと呼ぶ)が、図4の410に記述されているように、処理Aa、処理Ab、処理Acの3つの処理を含み、処理Aa、処理Ab、処理Acの順で処理を行うものとする。また処理Aa及び処理Abは並列実行可能で、与えられた入力データの量に応じて、繰り返し実行される回数が変動する処理とする。 For example, a specific example of the information stored in each column will be described with reference to FIG. The application (referred to as AppA) stored in the first row of the table of FIG. 4 includes three processes of process Aa, process Ab, and process Ac, as described in 410 of FIG. 4, and the process Aa, It is assumed that the processing is performed in the order of processing Ab and processing Ac. Further, the processes Aa and Ab can be executed in parallel, and the number of times they are repeatedly executed varies depending on the amount of input data given.
この時並列度計算ロジック403には、入力データの量から処理Aa及び処理Abの繰り返し実行回数を算出するためのロジックが記述されたファイルのファイル名(図4の例では“AppA_message.py”)が記述される。また処理フロー404には“処理Aa,処理Ab,処理Ac”が記述される。以下では、処理フロー404のカラムに“処理Aa”が格納された行を“行407”,“処理Ab”が格納された行を“行408”,“処理Ac” が格納された行を“行409”と呼ぶ。
At this time, the parallel
並列性405の欄には、行407及び行408には“○”が格納され、処理Aa及び処理Abは並列実行可能であることを表す。一方、行409には“×”、つまり処理Acは並列実行可能でないことを表す情報が格納される。
In the column of
そして、処理Aaの実行時間計算ロジックが記述されたファイルが“AppA_calcAa.py”、処理Abの実行時間計算ロジックが記述されたファイルが“AppA_calcAb.py”、処理Acの実行時間計算ロジックが記述されたファイルが“AppA_calcAc.py”の場合、計算ロジック406の欄には、行407に“AppA_calcAa.py”、行408に“AppA_calcAb.py”、行409に“AppA_calcAc.py”が格納される。
Then, the file in which the execution time calculation logic of the process Aa is described is "AppA_calcAa.py", the file in which the execution time calculation logic of the process Ab is described is "AppA_calcAb.py", and the execution time calculation logic of the process Ac is described. When the file is "AppA_calcAc.py", "AppA_calcAa.py" is stored in
アプリ管理記憶部111のテーブルに格納されるこれらの情報は、あらかじめ情報処理システムの管理者、またはアプリケーションの利用者によって、アプリ管理記憶部111に登録される。また並列度計算ロジックや実行時間計算ロジックは、あらかじめアプリケーションの開発者によって作成されたものである。 These information stored in the table of the application management storage unit 111 are registered in the application management storage unit 111 in advance by the administrator of the information processing system or the user of the application. The parallelism calculation logic and the execution time calculation logic are created in advance by the application developer.
ただし別の実施形態として、実行時間計算ロジックを情報処理システムが自動作成する手段を備えていてもよい。たとえばデータ量と実行時間の因果関係を考慮して、入力データを統計的に処理して自動で計算ロジックを作成する機能,またデータ量以外に実行時間との因果関係のある項目を分析して自動で計算ロジックの予測モデルを構築する機能を、情報処理システムが備えており、アプリケーションがアプリ管理サーバ110に登録された時に、情報処理システムが実行時間計算ロジックを生成して、アプリ管理記憶部111に登録してもよい。
However, as another embodiment, the information processing system may automatically create the execution time calculation logic. For example, a function that statistically processes input data to automatically create calculation logic in consideration of the causal relationship between the amount of data and execution time, and analyzes items that have a causal relationship with execution time other than the amount of data. The information processing system has a function to automatically build a prediction model of calculation logic, and when an application is registered in the
なお、図4では説明を分かりやすくするために、実行コード402、並列度計算ロジック403、計算ロジック406のカラムには、実行コードや計算ロジックのファイル名(AppA.appなど)のみが記載されているが、これらのカラムにファイルの実体も格納される。あるいは別の実施形態として、実行コードや計算ロジックのファイルの実体は、アプリ管理記憶部111(を構成する補助記憶装置203の記憶領域)に格納され、実行コード402、並列度計算ロジック403、計算ロジック406のカラムには、各ファイルのパス名が格納される形態であってもよい。
In FIG. 4, for the sake of clarity, only the execution code and the file name of the calculation logic (AppA.app, etc.) are described in the columns of the
図5は、クラスタ管理サーバ120内に保持されているノード-クラスタ管理情報記憶部121のテーブルの例を示す図である。本実施例ではノード-クラスタ管理情報記憶部121はアプリ管理記憶部111と同様に、メモリ202や補助記憶装置203の記憶領域上に形成されたテーブルに、各種情報を記憶させる例を説明する。
FIG. 5 is a diagram showing an example of a table of the node-cluster management information storage unit 121 held in the
ノード-クラスタ管理情報記憶部121は、アプリケーションを配置可能な全ての処理サーバ130の情報を管理しており、またこれらの処理サーバ130のうち、同一アプリケーションが配置されて、クラスタを形成している処理サーバ130の情報もテーブル500に格納して管理している。
The node-cluster management information storage unit 121 manages the information of all the
ノード-クラスタ管理情報記憶部121が有するテーブル500の各行(レコード)は、図5に示す、6つのカラムを有し、各レコードには情報処理システム内の処理サーバ130についての情報が格納される。ノード名501には、処理サーバ130の名称を格納するための欄である。各処理サーバ130は情報処理システム内で一意な名称を有しており、本実施例ではその名称を「ノード名」と呼ぶ。IPアドレス502には、ノード名501で特定される処理サーバ130のIPアドレスが格納される。CPU Core数503には、処理サーバ130の有するプロセッサコア(CPU Core)の数が格納される。
Each row (record) of the table 500 included in the node-cluster management information storage unit 121 has six columns as shown in FIG. 5, and each record stores information about the
クラスタ名504には、処理サーバ130がクラスタに属している場合、所属しているクラスタの名称が格納され、割り当てCPU Core数505には、クラスタに割り当てられているプロセッサコア数が格納される。そのため、CPU Core数503と割り当てCPU Core数505の差を算出することで、まだいずれのクラスタにも割り当てられていないプロセッサコア(「未使用コア」と呼ぶ)の数が求められる。またアプリ名506には、処理サーバ130に配置されているアプリケーションのアプリ名が格納される。
When the
なお本実施例では、処理サーバ130がいわゆるマルチコアプロセッサを有する前提で説明しているが、処理サーバ130の有するプロセッサがシングルコアプロセッサの場合、CPU Core数503や割り当てCPU Core数505には、プロセッサコア数に代えてプロセッサ数が格納される。
In this embodiment, the description is made on the premise that the
また本実施例では、ノード-クラスタ管理情報記憶部121が有するテーブル500の各レコードのうち、クラスタ名504が同じレコードの集合に含まれる情報、特にこれらのレコードのカラム504〜506の情報を、「クラスタ情報」と呼ぶ。図5において、行510−1と行510−2のカラム504〜506がそれぞれ、クラスタ“User1-AppB-1”のクラスタ情報、クラスタ“User2-AppA-5”のクラスタ情報である。クラスタ情報を参照することで、クラスタに所属している処理サーバ130、CPU Core数を知ることができる。
Further, in this embodiment, among the records in the table 500 held by the node-cluster management information storage unit 121, the information in which the
後述するクラスタ管理サーバ120のクラスタ生成部122がクラスタを生成(定義)するとき、クラスタに所属させる処理サーバ130をテーブル500の中から選択する。そしてクラスタ生成部122は、選択された処理サーバ130に対応するレコードのカラム504〜506に、クラスタ名や使用するCPU Core数などの情報を格納する。本実施例ではクラスタ生成部122が、カラム504〜506に、クラスタ名等の情報を格納する処理を「クラスタ情報を作成する」処理と呼ぶ。クラスタ情報が作成されることにより、アプリケーションの実行に使用される計算機リソースが実質的に確保(予約)されることを意味する。また、クラスタ情報が作成されると、処理サーバ130のクラスタ情報記憶部325にも作成されたクラスタ情報が配置される。
When the
逆に定義されたクラスタにおけるアプリケーションの実行が終了すると、クラスタ破棄部123がカラム504〜506からクラスタ名等の情報を削除する。この処理は「クラスタ情報を削除する」処理と呼ばれる。クラスタ情報の削除により、アプリケーションの実行のために確保されていた計算機リソースが実質的に解放され、解放された計算機リソースを他の用途に使用することができるようになる。
On the contrary, when the execution of the application in the defined cluster is completed, the
ここで、処理サーバ130としてクラウド(非図示)上の計算機リソースを使う場合、つまりクラスタ生成の要求ごとにクラウド上の計算機リソースを確保して使用する場合は、計算機リソースが確保されるたびにノード-クラスタ管理情報記憶部121のテーブルにレコードが追加され、アプリケーションの実行が終了してクラスタを削除すると、そのレコードが削除される。
Here, when the computer resource on the cloud (not shown) is used as the
また、処理サーバ130が複数のCPU Coreを保持しており、アプリケーションの並列度が、処理サーバ130の有するCPU Core数より少ない場合は、1つの処理サーバ130に複数のアプリケーションが配置されることもあり得る。その場合は、処理サーバ130は複数のクラスタに所属することになる。
Further, when the
また、本実施例では、処理サーバ130がn個のCPU Coreを有している場合、アプリケーションの実行コードをn個並列実行可能という前提で、計算機リソースの確保が行われる。そのため、アプリケーションの並列度が4の場合(アプリケーション利用者がアプリケーションを4並列実行させたい場合)、クラスタ管理サーバ120のクラスタ生成部122(後述)は、未使用コアを有する処理サーバ130を1または複数選択する。その際クラスタ生成部122は、選択された処理サーバ130が有する未使用コアの数が4つ(以上)になるように、処理サーバ130を選択する。
Further, in this embodiment, when the
たとえば情報処理システム内に、図5のテーブル500に示されているように、Node1〜Node8の処理サーバ130が存在し、Node1〜Node5のCPU Coreが既に何らかのアプリケーションに割り当てられている場合、未使用コアを2以上有する処理サーバ130としてNode5,Node6が選択されるとよい。そしてこの場合、クラスタ生成部122はNode5とNode6の割り当てCPU Core505に2を加算することで、計算機リソース(CPU Core)を確保するとよい。
For example, in the information processing system, as shown in Table 500 of FIG. 5, when the
ただし、アプリケーションの特性によっては、CPU Coreの数以外に、メモリ量やCPUの処理性能を考慮して、1または複数の処理サーバ130が選択されてもよい。
However, depending on the characteristics of the application, one or a plurality of
図6は、アプリ管理サーバ110のアプリ実行時間計算部112の動作フローの例である。まず、アプリ実行時間計算部112は要求発行元から、アプリ名、入力データ、並列度を引数として指定した、アプリ実行時間計算依頼を受け付ける(ステップ601)。本実施例ではアプリ実行時間計算依頼の要求発行元は、リクエスト受付サーバ103とする。また並列度は、アプリケーションを構成する処理毎に指定されてもよい。たとえばアプリケーションが図4の410のように処理Aa,Ab,Acから構成されており、処理Aa,Abがそれぞれ並列実行可能な処理の場合、要求発行元は処理Aaの並列度と処理Abの並列度を引数として指定したアプリ実行時間計算依頼を、アプリ実行時間計算部112に発行してもよい。ただし以下の説明では、特に断りのない限り、並列度が1つだけ指定される例(並列実行可能な各処理がいずれも、同じ並列度で実行される例)を説明し、またここで指定される並列度をnとする。
FIG. 6 is an example of the operation flow of the application execution
次にアプリ実行時間計算部112は、アプリ管理記憶部111から、アプリ名に対応した並列度計算ロジック403と処理フロー404内の各処理に対応する計算ロジック406を取得する(ステップ602)。そしてアプリ実行時間計算部112は、並列度計算ロジック403を利用して、入力データ量からアプリケーションの各処理の繰り返し数を算出し(ステップ603)、次に各処理の計算ロジック406を利用して、各処理が入力データに対応した処理を1回実行する時の実行時間を算出する(ステップ604)。
Next, the application execution
次にアプリ実行時間計算部112は、ステップ603で求められた各処理の繰り返し数と、ステップ604で求められた各処理の1回の実行時間を用いて、アプリケーションの実行時間(並列処理を行わない場合の実行時間)を計算し(ステップ605)、さらに並列実行可能な処理群が並列実行された場合の、各処理の繰り返し回数、各処理の実行時間、アプリケーションの合計実行時間を算出し、実行結果を要求発行元に返信する(ステップ606)。各処理が並列実行される場合の、繰り返し回数や実行時間は、ステップ603で求められた各処理の繰り返し数と、ステップ604で求められた各処理の1回の実行時間をそれぞれ、並列度(n)で除算することにより求められる。
Next, the application execution
アプリ実行時間計算部112は上に述べたフローを実行することで、アプリケーションの実行時間を入力データと並列度から瞬時に計算して、アプリケーション利用者に対して計算時間に対する情報を提示する。これによりアプリケーション利用者は、許容可能な実行時間に対する並列度を試行錯誤しながら決定することができる。
By executing the flow described above, the application execution
図7は、クラスタ管理サーバ120のクラスタ生成部122の動作フローの例である。まず、クラスタ生成部122は要求発行元から発行されたクラスタ生成依頼を受け付ける(ステップ701)。本実施例では、クラスタ生成依頼の要求発行元は、リクエスト受付サーバ103とする。またクラスタ生成依頼には、アプリ名と並列度が引数として含まれている。
FIG. 7 is an example of the operation flow of the
次にクラスタ生成部122は、ノード-クラスタ管理情報記憶部121を見て、まだノード-クラスタ管理情報記憶部121に記録されていない名称のクラスタ名を生成することで、今回生成されるクラスタに一意な名称を付す(ステップ702)。そしてクラスタ生成部122はノード-クラスタ管理情報記憶部121を参照することで、まだどのクラスタにも割り当てられていないプロセッサコアを有する処理サーバ130を1または複数選択して(ステップ703)、ノード-クラスタ管理情報記憶部121にクラスタ情報を作成する(ステップ704)。ステップ703における処理サーバ130の選択方法は、図5の説明で述べたため、ここでの説明は略す。
Next, the
次にクラスタ生成部122は、選定した処理サーバ130にアプリケーションを配置するために、アプリ管理サーバ110からアプリ名に対応するアプリケーションの実行コード402を取得して、各処理サーバにアプリケーションの配置を依頼する(ステップ705、706)。アプリケーションの配置を依頼された処理サーバ130で行われる処理については、後で説明する。
Next, the
続いてクラスタ生成部122は、アプリケーションの実行コード402を配置した処理サーバ130の中から、処理サーバ(振分)130となる処理サーバ130を選択して(ステップ707)、クラスタ名と処理サーバ(振分)130へのアクセスURL(Uniform Resource Locator)を、要求発行元に返信する(ステップ708)。
Subsequently, the
図8は、クラスタ管理サーバ120のクラスタ破棄部123の動作フローの例である。まず、クラスタ破棄部123は要求発行元から、クラスタ名が引数に指定されたクラスタ破棄依頼を受け付ける(ステップ801)。ここでも要求発行元はリクエスト受付サーバ103とする。次にクラスタ破棄部123は、ノード-クラスタ管理情報記憶部121からクラスタ内の処理サーバ130の情報を取得して(ステップ802)、各処理サーバ130にアプリケーションを削除させる(ステップ803)。削除が完了すると、クラスタ破棄部123はノード-クラスタ管理情報記憶部121のクラスタ情報を削除して(ステップ804)、完了通知を要求発行元に返信する(ステップ805)。
FIG. 8 is an example of the operation flow of the
図9は、アプリケーション利用者が、本実施例に係る情報処理システムを用いてアプリケーションの実行を要求した時に、情報処理システム内の各サーバで行われる処理の流れを表したシーケンス図である。図9では、クライアント端末101がリクエスト受付サーバ103に要求を発行し、アプリケーションを実行するクラスタが生成されるまでの処理の流れが記述されている。
FIG. 9 is a sequence diagram showing a flow of processing performed by each server in the information processing system when the application user requests execution of the application using the information processing system according to the present embodiment. FIG. 9 describes a processing flow from the
まずクライアント端末101はアプリケーション利用者から、アプリケーション利用者が利用するアプリケーションのアプリ名と入力データを受け付けると、リクエスト受付サーバ103にアプリケーションの登録依頼を送信する(901)。このアプリケーションの登録依頼には、アプリケーション名(たとえば“AppA”など)と入力データが含まれる。リクエスト受付サーバ103はこの登録依頼に応じて、まず入力データをデータ管理サーバ104に登録する(902、903)。データ管理サーバ104は入力データを受領すると、入力データへのアクセス方法であるアクセスURL(904)をリクエスト受付サーバ103に返送する。リクエスト受付サーバ103はアクセスURL(904)を受け取ると、クライアント端末101にOK(905)を返信する。この時、リクエスト受付サーバ103は、入力データへのURLとアプリ名とを対応付けて保持する。
First, when the
次にアプリケーション利用者は、クライアント端末101を用いて並列度(906)を指定する。リクエスト受付サーバ103は並列度を受け取ると、アプリ管理サーバ110のアプリ実行時間計算部112に、繰り返し数と各処理の実行時間を計算させて(907、908、909)、その結果をクライアント端末101に返信する(910)。907、908、909でアプリ管理サーバ110で行われる処理は、図6の処理に相当する。
Next, the application user specifies the degree of parallelism (906) using the
アプリケーション利用者は、アプリ実行時間計算部112によって算出されるアプリケーションの実行時間が、アプリケーション利用者の希望する時間に収まるようになるまで、並列度を変更しながら、906〜910の処理を繰り返す。たとえばある並列度(nとする)が指定された時に算出されたアプリケーションの実行時間が、アプリケーション利用者の希望する実行時間より長かった場合には、アプリケーション利用者は、nよりも高い並列度(たとえば(n+1)等)を指定して、アプリ実行時間計算部112にアプリケーションの実行時間を算出させるとよい。逆に算出されたアプリケーションの実行時間が、アプリケーション利用者の希望する時間よりも短かった場合、アプリケーション利用者は最初に指定した並列度(n)よりも低い並列度(たとえば(n−1)等)を指定して、アプリ実行時間計算部112にアプリケーションの実行時間を算出させてもよい。
The application user repeats the processes of 906 to 910 while changing the degree of parallelism until the application execution time calculated by the application execution
アプリケーション利用者は上に述べた906〜910の処理を繰り返すことで、実際にアプリケーションを実行する時の並列度を決定する(以下では、ここでアプリケーション利用者が決定した並列度を「実行時並列度」と呼び、図9の906でアプリケーション利用者が指定する並列度とを区別する)。実行時並列度が決定されると、アプリケーション利用者はクライアント端末101から、実行時並列度とアプリケーション名を指定したクラスタ生成依頼をリクエスト受付サーバ103経由でクラスタ管理サーバ120に送信する(911,912)。ここの処理でアプリケーション利用者が並列度等を指定するための具体的な方法については、後で図12(または図13)を用いて説明する。
The application user determines the degree of parallelism when actually executing the application by repeating the processes of 906 to 910 described above (hereinafter, the degree of parallelism determined by the application user here is referred to as "runtime parallelism". It is called "degree" and is distinguished from the degree of parallelism specified by the application user in 906 of FIG. 9). When the run-time parallelism is determined, the application user sends a cluster generation request specifying the run-time parallelism and the application name from the
クラスタ管理サーバ120はクラスタ生成依頼(912)を受け取ると、クラスタ生成部122により、クラスタ名を作成し(913)、実行時並列度に応じた処理サーバ130の計算機リソース(CPU Core)の確保を行い(914)、ノード-クラスタ管理情報記憶部121にクラスタ情報を作成する(915)。912〜915の処理はそれぞれ、図7のステップ701〜704に相当する処理である。
When the
続いてクラスタ生成部122は、アプリ管理サーバ110からアプリケーションの実行コード(916)を取得して(917)、各処理サーバ130にアプリケーションの配置を依頼する(918)。917〜918の処理はそれぞれ、図7のステップ705〜706に相当する処理である。クラスタ生成部122が処理サーバ130にアプリケーションの配置を依頼する際、アプリケーションの実行コード、そしてクラスタ情報を処理サーバ130に送信する。
Subsequently, the
アプリケーションの配置を依頼された処理サーバ130は、アプリケーションをインストールするとともに(919)、並列処理管理部132のクラスタ情報記憶部325にクラスタ情報を作成する(920)。クラスタに属する各処理サーバ130へのアプリケーションの配置が完了すると(921)、クラスタ管理サーバ120はクラスタに属する各処理サーバ130の中から、処理サーバ(振分)130となる処理サーバ130を1台選定して、リクエスト受付サーバ103にクラスタ名とともに、処理サーバ(振分)130へのアクセスURLを返信する(923)。
The
リクエスト受付サーバ103はクライアント端末101にOK(924)を返信して、処理が完了する。
The
図10は、図9の処理の続きで、図9の処理によって決定された処理サーバ130群を利用して、アプリケーションの処理を並列に実行する動作シーケンスの例である。
FIG. 10 is an example of an operation sequence in which application processing is executed in parallel by using the
まず、アプリケーション利用者がクライアント端末101を用いてアプリケーション実行要求(1001)をリクエスト受付サーバ103に発行すると、リクエスト受付サーバ103は、処理サーバ(振分)130へのアクセスURLに対して、入力データのアクセスURLと合わせて実行依頼を送信する(1002)。
First, when the application user issues an application execution request (1001) to the
なお、図9(及び図10)のシーケンス図には、リクエスト受付サーバ103はクライアント端末101にOKを返送し(924)、その後アプリケーション利用者がアプリケーション実行要求(1001)を発行したことを契機に、処理サーバ(振分)130に実行依頼を送信(1002)する例を示している。ただし別の実施形態として、リクエスト受付サーバ103がクラスタ管理サーバ120から処理サーバ(振分)130へのアクセスURLを受領(923)した後、リクエスト受付サーバ103はクライアント端末101に返信(924)を行うことなく、処理サーバ(振分)130にアプリケーションの実行依頼を送信(1002)してもよい。
In the sequence diagram of FIG. 9 (and FIG. 10), the
処理サーバ(振分)130では、アプリケーションの振分部311が、911で指定された並列度(実行時並列度)と同数のメッセージAaを生成して(1004)、メッセージAa(1005)を各処理サーバ(実行)130に送信する。メッセージAaを生成する際に、入力データを利用する場合は、処理サーバ(振分)130はデータ管理サーバ104から入力データを取得する(1003)。
In the processing server (distribution) 130, the
処理サーバ(実行)130はメッセージAaを受け取ると、データ管理サーバ104に格納されている入力データの中から処理Aaに必要な対象データ(1006)を取得して、実行部312の処理Aaを実行して(1007)、処理結果(1008)をデータ管理サーバ104に書き込むとともに、処理の完了通知(1009)を処理サーバ(振分)130に返信する。
When the processing server (execution) 130 receives the message Aa, it acquires the target data (1006) required for the processing Aa from the input data stored in the
処理サーバ(振分)130は、メッセージを送信した全ての処理サーバ(実行)130から完了通知を受領すると(1009)、次のメッセージ(図10の例では“メッセージAb”)を生成して、各処理サーバ(実行)130に振り分ける。処理サーバ(振分)130はこのように、メッセージを生成して各処理サーバ(実行)130にメッセージを振り分け、各処理サーバ(実行)130から処理の完了通知を受領する、という処理を繰り返す。そして処理サーバ(振分)130は、最後のメッセージ(図10の例では“メッセージAc”)に対する処理の完了通知を処理サーバ(実行)139から受け取ると、最終結果をデータ管理サーバ104から取得し(1022)、アプリケーションとしての実行結果を生成して(1023)、リクエスト受付サーバ103経由で実行結果(1024,1025)をクライアント端末101に返信する。
When the processing server (distribution) 130 receives the completion notification from all the processing servers (execution) 130 that have sent the message (1009), the processing server (distribution) 130 generates the next message (“Message Ab” in the example of FIG. 10). Allocate to each processing server (execution) 130. In this way, the processing server (distribution) 130 repeats the process of generating a message, distributing the message to each processing server (execution) 130, and receiving the processing completion notification from each processing server (execution) 130. Then, when the processing server (distribution) 130 receives the processing completion notification for the last message (“message Ac” in the example of FIG. 10) from the processing server (execution) 139, the processing server (distribution) 130 acquires the final result from the
図11は、図10の後に行われる処理、つまりアプリケーションの実行が終わってから、クラスタを破棄するまでの処理の例である。 FIG. 11 is an example of the process performed after FIG. 10, that is, the process from the end of the execution of the application to the destruction of the cluster.
まず、クライアント端末101からアプリケーションの実行完了通知(1101)をリクエスト受付サーバ103が受け取ると、リクエスト受付サーバ103は、クラスタ管理サーバ120に対して、クラスタ破棄依頼(1102)を送信し、クラスタ破棄部123はこのクラスタ破棄依頼を受け付ける。この処理は図8のステップ801に相当する処理である。先に述べたとおり、クラスタ破棄依頼には、破棄対象のクラスタ名が含まれている。
First, when the
クラスタ破棄依頼を受け取ったクラスタ管理サーバ120では、クラスタ破棄部123がノード-クラスタ管理情報記憶部121を参照することで、クラスタ内の処理サーバ130とアプリ名を特定する(1103)。この処理はステップ802に相当する処理である。そしてクラスタ破棄部123は、特定された各処理サーバ130にアプリケーション破棄依頼(1104)を送信する(ステップ803に相当する処理である)。
In the
アプリケーション破棄依頼を受領した各処理サーバ130は、アプリケーションのアンインストール(1105)、クラスタ情報記憶部325に記録されていたクラスタ情報の破棄(1106)を実施した後、完了通知をクラスタ管理サーバ120に返送する。クラスタ破棄部123が各処理サーバ130から完了通知(1107)を受け取ると、ノード-クラスタ管理情報記憶部121のクラスタ情報を削除して(1108)、リクエスト受付サーバ103経由でクライアント端末101に完了通知(1109,1101)を返信する。
Each
図12は、アプリケーション利用者が実行要求毎に計算機リソース量を決定するための計算機リソース量設定画面イメージの例である。本実施例では、リクエスト受付サーバ103がこの設定画面1200を作成してクライアント端末101に提供する(クライアント端末101のディスプレイ装置209に表示させる)例を説明する。ただし、リクエスト受付サーバ103以外の計算機が、この設定画面1200を作成してもよい。
FIG. 12 is an example of a computer resource amount setting screen image for the application user to determine the computer resource amount for each execution request. In this embodiment, an example in which the
図12において、1201はアプリ名入力ボックス、1202はデータ名入力ボックス、1206は並列度設定欄である。アプリケーション利用者がアプリ名入力ボックス1201とデータ名入力ボックス1202のそれぞれに、アプリケーションの名称及び入力データの名称(ファイル名)を入力することで、リクエスト受付サーバ103は図9の901〜905を実行する。
In FIG. 12, 1201 is an application name input box, 1202 is a data name input box, and 1206 is a parallel degree setting field. When the application user inputs the application name and the input data name (file name) in the application
その後リクエスト受付サーバ103は、アプリケーション利用者がアプリ名入力ボックス1201とデータ名入力ボックス1202に入力したアプリ名と登録した入力データを基に、まず並列処理を行わない場合の処理フロー内の各処理の繰り返し数、各処理の処理時間の予想値、各処理のトータルの実行時間の算出をアプリ実行時間計算部112に行わせる(図6のステップ605までの処理が行われる)。そしてリクエスト受付サーバ103は、算出されたこれらの情報(1204)をアプリケーションの処理フロー(1203)と対応付けて表示する画面を作成し、この画面をクライアント端末101のディスプレイ装置209に出力させる。
After that, the
アプリケーション利用者が、この表示された情報を基に、並列度設定欄1206に並列度を入力すると、入力された並列度はアプリ管理サーバ110に送信される。先に図6や図9を用いて説明したとおり、アプリ管理サーバ110は、渡された並列度等を用いて並列処理を行った場合の、各処理の繰り返し数と処理時間の予想値およびアプリケーションの合計実行時間を求め、その結果を表示領域(1205)に表示した画面を作成し、クライアント端末101に表示させる。そのためアプリケーション利用者は、表示領域(1205)に表示されるアプリケーションの合計実行時間が、アプリケーション利用者の希望する実行時間以内になるまで、並列度設定欄1206に入力する並列度を少しずつ増やすことを繰り返すとよい。
When the application user inputs the parallel degree in the parallel
また、使用する計算機リソースの量と計算機リソースの使用時間に応じて、アプリケーション利用者が情報処理システムの管理者(または所有者)に使用料金を支払うように、情報処理システムが運営されている場合、計算機リソース量の設定画面1200にコスト表示欄(1208)を設け、リクエスト受付サーバ103(またはアプリ管理サーバ110)はアプリケーションの並列度とアプリケーションの実行時間(アプリケーションが並列実行される場合の実行時間)に応じたコスト(情報処理システムの使用料金)を算出し、算出されたコストの情報をアプリケーション利用者に対して提供してもよい。これによりアプリケーション利用者は、アプリケーションを完了させたい実行時間と並列度に応じて掛かるコストのバランスを見ながら、今回の実行要求を満たす並列度(実行時並列度)を決定することができる。
In addition, when the information processing system is operated so that the application user pays the usage fee to the administrator (or owner) of the information processing system according to the amount of computer resources used and the usage time of the computer resources. , A cost display column (1208) is provided on the computer resource
アプリケーション利用者が実行時並列度を決定した後確定ボタン(1207)を押すと、図9の911,912の処理が行われる。つまりリクエスト受付サーバ103はクライアント端末101から、アプリケーション利用者がアプリ名入力ボックス1201と並列度設定欄1206に設定したアプリケーション名称と並列度(実行時並列度)とを受け取る。そしてリクエスト受付サーバ103はクラスタ管理サーバ120に対して、実行時並列度とアプリケーション名を指定したクラスタ生成依頼を送信する(図9の911,912の処理が行われる)。クラスタの生成が完了し、リクエスト受付サーバ103がクラスタ管理サーバ120からの返答を受領すると(図9 923)、リクエスト受付サーバ103は処理サーバ(振分)130にアプリケーションの実行依頼を送信する(図10 1002)。
When the application user presses the confirm button (1207) after determining the run-time parallel degree, the processes of 911 and 912 in FIG. 9 are performed. That is, the
本実施例に係る情報処理システムは、上で述べた機能を備えることにより、実行要求を満たす並列コンピューティングシステムの実行環境を実行要求毎に生成し、アプリケーションを並列実行させることができる。 By providing the functions described above, the information processing system according to the present embodiment can generate an execution environment of a parallel computing system that satisfies the execution request for each execution request, and execute the application in parallel.
実施例2では、アプリケーションの処理ごとに並列度を設定できる情報処理システムの例を説明する。実施例2に係る情報処理システムの構成は実施例1で説明したものと同じなので、構成の説明は略し、実施例1で説明した内容と異なる点についてのみ説明する。 In the second embodiment, an example of an information processing system capable of setting the degree of parallelism for each processing of the application will be described. Since the configuration of the information processing system according to the second embodiment is the same as that described in the first embodiment, the description of the configuration is omitted, and only the points different from the contents described in the first embodiment will be described.
図13は、実施例2に係る計算機リソース量の設定画面1200’の例を示している。図13の設定画面1200’と図12で説明した設定画面1200との違いは、図13の設定画面1200’では並列実行可能な処理毎に、並列度設定欄が設けられており(図13 1206’及び1206’’)、アプリケーション利用者は処理毎に並列度を設定可能である。また、アプリ管理サーバ110がアプリケーションの実行時間を計算する際には、設定画面1200’’で処理毎に設定された並列度に基づいて計算を行う。
FIG. 13 shows an example of the computer resource
実施例2に係る情報処理システムでは、アプリケーションの処理ごとに並列度を設定できることで、各処理の1回あたりの処理時間が異なる場合に、アプリケーション利用者は処理時間がより大きい処理の並列度の設定を大きくするなどして、トータルの実行時間の短縮の効果が大きく、コストをできるだけ小さくするような施策を選択することができるようになる。 In the information processing system according to the second embodiment, the degree of parallelism can be set for each processing of the application, so that when the processing time for each processing is different, the application user can set the degree of parallelism of the processing in which the processing time is larger. The effect of shortening the total execution time is great by increasing the setting, and it becomes possible to select measures that reduce the cost as much as possible.
このように、各処理に並列度を設定させることで、たとえば、並列後のトータルの実行時間を指定することで、各処理の並列度を算出する、といった並列度の設定方法や、コストを設定して、それに応じてもっとも実行時間が短くなるような各処理の並列度の設定を算出する、といった並列度の設定方法も考えられる。 In this way, by setting the degree of parallelism for each process, for example, by specifying the total execution time after parallelism, the degree of parallelism for each process is calculated, and the cost is set. Then, a parallel degree setting method such as calculating the parallel degree setting of each process that shortens the execution time accordingly is also conceivable.
以上により、アプリケーション利用者がアプリケーションの実行要求毎に、トータルの実行時間やコストなどの観点から、アプリケーション利用者の希望する計算機リソース量を決定でき、決定した計算機リソースを自動で確保して、アプリケーション利用者がすぐにアプリケーションを並列実行させる並列コンピューティングシステムの実行環境を提供することができる。 From the above, the application user can determine the amount of computer resources desired by the application user from the viewpoint of total execution time and cost for each application execution request, and the determined computer resources are automatically secured to apply. It is possible to provide an execution environment for a parallel computing system in which a user can immediately execute an application in parallel.
なお、上で説明した実施例では、アプリケーションの実行要求の際にクライアント端末101から入力データが指定される方法を説明したが、事前にデータ管理サーバ104にデータを登録しておき、実行要求の際に、アプリケーション利用者がデータ管理サーバ104に蓄積されているデータを入力データとして指定することで、入力データを処理してもよい。
In the embodiment described above, the method in which the input data is specified from the
101:クライアント端末、102:ネットワーク、103:リクエスト受付サーバ、104:データ管理サーバ、110:アプリ管理サーバ、120:クラスタ管理サーバ、130:処理サーバ 101: Client terminal, 102: Network, 103: Request reception server, 104: Data management server, 110: App management server, 120: Cluster management server, 130: Processing server
Claims (10)
前記処理サーバはそれぞれ、アプリケーションプログラムを実行するための1以上のプロセッサを有し、
前記管理サーバは、それぞれの前記処理サーバが有する計算機リソースの使用状態を管理しており、
前記管理サーバは、ユーザから前記アプリケーションプログラムの並列度を受領すると、
複数の前記処理サーバの有する使用可能な計算機リソースの中から、前記並列度で前記アプリケーションプログラムを実行するために必要な計算機リソースを確保し、
前記確保された計算機リソースを有する前記処理サーバに、前記アプリケーションプログラムを配置し、前記アプリケーションプログラムを並列実行させ、
前記管理サーバは、前記アプリケーションプログラムを並列実行させる時、
前記確保された計算機リソースを有する前記処理サーバのうち1つを選定し、
選定された前記処理サーバに対して、前記アプリケーションプログラムの実行を依頼し、
前記アプリケーションプログラムは、
入力データに係る処理を前記プロセッサに実行させるプログラムコードである実行部と、
複数の前記プロセッサに前記実行部の実行を指示させるためのプログラムコードである振分部と、を有し、
前記選定された前記処理サーバのプロセッサは前記振分部を実行することで、前記複数の前記処理サーバに、前記実行部を実行させるためのメッセージを発行し、
前記メッセージを受領したそれぞれの前記処理サーバが前記実行部を実行することで、並列に前記入力データに係る処理を実行する、
ことを特徴とする情報処理システム。 An information processing system that has a management server and multiple processing servers.
Each of the processing servers has one or more processors for executing application programs.
The management server manages the usage status of computer resources possessed by each of the processing servers.
When the management server receives the degree of parallelism of the application program from the user,
From the available computer resources of the plurality of processing servers, secure the computer resources required to execute the application program at the degree of parallelism.
The application program is placed on the processing server having the reserved computer resources, and the application program is executed in parallel .
When the management server executes the application program in parallel,
Select one of the processing servers having the reserved computer resources,
Request the selected processing server to execute the application program,
The application program
An execution unit that is a program code that causes the processor to execute processing related to input data.
It has a distribution unit, which is a program code for instructing a plurality of the processors to execute the execution unit.
The processor of the selected processing server executes the distribution unit to issue a message for causing the plurality of processing servers to execute the execution unit.
Each of the processing servers that received the message executes the execution unit to execute the processing related to the input data in parallel.
An information processing system characterized by this.
前記管理サーバは、前記ユーザから前記入力データと並列度(n)を受け取ると、1つの前記プロセッサが前記アプリケーションプログラムを実行することによって前記入力データに係る処理を実行した場合の実行時間と、n個の前記プロセッサで前記入力データに係る処理を並列実行した場合の実行時間と、を算出して前記ユーザに提示する、
ことを特徴とする、請求項1に記載の情報処理システム。 The application program is a program for causing the processor to process input data received from the user.
When the management server receives the input data and the degree of parallelism (n) from the user, the execution time when one processor executes the process related to the input data by executing the application program, and n The execution time when the processes related to the input data are executed in parallel by the processors are calculated and presented to the user.
The information processing system according to claim 1, wherein the information processing system is characterized by the above.
ことを特徴とする、請求項2に記載の情報処理システム。 The management server holds, for each application program, a calculation logic for calculating an execution time when the processor executes a process related to the input data by executing the application program.
The information processing system according to claim 2 , wherein the information processing system is characterized by the above.
前記計算ロジックは、前記第1の処理の実行時間を算出するための第1の計算ロジックと前記第2の処理の実行時間を算出するための第2の計算ロジックとを含んでいる、
ことを特徴とする、請求項3に記載の情報処理システム。 The process related to the input data includes a first process and a second process.
The calculation logic includes a first calculation logic for calculating the execution time of the first process and a second calculation logic for calculating the execution time of the second process.
The information processing system according to claim 3 , wherein the information processing system is characterized by the above.
前記管理サーバは、前記第1の処理の並列度(N)と前記第2の処理の並列度(M)とを受け取ると、前記計算ロジックを用いて、
N個の前記プロセッサで前記第1の処理を実行した場合の第1実行時間と、M個の前記プロセッサで前記第2の処理を実行した場合の第2実行時間と、前記第1実行時間と前記第2実行時間の合計と、を算出して前記ユーザに提示する、
ことを特徴とする、請求項4に記載の情報処理システム。 The management server is configured to be able to accept the degree of parallelism of the first process and the degree of parallelism of the second process.
When the management server receives the parallel degree (N) of the first process and the parallel degree (M) of the second process, the management server uses the calculation logic to use the calculation logic.
The first execution time when the first process is executed by the N processors, the second execution time when the second process is executed by the M processors, and the first execution time. The total of the second execution time and the total are calculated and presented to the user.
The information processing system according to claim 4 , wherein the information processing system is characterized by the above.
ことを特徴とする、請求項2ないし請求項5のいずれかに記載の情報処理システム。 The management server calculates the usage fee of the information processing system from the degree of parallelism and the execution time when the processing related to the input data is executed in parallel, and presents it to the user.
The information processing system according to any one of claims 2 to 5 , wherein the information processing system is characterized by the above.
前記管理サーバは前記管理情報記憶部に、それぞれの前記処理サーバが有するプロセッサ数と、前記プロセッサのうち前記アプリケーションプログラムの実行で使用中のプロセッサ数とを保持しており、
前記管理サーバは、前記アプリケーションプログラムの並列度を受領すると、
前記管理情報記憶部を参照することで、複数の前記処理サーバの中から未使用の前記プロセッサを有する前記処理サーバを、前記並列度を充足するために必要な数だけ確保し、前記管理情報記憶部に、前記アプリケーションプログラムの実行で使用する前記処理サーバと前記プロセッサの数についての情報を、前記アプリケーションプログラムの名称と対応付けて記録し、
前記確保された前記処理サーバに、前記アプリケーションプログラムの実行を依頼する、
ことを特徴とする、請求項1ないし請求項6のいずれかに記載の情報処理システム。 The management server has a management information storage unit for managing the usage status of the computer resource.
The management server holds, in the management information storage unit, the number of processors possessed by each of the processing servers and the number of processors among the processors used in executing the application program.
When the management server receives the degree of parallelism of the application program,
By referring to the management information storage unit, the number of the processing servers having the unused processor from the plurality of the processing servers is secured as many as necessary to satisfy the degree of parallelism, and the management information storage is performed. Information about the number of the processing server and the processor used in the execution of the application program is recorded in the unit in association with the name of the application program.
The reserved processing server is requested to execute the application program.
The information processing system according to any one of claims 1 to 6 , wherein the information processing system is characterized by the above.
前記アプリケーションプログラムを実行していた各処理サーバに、前記アプリケーションプログラムのアンインストールを実行させ、
前記アプリケーションプログラムの実行に使用していた前記処理サーバと前記プロセッサの数についての情報を前記管理情報記憶部から削除する、
ことを特徴とする、請求項7に記載の情報処理システム。 When the management server receives from the processing server that the execution of the application program has been completed,
Have each processing server that was executing the application program execute the uninstallation of the application program.
Information about the number of the processing server and the processor used to execute the application program is deleted from the management information storage unit.
The information processing system according to claim 7 , wherein the information processing system is characterized by the above.
a) 前記管理サーバがユーザから、入力データと、前記アプリケーションプログラムの並列度(n)を受領する工程と、
b) 前記管理サーバが、1つの前記プロセッサが前記アプリケーションプログラムを実行することによって前記入力データに係る処理を実行した場合の実行時間と、n個の前記プロセッサで前記アプリケーションプログラムを実行することによって前記入力データに係る処理を並列実行した場合の実行時間である並列処理実行時間と、を算出して前記ユーザに提示する工程と、
c) 前記管理サーバが前記ユーザから、前記アプリケーションプログラムを実行させる時の並列度である実行時並列度を受領する工程と、
d) 前記管理サーバが、複数の前記処理サーバの有する使用可能な計算機リソースの中から、前記実行時並列度で前記アプリケーションプログラムを実行するために必要な計算機リソースを確保する工程と、
e) 前記管理サーバが、前記確保された計算機リソースを有する前記処理サーバに前記アプリケーションプログラムを配置する工程と、
f) 前記管理サーバが前記処理サーバに、前記アプリケーションプログラムを並列実行させる工程と、
を実行し、
前記工程f)は、
前記確保された計算機リソースを有する前記処理サーバのうち1つを選定する工程と、
選定された前記処理サーバに対して、前記管理サーバが前記アプリケーションプログラムの実行を依頼する工程と、
を含み、
前記アプリケーションプログラムは、
入力データに係る処理を前記プロセッサに実行させるプログラムコードである実行部と、
複数の前記プロセッサに前記実行部の実行を指示させるためのプログラムコードである振分部と、を有し、
さらに、
g) 前記選定された前記処理サーバのプロセッサが前記振分部を実行することで、前記複数の前記処理サーバに、前記実行部を実行させるためのメッセージを発行する工程と、
h) 前記メッセージを受領したそれぞれの前記処理サーバが前記実行部を実行することで、並列に前記入力データに係る処理を実行する工程と、
を実行することを特徴とする情報処理システムの制御方法。 A control method for an information processing system having a management server and a plurality of processing servers including one or more processors for executing application programs.
a) from the management server user, the input data, a step of receiving the parallelism of the application program (n),
b) The execution time when the management server executes the process related to the input data by executing the application program by one processor, and the execution time when the application program is executed by n of the processors. A process of calculating and presenting the parallel processing execution time, which is the execution time when the processing related to the input data is executed in parallel, to the user .
c ) The process of receiving the run-time parallel degree, which is the degree of parallelism when the management server executes the application program, from the user.
d ) A step in which the management server secures the computer resources necessary for executing the application program at the run-time parallel degree from the available computer resources of the plurality of processing servers.
e ) A process in which the management server arranges the application program on the processing server having the reserved computer resources.
f ) A process in which the management server causes the processing server to execute the application program in parallel.
The execution,
In step f),
The process of selecting one of the processing servers having the reserved computer resources, and
The process in which the management server requests the selected processing server to execute the application program, and
Including
The application program
An execution unit that is a program code that causes the processor to execute processing related to input data.
It has a distribution unit, which is a program code for instructing a plurality of the processors to execute the execution unit.
further,
g) A step of issuing a message for causing the plurality of processing servers to execute the execution unit by executing the distribution unit by the processor of the selected processing server.
h) A step of executing the process related to the input data in parallel by executing the execution unit by each of the processing servers receiving the message.
A control method for an information processing system, which is characterized by executing .
i) 前記処理サーバでの前記アプリケーションプログラムの実行が終了すると、前記アプリケーションプログラムを実行していた各処理サーバに、前記アプリケーションプログラムのアンインストールを実行させる工程、
を含むことを特徴とする、請求項9に記載の情報処理システムの制御方法。 The method further
i ) When the execution of the application program on the processing server is completed, the step of causing each processing server executing the application program to uninstall the application program.
The control method of the information processing system according to claim 9 , further comprising.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016208345A JP6796994B2 (en) | 2016-10-25 | 2016-10-25 | Information processing system |
PCT/JP2017/034689 WO2018079162A1 (en) | 2016-10-25 | 2017-09-26 | Information processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016208345A JP6796994B2 (en) | 2016-10-25 | 2016-10-25 | Information processing system |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2018072907A JP2018072907A (en) | 2018-05-10 |
JP2018072907A5 JP2018072907A5 (en) | 2019-07-18 |
JP6796994B2 true JP6796994B2 (en) | 2020-12-09 |
Family
ID=62024696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016208345A Active JP6796994B2 (en) | 2016-10-25 | 2016-10-25 | Information processing system |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6796994B2 (en) |
WO (1) | WO2018079162A1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7471091B2 (en) | 2020-01-22 | 2024-04-19 | 株式会社日立製作所 | JOB EXECUTION SUPPORT SYSTEM AND JOB EXECUTION SUPPORT METHOD |
JP7340663B1 (en) | 2022-07-13 | 2023-09-07 | 株式会社三菱Ufj銀行 | Resource application system |
JP7421606B1 (en) | 2022-07-13 | 2024-01-24 | 株式会社三菱Ufj銀行 | Resource application system |
JP7318084B1 (en) | 2022-09-20 | 2023-07-31 | 株式会社三井E&S | Control device and control program |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6241300B2 (en) * | 2014-02-04 | 2017-12-06 | 富士通株式会社 | Job scheduling apparatus, job scheduling method, and job scheduling program |
WO2016079802A1 (en) * | 2014-11-18 | 2016-05-26 | 株式会社日立製作所 | Batch processing system and control method therefor |
-
2016
- 2016-10-25 JP JP2016208345A patent/JP6796994B2/en active Active
-
2017
- 2017-09-26 WO PCT/JP2017/034689 patent/WO2018079162A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP2018072907A (en) | 2018-05-10 |
WO2018079162A1 (en) | 2018-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593149B2 (en) | Unified resource management for containers and virtual machines | |
JP7092736B2 (en) | Dynamic routing using container orchestration services | |
CN108153670B (en) | Interface testing method and device and electronic equipment | |
JP6796994B2 (en) | Information processing system | |
US8793344B2 (en) | System and method for generating a response plan for a hypothetical event | |
US20150186228A1 (en) | Managing nodes in a distributed computing environment | |
US20190199785A1 (en) | Determining server level availability and resource allocations based on workload level availability requirements | |
US20140380174A1 (en) | Optimizing a clustered virtual computing environment | |
US10680975B2 (en) | Method of dynamic resource allocation for public clouds | |
Lin et al. | ABS-YARN: A formal framework for modeling Hadoop YARN clusters | |
CN110249312B (en) | Method and system for converting data integration jobs from a source framework to a target framework | |
Lebre et al. | Putting the next 500 vm placement algorithms to the acid test: The infrastructure provider viewpoint | |
US20160357584A1 (en) | Hybrid simulation in a cloud computing environment | |
JP6924083B2 (en) | Information processing system and resource allocation method | |
Sundas et al. | An introduction of CloudSim simulation tool for modelling and scheduling | |
KR101765725B1 (en) | System and Method for connecting dynamic device on mass broadcasting Big Data Parallel Distributed Processing | |
CN110622146A (en) | Programmable synthesis mechanism for device factor graph | |
CN112860450A (en) | Request processing method and device | |
CN110753121A (en) | Mirror image warehouse deployment method, device, equipment and medium | |
US20200293372A1 (en) | Efficient resource allocation for concurrent graph workloads | |
JP2017191387A (en) | Data processing program, data processing method and data processing device | |
JPWO2016084327A1 (en) | Resource prediction apparatus, resource prediction method, resource prediction program, and distributed processing system | |
Han et al. | Elastic-TOSCA: Supporting elasticity of cloud application in TOSCA | |
Kim et al. | Performability analysis of iaas cloud | |
WO2023160418A1 (en) | Resource processing method and resource scheduling method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190617 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190617 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200825 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200928 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20201110 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201117 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6796994 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |