IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2025-40044制御プログラム、システムおよび制御方法
<>
  • 特開-制御プログラム、システムおよび制御方法 図1
  • 特開-制御プログラム、システムおよび制御方法 図2
  • 特開-制御プログラム、システムおよび制御方法 図3
  • 特開-制御プログラム、システムおよび制御方法 図4
  • 特開-制御プログラム、システムおよび制御方法 図5
  • 特開-制御プログラム、システムおよび制御方法 図6
  • 特開-制御プログラム、システムおよび制御方法 図7A
  • 特開-制御プログラム、システムおよび制御方法 図7B
  • 特開-制御プログラム、システムおよび制御方法 図8
  • 特開-制御プログラム、システムおよび制御方法 図9
  • 特開-制御プログラム、システムおよび制御方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025040044
(43)【公開日】2025-03-24
(54)【発明の名称】制御プログラム、システムおよび制御方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20250314BHJP
【FI】
G06F9/50 120A
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023146699
(22)【出願日】2023-09-11
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】三輪 真弘
(57)【要約】
【課題】リソースプールを効率的に利用する。
【解決手段】サーバ1はリソースプールを備えるシステムでのアプリケーションの実行において、反復処理を実行するアプリケーションから得られる一定の反復回数の完了時間と、総反復回数とから総反復回数だけ反復処理を実行する場合の予想完了時間を予想する。サーバ1は、予想完了時間と、ユーザによって指定される制限時間とを比較し、比較結果に基づいて、アプリケーションにチェックポイントを出力させ、アプリケーションの実行停止後に、リソースプールを用いて、アプリケーションの実行に利用しているサーバ1へのリソースの構成変更を実施する。サーバ1は、構成変更を実施したサーバ1上でアプリケーションを再起動し、出力させたチェックポイントから再開させる。かかるサーバ1の制御処理は、例えば、ディスアグリゲーテッドアーキテクチャを採用するシステムに適用できる。
【選択図】図2
【特許請求の範囲】
【請求項1】
リソースプールを備えるシステムでのアプリケーションの実行において、
反復処理を実行する前記アプリケーションから得られる一定の反復回数の完了時間と、総反復回数とから前記総反復回数だけ前記反復処理を実行する場合の予想完了時間を予想し、
前記予想完了時間と、ユーザによって指定される制限時間とを比較し、
比較結果に基づいて、前記アプリケーションにチェックポイントを出力させ、前記アプリケーションの実行停止後に、前記リソースプールを用いて、前記アプリケーションの実行に利用している情報処理装置へのリソースの構成変更を実施し、
前記構成変更を実施した前記情報処理装置で前記アプリケーションを再起動し、出力させた前記チェックポイントから再開させる
処理をコンピュータに実行させる制御プログラム。
【請求項2】
前記構成変更を実施する処理は、前記予想完了時間が前記制限時間を満たさない場合に、前記アプリケーションにチェックポイントを出力させ、前記アプリケーションの実行を停止させ、前記アプリケーションの実行停止後に、前記リソースプールを用いて前記情報処理装置へのリソースの追加を実施する
ことを特徴とする請求項1に記載の制御プログラム。
【請求項3】
前記構成変更を実施する処理は、前記予想完了時間が前記制限時間を満たす場合に、前記リソースが追加済みであって前記制限時間まで余裕がある場合には、前記アプリケーションにチェックポイントを出力させ、前記アプリケーションの実行を停止させ、前記アプリケーションの実行停止後に、前記情報処理装置から追加済みの前記リソースの取り外しを実施する
ことを特徴とする請求項1に記載の制御プログラム。
【請求項4】
前記予想完了時間を予想する処理は、前記反復処理の開始からの経過時間と、前記一定の反復回数の完了時間と、残りの反復回数とを用いて、前記予想完了時間を予想する
ことを特徴とする請求項1に記載の制御プログラム。
【請求項5】
前記構成変更を実施する処理は、前記情報処理装置へのリソースの追加を実施する場合には、前記情報処理装置に予め搭載されたリソースと、前記リソースプールに含まれるリソースとの性能比を記憶するテーブルを用いて、前記制限時間に対する前記予想完了時間の比に最も近い性能比を持つリソースを前記リソースプールから選択し、選択したリソースの前記情報処理装置への追加を実施する
ことを特徴とする請求項2に記載の制御プログラム。
【請求項6】
リソースプールと、
反復処理を行うアプリケーションを実行する情報処理装置と、を有し、
前記情報処理装置は、
前記アプリケーションから得られる一定の反復回数の完了時間と、総反復回数とから前記総反復回数だけ前記反復処理を実行する場合の予想完了時間を予想する予想部と、
前記予想完了時間と、ユーザによって指定される制限時間とを比較する比較部と、
比較結果に基づいて、前記アプリケーションにチェックポイントを出力させ、前記アプリケーションの実行停止後に、前記リソースプールを用いて、前記情報処理装置へのリソースの構成変更を実施する実施部と、
前記情報処理装置で前記アプリケーションを再起動し、出力させた前記チェックポイントから再開させる再開部と、
を有することを特徴とするシステム。
【請求項7】
リソースプールを備えるシステムでのアプリケーションの実行において、
反復処理を実行する前記アプリケーションから得られる一定の反復回数の完了時間と、総反復回数とから前記総反復回数だけ前記反復処理を実行する場合の予想完了時間を予想し、
前記予想完了時間と、ユーザによって指定される制限時間とを比較し、
比較結果に基づいて、前記アプリケーションにチェックポイントを出力させ、前記アプリケーションの実行停止後に、前記リソースプールを用いて、前記アプリケーションの実行に利用している情報処理装置へのリソースの構成変更を実施し、
前記構成変更を実施した前記情報処理装置で前記アプリケーションを再起動し、出力させた前記チェックポイントから再開させる
処理をコンピュータが実行する制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御プログラムなどに関する。
【背景技術】
【0002】
近年、リソースをユースケースに応じてサーバの枠を超えて柔軟に構成するディスアグリゲーテッドアーキテクチャ(Disaggregated Architecture)が知られている。ここでいうリソースとは、システムを構築する際に必要となるCPU(Central Processing Unit)、GPU(Graphics Processing Unit)、ストレージ、ネットワーク、OS(Operating System)、ソフトウェアなどのことをいう。
【0003】
かかるディスアグリゲーテッドアーキテクチャは、リソースをプール化し、リソースプールを高速インターコネクト(例えば、PCIeスイッチ)で接続し、スイッチの接続関係を切り替えることで、サーバへのリソース追加などの構成変更を可能にする。ディスアグリゲーテッドアーキテクチャは、全てのサーバに例えばGPUなどを搭載する場合に比べて、システムの構築コストを安価に抑えることが可能となる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2019-511051号公報
【特許文献2】特表2017-527893号公報
【特許文献3】米国特許出願公開第2018/0102982号明細書
【特許文献4】米国特許出願公開第2018/0032360号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、ディスアグリゲーテッドアーキテクチャでは、リソースプールを効率的に利用できない場合があるという問題がある。
【0006】
例えば、ディスアグリゲーテッドアーキテクチャでは、リソースプール内のリソースを真に必要とするサーバへ割り当てることができない。すなわち、ユーザの要求に応じてサーバにリソースを割り当てる方法が考えられるが、かかる方法では、適切に割り当てられないことがある。一例として、サーバは、ユーザの要求に応じてGPUを割り当てたが、CPUだけでも十分高速な場合があるし、そもそも割り当てたGPUを使って実行しない場合もある。
【0007】
また、ディスアグリゲーテッドアーキテクチャでは、システムが稼働中のリソースの追加や取り外しに対応していても、アプリケーションが動作している途中で動的な追加や取り外しができない場合がある。すなわち、アプリケーションが実行されてからリソースが必要であるか否かが判断され、リソースが必要と判断されると、デバイスが追加される。ところが、アプリケーションが実行中にデバイスが追加されても、アプリケーションは、追加されたデバイスを認識することができないので、デバイスを利用できない。また、構成変更により接続されたデバイスを利用中のアプリケーションが存在する場合、アプリケーションが実行中にデバイスが取り外されるとカーネルパニックが発生し、システムが停止してしまうことがある。
【0008】
本発明は、1つの側面では、ディスアグリゲーテッドアーキテクチャにおいて、リソースプールを効率的に利用することを目的とする。
【課題を解決するための手段】
【0009】
1つの態様では、制御プログラムは、リソースプールを備えるシステムでのアプリケーションの実行において、反復処理を実行する前記アプリケーションから得られる一定の反復回数の完了時間と、総反復回数とから前記総反復回数だけ前記反復処理を実行する場合の予想完了時間を予想し、前記予想完了時間と、ユーザによって指定される制限時間とを比較し、比較結果に基づいて、前記アプリケーションにチェックポイントを出力させ、前記アプリケーションの実行停止後に、前記リソースプールを用いて、前記アプリケーションの実行に利用している情報処理装置へのリソースの構成変更を実施し、前記構成変更を実施した前記情報処理装置上で前記アプリケーションを再起動し、出力させた前記チェックポイントから再開させる、処理をコンピュータに実行させる。
【発明の効果】
【0010】
1実施態様によれば、リソースプールを効率的に利用できる。
【図面の簡単な説明】
【0011】
図1図1は、実施例に係るシステムの構成の一例を示す図である。
図2図2は、実施例に係る制御処理の流れの一例を示す図である。
図3図3は、実施例に係るサーバの機能構成の一例を示す図である。
図4図4は、実施例に係る制御処理の一例を示す図(制限時間に間に合う場合)である。
図5図5は、実施例に係る制御処理の一例を示す図(制限時間に間に合わない場合)である。
図6図6は、実施例に係る制御処理の一例を示す図(取り外す場合)である。
図7A図7Aは、実施例に係る制御処理のシーケンスの一例を示す図(1)である。
図7B図7Bは、実施例に係る制御処理のシーケンスの一例を示す図(2)である。
図8図8は、実施例に係るリソース追加と再開処理のシーケンスの一例を示す図である。
図9図9は、実施例に係るリソース取り外しと再開処理のシーケンスの一例を示す図である。
図10図10は、制御プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0012】
以下に、本願の開示する制御プログラム、システムおよび制御方法の実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。
【実施例0013】
[システムの構成]
図1は、実施例に係るシステムの構成の一例を示すブロック図である。図1に示すシステム9は、複数のサーバ1と、リソースプール2と、スイッチ3と、管理サーバ4とを含む。システム9は、ディスアグリゲーテッドアーキテクチャ(Disaggregated Architecture)を備える構成のシステムである。かかるディスアグリゲーテッドアーキテクチャは、リソースをプール化し、リソースプール2をスイッチ3で接続し、スイッチ3の接続関係を切り替えることで、サーバ1へのリソース追加などの構成変更を可能にする。
【0014】
リソースプール2は、リソースをプール化する。ここでは、リソースは、GPUを対象とするが、これに限定されるものではない。リソースは、システム9を構築する際に必要となるCPU、ストレージ、ネットワーク、OS、ソフトウェアなどを含んでも良い。
【0015】
管理サーバ4は、リソースプール2内のリソースをサーバ1に追加したり、サーバ1に追加されたリソースプール2内のリソースを取り外したりする。例えば、管理サーバ4は、サーバ1からの指示に応じて、サーバ1へのリソース追加やリソース取り外しの構成変更を実施する。構成変更は、リソースプール2とサーバ1との間にあるスイッチ3の経路を切り替えることで、実施できる。スイッチ3には、例えば、高速インターコネクトであるPCIeスイッチが挙げられる。
【0016】
サーバ1は、CPU、メモリ、ストレージおよびNIC(Network Interface Card)を含む。サーバ1は、対象のアプリケーションを制御プロセス配下で実行する。
【0017】
ここで、対象となるアプリケーションについて説明する。対象のアプリケーションは、ループによる反復処理を行う。反復処理を行うアプリケーションには、例えば、Deep Learning(DL)の学習処理を行うアプリケーションが挙げられる。かかる学習処理は、学習データの全体を処理する1単位をエポックと呼び、このエポックを一定の反復回数だけ実行することで学習を進める。実施例では、対象のアプリケーションを学習処理として説明する。
【0018】
また、対象のアプリケーションは、追加対象のリソースを利用可能なアプリケーションであるとする。例えば、対象のアプリケーションは、CPUだけでなくGPUでも実行可能であり、GPUが接続されていればGPUを利用でき、GPUが接続されていなければCPUを利用できる。
【0019】
また、対象のアプリケーションは、チェックポイントに対応したアプリケーションであるとする。チェックポイントとは、比較的実行時間が長いアプリケーションにおいて、一定の繰り返しやステップを実行した途中の結果をディスクに出力しておくことで、ジョブの実行が停止しても、停止した際の途中の結果から再開できる仕組みのことをいう。実施例では、かかるチェックポイントを利用する。
【0020】
対象のアプリケーションは、制御プロセス配下で実行される。制御プロセスは、対象のアプリケーションから得られる一定の反復回数の完了時間と、反復処理の総反復回数とから総反復回数だけ反復処理を実行する場合の完了にかかると予想される時間(予想完了時間)を予想する。制御プロセスは、予想完了時間と、ユーザが所望する制限時間とを比較し、予想完了時間が制限時間を満たさない場合には、対象のアプリケーションにチェックポイントを出力させ、対象のアプリケーションの実行を停止する。そして、制御プロセスは、対象のアプリケーションの実行停止後に、リソースプール2を用いて、サーバ1へのリソースの構成変更を実施する。ここでは、例えば、制御プロセスは、管理サーバ4にGPU追加の構成変更を指示し、管理サーバ4がスイッチ3の経路を制御して構成変更する。また、制御プロセスは、予想完了時間が制限時間を満たす場合には、リソースが追加済みであって予想完了時間が制限時間まで余裕がある場合には、対象のアプリケーションにチェックポイントを出力させ、対象のアプリケーションの実行を停止する。そして、制御プロセスは、対象のアプリケーションの実行停止後に、リソースプール2を用いて、サーバ1へのリソースの構成変更を実施する。ここでは、例えば、制御プロセスは、管理サーバ4にGPU取り外しの構成変更を指示し、管理サーバ4がスイッチ3の経路を制御して構成変更する。そして、制御プロセスは、構成変更したサーバ1上で対象のアプリケーションを再起動し、出力させたチェックポイントから再開させる。
【0021】
[制御処理の流れ]
ここで、制御プロセスが実施する制御処理の流れを、図2を参照して説明する。図2は、実施例に係る制御処理の流れの一例を示す図である。なお、図2では、対象のアプリケーションは、DLの学習処理であるとする。学習処理を含む学習実行部20は、初期状態ではCPUを使用しているとする。
【0022】
図2に示すように、制御プロセス10は、CPUで実行している学習実行部20から1エポックの完了時間を取得する(a1)。制御プロセス10は、1エポックの完了時間と残りのエポック数(反復回数)とから、総エポック数だけ学習処理を実行する場合の予想完了時間を予想する(a2)。制御プロセス10は、予想完了時間と、ユーザによって指定された制限時間とを比較し、予想完了時間が制限時間を満たすか否かを判定する(a3)。
【0023】
制御プロセス10は、予想完了時間が制限時間を満たさない場合には、学習実行部20にチェックポイントを出力させる(a4,a5)。そして、制御プロセス10は、CPUで実施している学習処理の実行を停止する(a6)。そして、制御プロセス10は、管理サーバ4にGPU追加の構成変更を指示し、管理サーバ4がスイッチ3の経路を制御してサーバ1にGPUを追加する。
【0024】
そして、制御プロセス10は、サーバ1にGPUを追加した構成で学習処理を起動し(a7)、出力させたチェックポイントから再開させる(a8)。つまり、GPUを用いて学習処理を実行することができる。
【0025】
これにより、システム9は、リソースプール2内のリソースを、真に必要とするサーバ1へ割り当てることができる。また、システム9は、対象の学習処理が動作している途中であっても、確実にリソースの追加や取り外しをすることができる。例えば、対象の学習処理は、リソースが追加される場合には一旦停止され、リソースが追加や取り外されてから再開されるので、追加されたリソースを認識することができる。この結果、システム9は、リソースの追加や取り外しを確実に行うことができる。
【0026】
[サーバの機能構成]
図3は、実施例に係るサーバの機能構成の一例を示す図である。図3に示すように、サーバ1は、制御プロセス10および学習実行部20を有する。制御プロセス10は、時間管理部11、起動・停止部12、チェックポイント指示部13および構成変更部14を有する。学習実行部20は、学習処理実行部21、時間計測部22およびチェックポイント出力部23を有する。なお、時間管理部11は、予想部および比較部の一例である。起動・停止部12、チェックポイント指示部13および構成変更部14は、実施部の一例である。起動・停止部12は、再開部の一例である。
【0027】
時間管理部11は、学習実行の時間を管理する。例えば、時間管理部11は、ユーザによって指定される制限時間および残りの反復回数を受け取る。時間管理部11は、学習実行部20から、一定反復の学習処理に要する時間を取得する。一例として、時間管理部11は、1エポックに要する時間および残りの反復回数を取得する。そして、時間管理部11は、一定反復の学習処理に要する時間と学習処理の残りの反復回数とから以下の式(1)のように予想完了時間を予想する。なお、反復時間とは、例えば、1回反復の学習処理に要する時間のことをいう。
予想完了時間=(これまでの経過時間)+(反復時間×残り反復回数)・・・式(1)
【0028】
そして、時間管理部11は、予想完了時間と、制限時間とを比較し、比較結果に基づいて、以下の処理を実行する。時間管理部11は、予想完了時間が制限時間を満たさない場合には、リソースを追加すべく、以下の処理を行う。時間管理部11は、チェックポイント指示部13にチェックポイント出力の指示をさせる。時間管理部11は、起動・停止部12に学習処理の停止をさせる。時間管理部11は、学習処理の停止後に、構成変更部14に、リソースを追加するように構成変更をさせる。時間管理部11は、起動・停止部12に指示し、学習実行部20に対して、チェックポイントから学習処理を再開させる。
【0029】
また、時間管理部11は、予想完了時間が制限時間を満たす場合、リソースが追加済みであって予想完了時間が制限時間まで余裕がある場合には、リソースの取り外しをすべく、以下の処理を行う。時間管理部11は、チェックポイント指示部13にチェックポイント出力の指示をさせる。時間管理部11は、起動・停止部12に学習処理の停止をさせる。時間管理部11は、学習処理の停止後に、構成変更部14に、追加済みのリソースを取り外すように構成変更をさせる。時間管理部11は、起動・停止部12に指示し、学習実行部20に対して、チェックポイントから学習処理を再開させる。
【0030】
起動・停止部12は、時間管理部11の指示に基づき、学習処理を起動または停止する。例えば、起動・停止部12は、時間管理部11からの学習処理の停止指示を受け付けると、学習実行部20における現在実行中の学習処理を停止する。また、起動・停止部12は、時間管理部11からの学習処理の起動指示を受け付けると、学習実行部20における学習処理を起動する。
【0031】
チェックポイント指示部13は、時間管理部11の指示に基づき、チェックポイントの出力を指示する。例えば、チェックポイント指示部13は、チェックポイント指示を時間管理部11から受け付けると、学習実行部20における学習処理にチェックポイントを出力させる。
【0032】
構成変更部14は、時間管理部11の指示に基づき、リソースの構成変更を指示する。例えば、構成変更部14は、リソース追加を時間管理部11から受け付けると、学習処理に利用しているサーバ1へのリソース追加を管理サーバ4に指示する。また、構成変更部14は、リソースの取り外しを時間管理部11から受け付けると、学習処理に利用しているサーバ1へのリソース取り外しを管理サーバ4に指示する。
【0033】
学習処理実行部21は、制御プロセス10配下で、学習処理を実行する。例えば、学習処理実行部21は、制御プロセス10から学習処理の起動要求を受け付けると、チェックポイントがある場合には、チェックポイントから学習処理を再開し、チェックポイントがない場合には、開始から学習処理を実行する。また、学習処理実行部21は、制御プロセス10から学習処理の停止要求を受け付けると、学習処理を停止する。
【0034】
時間計測部22は、学習実行の時間を計測する。例えば、時間計測部22は、1回反復の学習処理に要する時間を毎回計測する。一例として、時間計測部22は、エポック毎、各エポックの完了時間を計測する。
【0035】
チェックポイント出力部23は、チェックポイントを出力する。例えば、チェックポイント出力部23は、制御プロセス10から学習処理のチェックポイントの出力要求を受け付けると、学習処理のチェックポイントを出力する。
【0036】
[制御処理の一例]
ここで、実施例に係る制御処理の一例を、図4図6を参照して説明する。図4図6は、実施例に係る制御処理の一例を示す図である。図4では、制限時間に間に合う場合について説明する。図5では、制限時間に間に合わない場合について説明する。図6では、取り外す場合について説明する。
【0037】
図4は、実施例に係る制御処理の一例を示す図(制限時間に間に合う場合)である。図4に示すように、学習処理は、5エポック実行し、制限時間は、1800秒であるとする。学習処理の実行開始時のシステム9の構成について、サーバ1には、CPUとメモリが含まれ、リソースプール2には、GPUが含まれる。ここでは、エポック「1」が完了した時点(b0)での制御プロセス10の判定について説明する。
【0038】
図4に示すように、時間管理部11は、1エポックに要する時間および残りの反復回数を学習実行部20から取得する。ここでは、1エポックに要する時間(反復時間)については、「200秒」が取得される。残りの反復回数については、「4」が取得される。また、これまでの経過時間は、エポック「1」が完了するまでの経過時間のことをいい、「210秒」である。
【0039】
そして、時間管理部11は、式(1)を用いて、予想完了時間を予想する。ここでは、予想完了時間は、1010(=210+200×4)秒と予想される。すなわち、1反復(エポック)に「200秒」が掛かり、実行開始から1エポックが完了するまでに「210秒」が掛かる。残り4エポックで800(=200×4)秒が掛かるので、予想完了時間は「1010秒」と予想される。
【0040】
そして、時間管理部11は、予想完了時間と、制限時間とを比較し、予想完了時間が制限時間を満たすか否かを判定する。ここでは、予想完了時間が「1010秒」であり、制限時間が「1800秒」であるので、予想完了時間が制限時間を満たすと判定される。この結果、エポック2以降のサーバ1の構成は、変更なしと判断される。
【0041】
図5は、実施例に係る制御処理の一例を示す図(制限時間に間に合わない場合)である。図5に示すように、学習処理は、5エポック実行し、制限時間は、600秒であるとする。学習処理の実行開始時のシステム9の構成について、サーバ1には、CPUとメモリが含まれ、リソースプール2には、GPUが含まれる。ここでは、エポック「1」が完了した時点(b1)の制御プロセス10の判定について説明する。
【0042】
図5に示すように、時間管理部11は、1エポックに要する時間および残りの反復回数を学習実行部20から取得する。ここでは、1エポックに要する時間(反復時間)については、「200秒」が取得される。残りの反復回数については、「4」が取得される。また、これまでの経過時間は、実行開始からエポック「1」が完了するまでの経過時間のことをいい、「210秒」である。
【0043】
そして、時間管理部11は、式(1)を用いて、予想完了時間を予想する。ここでは、予想完了時間は、1010(=210+200×4)秒と予想される。すなわち、1反復(エポック)に「200秒」が掛かり、実行開始から1エポックが完了するまでに「210秒」が掛かる。残り4エポックで800(=200×4)秒が掛かるので、予想完了時間は「1010秒」と予想される。
【0044】
そして、時間管理部11は、予想完了時間と、制限時間とを比較し、予想完了時間が制限時間を満たすか否かを判定する。ここでは、予想完了時間が「1010秒」であり、制限時間が「600秒」であるので、予想完了時間が制限時間を満たさないと判定される。すなわち、このままでは制限時間内の完了が難しい。
【0045】
そこで、時間管理部11は、制限時間内の処理の完了を満たすべく、以下の処理を行う。時間管理部11は、学習実行部20に対して、チェックポイント出力の指示をさせ、学習処理の停止をさせる。そして、時間管理部11は、学習処理の停止後に、構成変更部14に、リソースを追加するように構成変更をさせる。そして、時間管理部11は、学習実行部20に対して、学習処理の起動をさせ、チェックポイントから学習処理を再開させる(b2)。ここでは、構成変更部14は、時間管理部11の指示に基づき、リソースプール2に含まれるGPUをサーバ1に追加する。この結果、エポック2以降のサーバ1には、CPUとメモリに加え、GPUが含まれる。そして、CPUは、新たにリソースプール2内のGPUと接続され、GPUを用いて学習処理を実行する。
【0046】
そして、エポック「2」が完了した時点(b3)の制御プロセス10の判定は、以下のようになる。時間管理部11は、1エポックに要する時間および残りの反復回数を学習実行部20から取得する。ここでは、直近の1エポックに要する時間(反復時間)については、「50秒」が取得される。残りの反復回数については、「3」が取得される。また、これまでの経過時間は、実行開始からエポック「2」が完了するまでの経過時間のことをいい、「270秒」である。
【0047】
そして、時間管理部11は、式(1)を用いて、予想完了時間を予想する。ここでは、予想完了時間は、420(=270+50×3)秒と予想される。すなわち、直近の1反復(エポック)に「50秒」が掛かり、実行開始から1エポックが完了するまでに「270秒」が掛かる。残り3エポックで150(=50×3)秒が掛かるので、予想完了時間は「420秒」と予想される。
【0048】
そして、時間管理部11は、予想完了時間と、制限時間とを比較し、予想完了時間が制限時間を満たすか否かを判定する。ここでは、予想完了時間が「420秒」であり、制限時間が「600秒」であるので、予想完了時間が制限時間を満たすと判定される。この結果、エポック3以降の構成は、変更なしと判断される。
【0049】
これにより、制御プロセス10は、ディスアグリゲーテッドアーキテクチャにおいて、リソースプール2を効率的に利用することができる。
【0050】
図6は、実施例に係る制御処理の一例を示す図(取り外す場合)である。図6に示すように、学習処理は、5エポック実行し、制限時間は、700秒であるとする。学習処理の実行開始時のサーバ1の構成は、CPUのみであったが、エポック「1」が完了した時点でCPUにGPUを追加したものとする。ここでは、エポック「2」が完了した時点(b4)の制御プロセス10の判定について説明する。
【0051】
図6に示すように、時間管理部11は、1エポックに要する時間および残りの反復回数を学習実行部20から取得する。ここでは、1エポックに要する時間(反復時間)については、「50秒」が取得される。残りの反復回数については、「3」が取得される。また、これまでの経過時間は、実行開始からエポック「2」が完了するまでの経過時間のことをいい、「270秒」である。
【0052】
そして、時間管理部11は、式(1)を用いて、予想完了時間を予想する。ここでは、予想完了時間は、420(=270+50×3)秒と予想される。すなわち、直近の1反復(エポック)に「50秒」が掛かり、実行開始から1エポックが完了するまでに「270秒」が掛かる。残り3エポックで150(=50×3)秒が掛かるので、予想完了時間は「420秒」と予想される。
【0053】
そして、時間管理部11は、予想完了時間と、制限時間とを比較し、予想完了時間が制限時間を満たすか否かを判定する。ここでは、予想完了時間が「420秒」であり、制限時間が「700秒」であるので、予想完了時間が制限時間を満たすと判定される。さらに、時間管理部11は、予想完了時間が制限時間を満たす場合には、リソースが追加済みであって予想完了時間が制限時間まで余裕がある否かを判定する。ここでは、予想完了時間と制限時間との差分は、「280秒」(=700-420)である。サーバ1にGPUを追加する前では、1エポックの実行時間は「200秒」であった。一方、サーバ1にGPUを追加した後では、1エポックの実行時間は「50秒」であった。予想完了時間と制限時間との差分である「280」を、最後の1エポックを仮にCPUのみで実行した場合の残りの時間(200-50)で割ると、1.86と算出され、1より大きくなる。したがって、最後の1エポックでは、さらに、仮にCPUのみで実行した場合の「150秒」(=200-50)だけ時間が長くなっても制限時間までに間に合うと判断される。すなわち、時間管理部11は、予想完了時間が制限時間まで余裕があると判定する。
【0054】
そこで、時間管理部11は、残り1エポック時点で、リソースの取り外しをすべく、以下の処理を行う。時間管理部11は、学習実行部20に対して、チェックポイント出力の指示をさせ、学習処理の停止をさせる。時間管理部11は、学習処理の停止後に、構成変更部14に、追加済みのリソースを取り外すように構成変更をさせる。そして、時間管理部11は、学習実行部20に対して、学習処理の起動をさせ、チェックポイントから学習処理を再開させる。ここでは、構成変更部14は、時間管理部11の指示に基づき、リソースプール2に含まれるGPUをサーバ1から取り外す。この結果、最後のエポック5では、サーバ1の構成は、再度CPUのみに変更される。なお、最後のエポックをリソースの取り外しの対象とするのは、リソースを取り外したり、追加したりする回数を最小化するためである。
【0055】
これにより、制御プロセス10は、ディスアグリゲーテッドアーキテクチャにおいて、リソースプール2を効率的に利用することができる。
【0056】
[制御処理のシーケンス]
ここで、実施例に係る制御処理のシーケンスの一例を、図7Aおよび図7Bを参照して説明する。図7Aおよび図7Bは、実施例に係る制御処理のシーケンスの一例を示す図である。
【0057】
図7Aに示すように、制御プロセス10は、ユーザによって指定される学習処理の制限時間を受け取る(ステップS11)。そして、制御プロセス10は、学習実行部20に対して、学習処理の実行開始を指示する(ステップS12)。
【0058】
制御プロセス10から学習処理の実行開始の指示を受け付けた学習実行部20は、学習処理の実行を開始する(ステップS21)。
【0059】
図7Bに示すように、学習実行部20は、学習処理を実行する(ステップS22)。学習処理は、1エポック毎に行われる。そして、学習実行部20は、1エポックの学習処理の反復時間および残り反復回数を制御プロセス10に通知する(ステップS23)。反復時間は、1エポックの学習処理に要する時間のことをいう。
【0060】
学習実行部20から通知を受け付けた制御プロセス10は、エポック毎に、以下の処理を行う。制御プロセス10は、学習開始からの経過時間に(反復時間×残り反復回数)を加えて得られる予想完了時間を算出する(ステップS13)。そして、制御プロセス10は、予想完了時間が制限時間より小さいか否かを判定する(ステップS14)。すなわち、制御プロセス10は、予想完了時間が制限時間を満たすか否かを判定する。
【0061】
予想完了時間が制限時間以上であると判定した場合(ステップS14;No)には、制御プロセス10は、リソース追加と再開処理を実行する(ステップS15)。すなわち、予想完了時間が制限時間を満たさない場合である。なお、リソース追加と再開処理のフローチャートは、後述する。そして、制御プロセス10は、ステップS19に移行する。
【0062】
一方、予想完了時間が制限時間未満であると判定した場合(ステップS14;Yes)には、制御プロセス10は、リソース追加済み且つ制限時間まで余裕があるか否かを判定する(ステップS16)。すなわち、予想完了時間が制限時間を満たす場合である。リソース追加済み且つ制限時間まで余裕がないと判定した場合には(ステップS16;No)、制御プロセス10は、リソースの構成を変更しないで、ステップS19に移行する。
【0063】
一方、リソース追加済み且つ制限時間まで余裕があると判定した場合には(ステップS16;Yes)、制御プロセス10は、次の学習処理は残りの1エポックであるか否かを判定する(ステップS17)。次の学習処理が残りの1エポックでないと判定した場合には(ステップS17;No)、制御プロセス10は、リソースの構成を変更しないで、ステップS19に移行する。
【0064】
一方、次の学習処理が残りの1エポックであると判定した場合には(ステップS17;Yes)、制御プロセス10は、リソース取り外しと再開処理を実行する(ステップS18)。なお、リソース取り外しと再開処理のフローチャートは、後述する。そして、制御プロセス10は、ステップS19に移行する。
【0065】
ステップS19において、制御プロセス10は、総エポック数の学習処理を終了したか否かを判定する(ステップS19)。総エポック数の学習処理を終了していないと判定した場合には(ステップS19;No)、制御プロセス10は、次のエポックの学習処理に移行する。
【0066】
一方、総エポック数の学習処理を終了したと判定した場合には(ステップS19;Yes)、制御プロセス10は、制御プロセス処理を終了する。
【0067】
[リソース追加と再開処理のシーケンス]
図8は、実施例に係るリソース追加と再開処理のシーケンスの一例を示す図である。図8に示すように、制御プロセス10は、学習実行部20に対して、チェックポイントの出力および学習処理の停止を指示する(ステップS31)。すると、学習実行部20は、学習処理のチェックポイントを出力する。学習実行部20は、チェックポイントの出力後、学習処理の停止を実施する(ステップS41)。
【0068】
そして、制御プロセス10は、学習処理の停止後、リソースの追加となるシステム構成の変更を実施する(ステップS32)。例えば、制御プロセス10は、管理サーバ4に対して、学習処理に利用しているサーバ1へのリソースの追加を指示し、管理サーバ4がスイッチ3の経路を制御してサーバ1へのリソースを追加する。
【0069】
リソースの追加後、制御プロセス10は、学習実行部20に対して、チェックポイントから学習再開するように指示する(ステップS33)。すると、学習実行部20は、追加されたシステム構成を用いて学習処理を起動する(ステップS42)。そして、学習実行部20は、チェックポイントから学習処理の実行を再開する(ステップS43)。
【0070】
[リソース取り外しと再開処理のシーケンス]
図9は、実施例に係るリソース取り外しと再開処理のシーケンスの一例を示す図である。図9に示すように、制御プロセス10は、学習実行部20に対して、チェックポイントの出力および学習処理の停止を指示する(ステップS51)。すると、学習実行部20は、学習処理のチェックポイントを出力する。学習実行部20は、チェックポイントの出力後、学習処理の停止を実施する(ステップS61)。
【0071】
そして、制御プロセス10は、学習処理の停止後、リソースの取り外しとなるシステム構成の変更を実施する(ステップS52)。例えば、制御プロセス10は、管理サーバ4に対して、学習処理に利用しているサーバ1へのリソースの取り外しを指示し、管理サーバ4がスイッチ3の経路を制御してサーバ1へのリソースを取り外す。
【0072】
リソースの追加後、制御プロセス10は、学習実行部20に対して、チェックポイントから学習再開するように指示する(ステップS53)。すると、学習実行部20は、取り外されたシステム構成を用いて学習処理を起動する(ステップS62)。そして、学習実行部20は、チェックポイントから学習処理の実行を再開する(ステップS63)。
【0073】
なお、制御プロセス10は、一定反復の学習処理に要する時間と学習処理の残りの反復回数とから予想完了時間を予想する。実施例では、一定反復の学習処理を1エポックとして説明した。しかしながら、一定反復の学習処理に要する時間は、1エポックに要する時間に限定されず、総反復回数に応じて2エポックに要する時間にしても良いし、3エポックに要する時間にしても良い。
【0074】
また、実施例では、対象のアプリケーションを学習処理として説明した。しかしながら、対象のアプリケーションは、学習処理に限定されず、ループによる反復処理を実施するアプリケーションであれば良い。例えば、対象のアプリケーションは、for文やwhile文などで実現できるループによる反復処理を実施するアプリケーションであっても良い。
【0075】
また、実施例では、実行開始時のシステム9の構成について、サーバ1は、リソースプール2内のリソースを利用しない構成とした。しかしながら、リソースに余裕があれば、実行開始時からサーバ1にリソースを割り当てる構成としても良い。例えば、システム9は、(サーバ1の利用率)/(リソースプール2内のリソースの利用率)が所定の割合以上であれば、リソースを割り当てていないサーバ1が多くリソースに余裕がある場合と判定できる。かかる場合には、対象のアプリケーションは、サーバ1にリソースを割り当てから実行を開始するようにしても良い。
【0076】
また、実施例では、サーバ1は、リソースプール2内のリソースを利用すると説明した。リソースプール2には、同一種類のリソースに、複数の性能差がある場合がある。かかる場合には、サーバ1は、以下のように利用するリソースを選択しても良い。例えば、リソースがGPUである場合に、システム9は、リソースプール2内の複数ある各GPUに対し、予めベンチマークを取得する。そして、システム9は、サーバ1に搭載されるCPUに対するGPUの加速度合いを求め、各GPUと加速度合いとを対応付ける表を生成する。そして、サーバ1は、CPUで対象のアプリケーションを実行した場合の予想完了時間とユーザによって指定される制限時間とを比較し、予想完了時間が制限時間を満たさない場合には、制限時間に対する予想完了時間の比を求め、作成された表から当該比に近い加速度合いを持つGPUを選択すれば良い。一例として、予想完了時間が制限時間の5倍である場合には、CPUに対して3倍加速されるGPUが選択されても予想完了時間は制限時間を満たせない。このため、サーバ1は、予め生成された表からCPUに対して5倍加速されるGPUを選択すれば良い。
【0077】
[実施例の効果]
上記実施例によれば、サーバ1は、リソースプール2を備えるシステム9でのアプリケーションの実行において、反復処理を実行するアプリケーションから得られる一定の反復回数の完了時間と、総反復回数とから総反復回数だけ反復処理を実行する場合の予想完了時間を予想する。サーバ1は、予想完了時間と、ユーザによって指定される制限時間とを比較する。サーバ1は、比較結果に基づいて、アプリケーションにチェックポイントを出力させ、アプリケーションの実行停止後に、リソースプールを用いて、アプリケーションの実行に利用しているサーバ1へのリソースの構成変更を実施する。サーバ1は、構成変更を実施したサーバ1上でアプリケーションを再起動し、出力させたチェックポイントから再開させる。かかる構成によれば、サーバ1は、リソースプール2を効率的に利用できる。例えば、サーバ1は、リソースプール2内のリソースを真に必要とする場合に必要なリソースを利用できる。加えて、サーバ1は、リソースプール2内のリソースを必要と判断されたタイミングまたは不必要と判断されたタイミングで動的且つ確実に利用できる。
【0078】
また、上記実施例によれば、サーバ1は、構成変更を実施する処理について、予想完了時間が制限時間を満たさない場合に、アプリケーションにチェックポイントを出力させ、アプリケーションの実行を停止させ、アプリケーションの実行停止後に、リソースプール2を用いてサーバ1へのリソースの追加を実施する。かかる構成によれば、サーバ1は、予想完了時間が制限時間を満たさない場合に、リソースプール2内のリソースをアプリケーションから使用することが可能になり、また、リソースを使用することで処理を加速できる。
【0079】
また、上記実施例によれば、サーバ1は、構成変更を実施する処理について、予想完了時間が制限時間を満たす場合に、リソースが追加済みであって制限時間まで余裕がある場合には、アプリケーションにチェックポイントを出力させ、アプリケーションの実行を停止させ、アプリケーションの実行停止後に、サーバ1から追加済みのリソースの取り外しを実施する。かかる構成によれば、サーバ1は、リソースプール2内のリソースをアプリの停止後に取り外せるので、エラーなくリソースを取り外すことが可能になり、また、他にリソースを必要とするアプリケーションでのリソース使用が可能になる。
【0080】
また、上記実施例によれば、サーバ1は、予想完了時間を予想する処理について、反復処理の開始からの経過時間と、一定の反復回数の完了時間と、残りの反復回数とを用いて、予想完了時間を予想する。かかる構成によれば、サーバ1は、予想完了時間を予想することで、制限時間と比較できることとなり、現在のサーバ1に搭載されるリソースの過不足を認識できる。
【0081】
また、上記実施例によれば、サーバ1は、構成変更を実施する処理について、サーバ1へのリソースの追加を実施する場合には、サーバ1に予め搭載されたリソースと、リソースプール2に含まれるリソースとの性能比を記憶するテーブルを用いて、制限時間に対する予想完了時間の比に最も近い性能比を持つリソースをリソースプール2から選択し、選択したリソースのサーバ1への追加を実施する。かかる構成によれば、サーバ1は、制限時間に間に合うようなリソースを確実にリソースプール2から選択できる。
【0082】
[その他]
なお、図示したサーバ1における制御プロセス10の各構成要素や学習実行部20の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、サーバ1における制御プロセス10や学習実行部20の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0083】
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図3に示したサーバ1における制御プロセス10および学習実行部20と同様の機能を実現する制御プログラムを実行するコンピュータの一例を説明する。ここでは、サーバ1における制御プロセス10および学習実行部20と同様の機能を実現する制御プログラムを一例として説明する。図10は、制御プログラムを実行するコンピュータの一例を示す図である。
【0084】
図10に示すように、コンピュータ200は、各種演算処理を実行するCPU(Central Processing Unit)203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信I/F(Interface)217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD(Hard Disk Drive)205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、表示装置209、ドライブ装置213、入力装置215、通信I/F217は、バス219で接続されている。
【0085】
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、制御プログラム205aおよび制御処理関連情報205bを記憶する。通信I/F217は、ネットワークと装置内部とのインターフェースを司り、他のコンピュータからのデータの入出力を制御する。通信I/F217には、例えば、モデムやLANアダプタなどを採用することができる。
【0086】
表示装置209は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する表示装置である。表示装置209は、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどを採用することができる。
【0087】
CPU203は、制御プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスはサーバ1の各機能部に対応する。制御処理関連情報205bには、例えば、図示しないチェックポイントを保持したファイルなどが含まれる。そして、例えばリムーバブルディスク211が、制御プログラム205aなどの各情報を記憶する。
【0088】
なお、制御プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから制御プログラム205aを読み出して実行するようにしても良い。
【0089】
また、上記実施例で説明したサーバ1が行う制御処理は、例えば、ディスアグリゲーテッドアーキテクチャを採用するシステムに適用することができる。
【符号の説明】
【0090】
1 サーバ
2 リソースプール
3 スイッチ
4 管理サーバ
9 システム
10 制御プロセス
11 時間管理部
12 起動・停止部
13 チェックポイント指示部
14 構成変更部
20 学習実行部
21 学習処理実行部
22 時間計測部
23 チェックポイント出力部
図1
図2
図3
図4
図5
図6
図7A
図7B
図8
図9
図10