(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023182122
(43)【公開日】2023-12-26
(54)【発明の名称】学習サイクル実行プログラム、情報処理装置及び学習サイクル実行方法
(51)【国際特許分類】
G06F 9/48 20060101AFI20231219BHJP
G06N 20/00 20190101ALI20231219BHJP
【FI】
G06F9/48 300A
G06N20/00
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022095534
(22)【出願日】2022-06-14
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100094525
【弁理士】
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【弁理士】
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】麻岡 正洋
(72)【発明者】
【氏名】田原 司睦
(57)【要約】
【課題】ジョブの実行を効率的に行うことを可能とする学習サイクル実行プログラム、情報処理装置及び学習サイクル実行方法を提供する。
【解決手段】機械学習モデルの学習処理を行う1以上の学習サイクルを実行する第1ジョブの実行に応じて、第1ジョブに含まれる学習サイクルの実行に要した第1実行所要時間を特定し、特定した第1実行所要時間に基づいて、第1制限時間内に実行が完了する学習サイクルの第1数を特定し、特定した第1数の学習サイクルを実行する第2ジョブを生成し、生成した第2ジョブを実行し、第2ジョブは、第1数の学習サイクルの実行が完了した場合、第1数の学習サイクルの次の学習サイクルの実行が第1制限時間内に完了するか否かを判定し、次の学習サイクルの実行が第1制限時間内に完了すると判定した場合、次の学習サイクルを実行する。
【選択図】
図13
【特許請求の範囲】
【請求項1】
機械学習モデルの学習処理を行う1以上の学習サイクルを実行する第1ジョブの実行に応じて、前記第1ジョブに含まれる学習サイクルの実行に要した第1実行所要時間を特定し、
特定した前記第1実行所要時間に基づいて、第1制限時間内に実行が完了する学習サイクルの第1数を特定し、
特定した前記第1数の学習サイクルを実行する第2ジョブを生成し、
生成した前記第2ジョブを実行する、
処理をコンピュータに実行させ、
前記第2ジョブは、
前記第1数の学習サイクルの実行が完了した場合、前記第1数の学習サイクルの次の学習サイクルの実行が前記第1制限時間内に完了するか否かを判定し、
前記次の学習サイクルの実行が前記第1制限時間内に完了すると判定した場合、前記次の学習サイクルを実行する、
ことを特徴とする学習サイクル実行プログラム。
【請求項2】
請求項1において、
前記第1実行所要時間を特定する処理では、前記学習処理の初期処理の実行に要した実行所要時間と、前記1以上の学習サイクルに含まれるいずれかの学習サイクルの実行結果についての記憶処理の実行に要した実行所要時間と、前記実行結果の読み込み処理の実行に要した実行所要時間とのうちの少なくともいずれかの実行所要時間を特定し、
前記第1数を特定する処理では、前記第1実行所要時間と前記少なくともいずれかの実行所要時間とに基づいて前記第1数を特定する、
ことを特徴とする学習サイクル実行プログラム。
【請求項3】
請求項2において、
前記第2ジョブは、
前記第2ジョブに含まれる第1学習サイクルの実行の完了に応じて、前記第1学習サイクルの実行に要した第2実行所要時間を計測し、
計測した前記第2実行所要時間と、前記記憶処理の実行に要した前記実行所要時間との合計時間を算出し、
算出した前記合計時間が前記第2ジョブに対応する制限時間の残り時間よりも短い場合、前記第1学習サイクルの次に実行される第2学習サイクルを実行する、
ことを特徴とする学習サイクル実行プログラム。
【請求項4】
請求項1において、
前記第2ジョブは、
実行中において、前記第1ジョブの実行に伴って実行された学習サイクルの数と前記第2ジョブの実行に伴って実行された学習サイクルの数との合計が予め定められた目的数に到達したか否かを判定し、
前記合計が前記目的数に到達したと判定した場合、実行を終了する、
ことを特徴とする学習サイクル実行プログラム。
【請求項5】
請求項1において、
前記第1ジョブは、前記1以上の学習サイクルのそれぞれの実行が完了するごとに、各実行サイクルに実行に要した特定の実行所要時間を出力し、
前記第1実行所要時間を特定する処理では、前記第1ジョブから出力された前記特定の実行所要時間のうちの1以上の実行所要時間に基づいて、前記第1実行所要時間を特定する、
ことを特徴とする学習サイクル実行プログラム。
【請求項6】
請求項2において、
前記第1ジョブは、前記初期処理の実行に要した実行所要時間と、前記記憶処理の実行に要した実行所要時間と、前記読み込み処理の実行に要した実行所要時間とのうちの少なくともいずれかを出力し、
前記第1実行所要時間を特定する処理では、前記第1ジョブから出力された前記少なくともいずれかの実行所要時間を特定する、
ことを特徴とする学習サイクル実行プログラム。
【請求項7】
機械学習モデルの学習処理を行う1以上の学習サイクルを実行する処理をコンピュータに実行させる学習サイクル実行プログラムであって、
前記1以上の学習サイクルの実行が完了した場合、前記1以上の学習サイクルの次の学習サイクルの実行が第1制限時間内に完了するか否かを判定し、
前記次の学習サイクルの実行が前記第1制限時間内に完了すると判定した場合、前記次の学習サイクルを実行する、
ことを特徴とする学習サイクル実行プログラム。
【請求項8】
機械学習モデルの学習処理を行う1以上の学習サイクルを実行する第1ジョブの実行に応じて、前記第1ジョブに含まれる学習サイクルの実行に要した第1実行所要時間を特定する結果特定部と、
特定した前記第1実行所要時間に基づいて、第1制限時間内に実行が完了する学習サイクルの第1数を特定し、特定した前記第1数の学習サイクルを実行する第2ジョブを生成するジョブ生成部と、
生成した前記第2ジョブを実行するジョブ実行部と、を有し、
前記第2ジョブは、
前記第1数の学習サイクルの実行が完了した場合、前記第1数の学習サイクルの次の学習サイクルの実行が前記第1制限時間内に完了するか否かを判定し、
前記次の学習サイクルの実行が前記第1制限時間内に完了すると判定した場合、前記次の学習サイクルを実行する、
ことを特徴とする情報処理装置。
【請求項9】
機械学習モデルの学習処理を行う1以上の学習サイクルを実行する第1ジョブの実行に応じて、前記第1ジョブに含まれる学習サイクルの実行に要した第1実行所要時間を特定し、
特定した前記第1実行所要時間に基づいて、第1制限時間内に実行が完了する学習サイクルの第1数を特定し、
特定した前記第1数の学習サイクルを実行する第2ジョブを生成し、
生成した前記第2ジョブを実行する、
処理をコンピュータが実行し、
前記第2ジョブは、
前記第1数の学習サイクルの実行が完了した場合、前記第1数の学習サイクルの次の学習サイクルの実行が前記第1制限時間内に完了するか否かを判定し、
前記次の学習サイクルの実行が前記第1制限時間内に完了すると判定した場合、前記次の学習サイクルを実行する、
ことを特徴とする学習サイクル実行方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習サイクル実行プログラム、情報処理装置及び学習サイクル実行方法に関する。
【背景技術】
【0002】
例えば、DNN(Deep Neural Network)等の学習処理(以下、単に学習処理とも呼ぶ)は、学習時間の短縮等の観点から並列分散処理によって行われる場合がある。
【0003】
具体的に、学習処理を行う作業者(以下、単に作業者とも呼ぶ)は、例えば、スーパーコンピュータによって構成されるHPC(High Performance Computing)システムのリソースを借り受ける。そして、作業者は、例えば、借り受けたリソースを用いて並列分散処理を行うことより、DNN等の学習処理を行う(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、上記のようなHPCシステムのリソースを借り受ける場合、作業者は、例えば、借り受けるノードの数や各ジョブの実行時間についての制限時間(以下、単に制限時間とも呼ぶ)を予め設定する。そして、作業者は、各ジョブの実行が制限時間内に完了するように、学習処理を行うジョブ(以下、単に実行対象ジョブとも呼ぶ)を予め複数の分割ジョブに分割する。
【0006】
しかしながら、上記のような分割ジョブの実行時間は、一般的に、事前に予測することが困難である。そのため、例えば、上記のように実行対象ジョブの分割を行う場合であっても、分割ジョブの実行が制限時間内に完了しない場合がある。
【0007】
そこで、作業者は、例えば、各分割ジョブに1以上のチェックポイントを設けることにより、各チェックポイントにおける実行結果を記憶する。そして、例えば、制限時間内に実行が完了しなかった分割ジョブが発生した場合、作業者は、最後のチェックポイントの状態を復元し、復元したチェックポイントから再度実行を行う。これにより、作業者は、制限時間内に実行が完了しなかった分割ジョブが発生した場合であっても、再度実行する必要がある処理量を抑えることが可能になる。
【0008】
しかしながら、この場合、実行結果の記憶に要する処理負荷の増大に伴って、実行対象ジョブの分割数が増加する可能性がある。そのため、HPCシステムでは、例えば、実行対象ジョブの実行を効率的に行うことができない場合がある。
【0009】
そこで、一つの側面では、本発明は、ジョブの実行を効率的に行うことを可能とする学習サイクル実行プログラム、情報処理装置及び学習サイクル実行方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
実施の形態の一態様では、機械学習モデルの学習処理を行う1以上の学習サイクルを実行する第1ジョブの実行に応じて、前記第1ジョブに含まれる学習サイクルの実行に要した第1実行所要時間を特定し、特定した前記第1実行所要時間に基づいて、第1制限時間内に実行が完了する学習サイクルの第1数を特定し、特定した前記第1数の学習サイクルを実行する第2ジョブを生成し、生成した前記第2ジョブを実行する、処理をコンピュータに実行させ、前記第2ジョブは、前記第1数の学習サイクルの実行が完了した場合、前記第1数の学習サイクルの次の学習サイクルの実行が前記第1制限時間内に完了するか否かを判定し、前記次の学習サイクルの実行が前記第1制限時間内に完了すると判定した場合、前記次の学習サイクルを実行する。
【発明の効果】
【0011】
一つの側面によれば、ジョブの実行を効率的に行うことが可能になる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、情報処理システム10の構成について説明する図である。
【
図2】
図2は、ジョブの具体例について説明する図である。
【
図3】
図3は、ジョブの具体例について説明する図である。
【
図4】
図4は、ジョブの具体例について説明する図である。
【
図5】
図5は、情報処理装置1のハードウエア構成を説明する図である。
【
図6】
図6は、HPCシステム2を構成する物理マシンのハードウエア構成を説明する図である。
【
図7】
図7は、第1の実施の形態における情報処理装置1の機能について説明する図である。
【
図8】
図8は、第1の実施の形態におけるHPCシステム2の機能について説明する図である。
【
図9】
図9は、第1の実施の形態における学習サイクル実行処理の概略を説明するフローチャート図である。
【
図10】
図10は、第1の実施の形態における学習サイクル実行処理の概略を説明するフローチャート図である。
【
図11】
図11は、第1の実施の形態における学習サイクル実行処理の概略を説明する図である。
【
図12】
図12は、第1の実施の形態における学習サイクル実行処理の概略を説明する図である。
【
図13】
図13は、第1の実施の形態における学習サイクル実行処理の概略を説明する図である。
【
図14】
図14は、第1の実施の形態における学習サイクル実行処理の概略を説明する図である。
【
図15】
図15は、第1の実施の形態における学習サイクル実行処理の詳細を説明するフローチャート図である。
【
図16】
図16は、第1の実施の形態における学習サイクル実行処理の詳細を説明するフローチャート図である。
【
図17】
図17は、第1の実施の形態における学習サイクル実行処理の詳細を説明するフローチャート図である。
【
図18】
図18は、第1の実施の形態における学習サイクル実行処理の詳細を説明するフローチャート図である。
【
図19】
図19は、第1の実施の形態における学習サイクル実行処理の詳細を説明するフローチャート図である。
【
図20】
図20は、第1の実施の形態における学習サイクル実行処理の詳細を説明するフローチャート図である。
【
図21】
図21は、第1の実施の形態における学習サイクル実行処理の詳細を説明する図である。
【
図22】
図22は、第1の実施の形態における学習サイクル実行処理の詳細を説明する図である。
【
図23】
図23は、第1の実施の形態における学習サイクル実行処理の詳細を説明する図である。
【
図24】
図24は、第1の実施の形態における学習サイクル実行処理の詳細を説明する図である。
【
図25】
図25は、第1の実施の形態における学習サイクル実行処理の詳細を説明する図である。
【
図26】
図26は、第1の実施の形態における学習サイクル実行処理の詳細を説明する図である。
【
図27】
図27は、第1の実施の形態における学習サイクル実行処理の詳細を説明する図である。
【
図28】
図28は、第1の実施の形態における学習サイクル実行処理の詳細を説明する図である。
【発明を実施するための形態】
【0013】
[第1の実施の形態における情報処理システムの構成]
初めに、情報処理システム10の構成について説明を行う。
図1は、情報処理システム10の構成について説明する図である。なお、以下、分割ジョブを単にジョブとも呼ぶ。
【0014】
図1に示す情報処理システム10は、例えば、情報処理装置1と、HPCシステム2と、操作端末5とを有する。
【0015】
情報処理装置1は、例えば、物理マシンまたは仮想マシンであり、HPCシステム2に実行させるジョブの生成やHPCシステム2に対するジョブの投入等を行う処理を実行する。具体的に、情報処理装置1は、例えば、DNN等の学習処理を行うためのジョブを生成してHPCシステム2に投入する。
【0016】
HPCシステム2は、例えば、スーパーコンピュータを構成する複数のノード(複数の物理マシン)によって構成され、情報処理装置1から投入されたジョブを複数のノードによる並列分散処理によって実行する。そして、HPCシステム2は、例えば、実行が完了したジョブの実行結果を情報処理装置1に送信する。
【0017】
具体的に、作業者は、この場合、例えば、HPCシステム2を所有する事業者(以下、単に事業者とも呼ぶ)からHPCシステム2のリソースを借り受ける。そして、作業者は、例えば、借り受けたリソースを用いることによってジョブの実行を行う。
【0018】
操作端末5は、例えば、作業者が情報処理装置1に対して必要な情報の入力等を行うPC(Personal Computer)等である。具体的に、作業者は、例えば、操作端末5を介してジョブの生成やHPCシステム2に対するジョブの投入等を情報処理装置1に指示する。
【0019】
そして、例えば、上記のようなジョブの実行をHPCシステム2のリソースを借り受けて行う場合、作業者は、事業者から借り受けるノードの数や各ジョブの実行時間についての制限時間を予め設定する。この制限時間は、例えば、作業者が予め設定する時間であって、事業者から借り受けたHPCシステム2のリソースを用いて各ジョブを実行することが可能な時間である。
【0020】
ここで、上記の制限時間は、例えば、作業者が設定することが可能な最大時間(以下、単に最大時間とも呼ぶ)が事業者によって予め定められている。そのため、作業者は、制限時間として最大時間を設定する場合であっても、実行対象ジョブの実行を完了させることができないと予測される場合、例えば、実行対象ジョブを予め複数のジョブに分割する。
【0021】
しかしながら、一般的に、各ジョブの実行時間を事前に予測することは困難である。そのため、例えば、上記のように実行対象ジョブの分割を行う場合であっても、分割後のジョブの実行が制限時間内に完了しない場合がある。
【0022】
そこで、作業者は、例えば、分割後の各ジョブに1以上のチェックポイントを設けることにより、各チェックポイントにおける実行結果を記憶する。そして、例えば、制限時間内に実行が完了しなかったジョブが発生した場合、作業者は、最後のチェックポイントの状態を復元し、復元したチェックポイントから再度実行を行う。これにより、作業者は、制限時間内に実行が完了しなかったジョブが発生した場合であっても、再度実行する必要がある処理量を抑えることが可能になる。以下、ジョブ(分割後のジョブ)の具体例について説明を行う。
【0023】
[ジョブの具体例]
図2から
図4は、ジョブの具体例について説明する図である。具体的に、
図2(A)及び
図3(A)は、実行対象ジョブから分割された複数のジョブのうち、HPCシステム2において最初に実行されるジョブJ1の具体例について説明する図である。また、
図2(B)及び
図3(B)は、実行対象ジョブから分割された複数のジョブのうち、HPCシステム2において2番目以降に実行されるジョブJ2の具体例を説明する図である。なお、以下、ジョブJ1やジョブJ2等を総称して単にジョブJとも呼ぶ。
【0024】
ジョブJ1は、例えば、
図2(A)に示すように、学習処理を開始する前に予め実行する必要がある初期処理P1と、画像データ等の学習を行う学習サイクル処理P2と、予め定められたチェックポイントにおける学習サイクル処理P2の実行結果を記憶するチェックポイント記憶処理P3(以下、単に記憶処理P3とも呼ぶ)とを行う。以下、学習サイクル処理P2を単に学習サイクルとも表記する。
【0025】
具体的に、ジョブJ1は、例えば、
図2(A)に示すように、1回目の初期処理P1、1回目の学習サイクル処理P2、1回目の記憶処理P3、2回目の学習サイクル処理P2、2回目の記憶処理P3、3回目の学習サイクル処理P2、3回目の記憶処理P3、4回目の学習サイクル処理P2及び4回目の記憶処理P3をこの順に実行する。そのため、例えば、1回の学習サイクル処理P2が複数の学習用画像データ(例えば、数百枚の学習用画像データ)のそれぞれを1回ずつ学習する処理である場合、ジョブJ1は、実行中において、複数の学習用画像データのそれぞれを4回ずつ学習する。
【0026】
そして、例えば、
図3(A)に示すように、4回目の学習サイクル処理P2の実行がジョブJ1の制限時間内に完了しなかった場合、作業者は、3回目の記憶処理P3において記憶した実行結果を用いることによって、4回目の学習サイクル処理P2から先の処理の実行を再度行う。
【0027】
すなわち、作業者は、ジョブJ1の実行に伴って記憶処理P3の実行を併せて行うことで、ジョブJ1の実行が制限時間内に完了しなかった場合であっても、ジョブJ1の実行を最初からやり直す必要がなくなる。
【0028】
また、ジョブJ2は、例えば、
図2(B)に示すように、初期処理P1、学習サイクル処理P2及び記憶処理P3に加えて、記憶処理P3によって記憶された学習サイクル処理P2の実行結果を読み込むチェックポイント読込処理P4(以下、単に読込処理P4とも呼ぶ)を行う。
【0029】
具体的に、ジョブJ2は、例えば、
図2(B)に示すように、1回目の初期処理P1、1回目の読込処理P4、1回目の学習サイクル処理P2、1回目の記憶処理P3、2回目の学習サイクル処理P2、2回目の記憶処理P3、3回目の学習サイクル処理P2、3回目の記憶処理P3、4回目の学習サイクル処理P2及び4回目の記憶処理P3をこの順に実行する。そのため、例えば、1回の学習サイクル処理P2が複数の学習用画像データのそれぞれを1回ずつ学習する処理である場合、ジョブJ2は、実行中において、複数の学習用画像データのそれぞれを4回ずつ学習する。
【0030】
そして、例えば、
図3(B)に示すように、4回目の学習サイクル処理P2の実行がジョブJ2の制限時間内に完了しなかった場合、作業者は、
図3(A)で説明した場合と同様に、3回目の記憶処理P3において記憶した実行結果を用いることによって、4回目の学習サイクル処理P2から先の処理の実行を再度行う。
【0031】
すなわち、作業者は、ジョブJ2の実行に伴って記憶処理P3の実行を併せて行うことで、ジョブJ2の実行が制限時間内に完了しなかった場合であっても、ジョブJ2の実行を最初からやり直す必要がなくなる。
【0032】
しかしながら、この場合、ジョブJの実行時における記憶処理P3の実行頻度が増大することにより、ジョブJの分割数が増加する可能性がある。そのため、HPCシステム2では、例えば、学習処理の実行を効率的に行うことができなくなる場合がある。
【0033】
また、学習処理の実行に用いられる学習手法によって、学習サイクル処理P2の実行時間が変動する場合がある。具体的に、例えば、学習処理の実行に用いられる学習手法として勾配スキップ手法や同期緩和手法が用いられた場合、各学習サイクル処理P2の実行時間は徐々に短縮する。
【0034】
そのため、学習サイクル処理P2の実行時間は、例えば、
図4に示すように、事前(例えば、ジョブJ3の生成時)に予測された時間よりも短縮される場合がある。そして、この場合、ジョブJ3において実行される学習サイクル処理P2の数は、ジョブJ3に対応する制限時間内に実行することが可能であった学習サイクル処理P2の数よりも少なくなる。したがって、HPCシステム2では、この場合においても、学習処理の実行を効率的に行うことができなくなる。
【0035】
そこで、本実施の形態における情報処理装置1は、例えば、DNN等の機械学習モデル(以下、単に機械学習モデルとも呼ぶ)の学習処理を行う1以上の学習サイクル処理P2を実行するジョブJ1(以下、第1ジョブJ1とも呼ぶ)の実行に応じて、第1ジョブJ1に含まれる学習サイクル処理P2の実行に要した実行所要時間(以下、第1実行所要時間とも呼ぶ)を特定する。そして、情報処理装置1は、例えば、第1実行所要時間に基づいて、制限時間(以下、第1制限時間とも呼ぶ)内に実行が完了する学習サイクル処理P2の数(以下、第1数とも呼ぶ)を特定する。
【0036】
その後、情報処理装置1は、例えば、第1数の学習サイクル処理P2を実行するジョブJ2(以下、第2ジョブJ2とも呼ぶ)を生成する。そして、情報処理装置1は、例えば、第2ジョブJ2を実行する。
【0037】
ここで、第2ジョブJは、例えば、第1数の学習サイクル処理P2の実行が完了した場合、第1数の学習サイクル処理P2の次の学習サイクル処理P2の実行が第1制限時間内に完了するか否かを判定する。その結果、第1数の学習サイクル処理P2の次の学習サイクル処理P2の実行が第1制限時間内に完了すると判定した場合、第2ジョブJは、例えば、第1数の学習サイクル処理P2の次の学習サイクル処理P2を実行する。
【0038】
すなわち、本実施の形態における情報処理装置1は、例えば、次に実行する新たなジョブJの生成を行う場合、既に実行が終了したジョブJにおいて学習サイクル処理P2の実行に要した実行所要時間を用いることにより、次に実行する新たなジョブJにおいて実行させる学習サイクル処理P2の数を決定する。
【0039】
また、情報処理装置1によって生成された各ジョブJは、例えば、実行予定であった各学習サイクル処理P2の実行が、各学習サイクル処理P2の実行時間の短縮によって予定よりも早く完了した場合、さらなる学習サイクル処理P2の実行を自動的に行う。
【0040】
これにより、本実施の形態における情報処理装置1は、例えば、各学習サイクル処理P2の実行所要時間が変動する場合であっても、変動後の実行所要時間に応じた数の学習サイクル処理P2を実行するジョブJの生成を行うことが可能になる。
【0041】
また、情報処理装置1は、例えば、各学習サイクル処理P2の実行所要時間の変動がジョブJの実行中に発生した場合においても、実行中のジョブJにおいてこれから実行する各学習サイクル処理P2の数を、変動後の実行所要時間に応じて調整することが可能になる。具体的に、情報処理装置1は、例えば、各学習サイクル処理P2の実行所要時間がジョブJの実行中において短縮された場合、実行中のジョブJにおいてこれから実行する各学習サイクル処理P2の数を増加させることが可能になる。
【0042】
さらに、情報処理装置1は、例えば、各学習サイクル処理P2の実行所要時間の変動に応じて各ジョブJにおける学習サイクル処理P2の数を調整することで、各ジョブJの実行を制限時間内に精度良く完了させることが可能になる。そのため、情報処理装置1は、例えば、各ジョブJにおける記憶処理P3の実行頻度を抑えることが可能になる。
【0043】
したがって、本実施の形態における情報処理装置1は、例えば、学習処理の実行に要する処理量を抑制することが可能になり、ジョブJの分割数を抑制することが可能になる。そのため、情報処理装置1は、例えば、学習処理の実行を効率的に行うことが可能になる。具体的に、情報処理装置1は、例えば、学習処理の実行に要する時間やHPCシステム2のリソースを借り受けるためのコスト等を抑制することが可能になる。
【0044】
[情報処理システムのハードウエア構成]
次に、情報処理システム10のハードウエア構成について説明を行う。
図5は、情報処理装置1のハードウエア構成を説明する図である。また、
図6は、HPCシステム2を構成する物理マシンのハードウエア構成を説明する図である。
【0045】
初めに、情報処理装置1のハードウエア構成について説明を行う。
【0046】
情報処理装置1は、
図5に示すように、例えば、プロセッサであるCPU(Central Processing Unit)101と、メモリ102と、通信装置(I/Oインタフェース)103と、ストレージ104とを有する。各部は、バス105を介して互いに接続される。
【0047】
ストレージ104は、例えば、ジョブJの実行等を行う処理(以下、学習サイクル実行処理とも呼ぶ)を行うためのプログラム110を記憶するプログラム格納領域(図示せず)を有する。また、ストレージ104は、例えば、学習サイクル実行処理を行う際に用いられる情報を記憶する情報格納領域130(以下、記憶部130とも呼ぶ)を有する。なお、ストレージ104は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)であってよい。
【0048】
CPU101は、例えば、ストレージ104からメモリ102にロードされたプログラム110を実行して学習サイクル実行処理を行う。
【0049】
また、通信装置103は、例えば、インターネット等のネットワークNWを介してHPCシステム2との通信を行う。
【0050】
次に、HPCシステム2を構成する物理マシンのハードウエア構成について説明を行う。
【0051】
HPCシステム2を構成する物理マシンのそれぞれは、
図6に示すように、例えば、プロセッサであるCPU201と、メモリ202と、通信装置203と、ストレージ204とを有する。各部は、バス205を介して互いに接続される。
【0052】
ストレージ204は、例えば、情報処理装置1によって投入されたジョブJを記憶するプログラム格納領域(図示せず)を有する。また、ストレージ204は、例えば、学習サイクル実行処理を行う際に用いられる情報を記憶する情報格納領域230(以下、記憶部230とも呼ぶ)を有する。なお、ストレージ204は、例えば、HDDやSSDであってよい。
【0053】
CPU201は、例えば、ストレージ204からメモリ202にロードされたジョブJ(ジョブJを構成する各プログラム)を実行して学習サイクル実行処理を行う。
【0054】
また、通信装置203は、例えば、インターネット等のネットワークNWを介して情報処理装置1との通信を行う。
【0055】
[第1の実施の形態における情報処理システムの機能]
次に、第1の実施の形態における情報処理システム10の機能について説明を行う。
図7は、第1の実施の形態における情報処理装置1の機能について説明する図である。また、
図8は、第1の実施の形態におけるHPCシステム2の機能について説明する図である。
【0056】
初めに、情報処理装置1の機能について説明を行う。
【0057】
情報処理装置1は、
図7に示すように、例えば、CPU101やメモリ102等のハードウエアとプログラム110とが有機的に協働することにより、第1ジョブ生成部111と、ジョブ投入部112(以下、ジョブ実行部112とも呼ぶ)と、ジョブ監視部113と、結果特定部114と、第2ジョブ生成部115(以下、単にジョブ生成部115とも呼ぶ)と、結果出力部116とを含む各種機能を実現する。
【0058】
また、情報処理装置1は、
図7に示すように、例えば、処理時間情報131と、サイクル数情報132と、格納先情報133と、実行結果情報134とを情報格納領域130に記憶する。
【0059】
第1ジョブ生成部111は、例えば、HPCシステム2において最初に実行するジョブJ1を生成する。具体的に、第1ジョブ生成部111は、例えば、
図2(A)で説明したジョブJ1を生成する。
【0060】
ジョブ投入部112は、例えば、第1ジョブ生成部111が生成したジョブJ1をHPCシステム2に投入する。そして、HPCシステム2は、例えば、ジョブ投入部112によって投入されたジョブJ1を実行する。
【0061】
ジョブ監視部113は、例えば、ジョブ投入部112によってHPCシステム2に投入されたジョブJ1の実行状況についての監視を行う。具体的に、ジョブ監視部113は、例えば、ジョブ投入部112によってHPCシステム2に投入されたジョブJ1の実行が完了したか否かについての監視を行う。
【0062】
結果特定部114は、例えば、ジョブ監視部113がジョブJ1の実行完了を検知した場合、実行が完了したジョブJ1の実行結果を示す情報(後述する実行ログ231)を取得する。
【0063】
第2ジョブ生成部115は、例えば、HPCシステム2において2番目以降に実行するジョブJ2を生成する。具体的に、第2ジョブ生成部115は、例えば、
図2(B)で説明したジョブJ2を生成する。
【0064】
そして、ジョブ投入部112は、例えば、第2ジョブ生成部115が生成したジョブJ2をHPCシステム2に投入する。続いて、ジョブ監視部113は、例えば、ジョブ投入部112によってHPCシステム2に投入されたジョブJ2の実行状況についての監視を行う。その後、結果特定部114は、例えば、ジョブ監視部113がジョブJ2の実行完了を検知した場合、実行が完了したジョブJ2の実行結果を示す情報(後述する実行ログ231)を取得する。
【0065】
結果出力部116は、例えば、結果特定部114が取得した情報(後述する実行ログ231)から実行結果情報134を生成する。そして、結果出力部116は、例えば、HPCシステム2において実行が完了したジョブJ(ジョブJ1またはジョブJ2)の実行結果と、生成した実行結果情報134とを操作端末5に送信する。
【0066】
なお、処理時間情報131、サイクル数情報132及び格納先情報133の説明については後述する。
【0067】
次に、HPCシステム2の機能について説明を行う。
【0068】
HPCシステム2は、
図8に示すように、例えば、CPU201やメモリ202等のハードウエアとジョブJを構成する各プログラムとが有機的に協働することにより、処理実行部211と、時間取得部212と、情報生成部213と、時間判定部214と、サイクル数判定部215とを含む各種機能を実現する。
【0069】
また、HPCシステム2は、
図8に示すように、例えば、実行ログ231を情報格納領域130に記憶する。
【0070】
処理実行部211は、例えば、情報処理装置1からジョブJ(ジョブJ1またはジョブJ2)が投入された場合、投入されたジョブJに含まれる各処理(初期処理P1、学習サイクル処理P2、記憶処理P3及び読込処理P4)を実行することによって、機械学習モデルの学習処理を行う。
【0071】
時間取得部212は、例えば、処理実行部211が各処理(初期処理P1、学習サイクル処理P2、記憶処理P3及び読込処理P4)の実行に要した実行所要時間を取得(計測)する。具体的に、時間取得部212は、例えば、学習サイクル処理P2の実行に要した実行所要時間を学習サイクル処理P2の実行が完了するごとに取得する。
【0072】
情報生成部213は、例えば、時間取得部212が各処理の実行所要時間を取得するごとに、取得した実行所要時間を実行ログ231の少なくとも一部として生成する。
【0073】
時間判定部214は、例えば、処理実行部211がジョブJに含まれる学習サイクル処理P2の実行が完了するごとに、実行が完了した学習サイクル処理P2の実行に要した実行所要時間と、最後に実行した記憶処理P3の実行に要した実行所要時間とを取得する。そして、時間判定部214は、例えば、取得した2つの実行所要時間、すなわち、学習サイクル処理P2の実行に要した実行所要時間と記憶処理P3の実行に要した実行所要時間との合計時間を算出する。
【0074】
その後、時間判定部214は、例えば、取得した合計時間と、実行中のジョブJに対応する制限時間の残り時間(以下、単に残り時間とも呼ぶ)との比較を行う。その結果、取得した合計時間が残り時間よりも短いと判定した場合、時間判定部214は、例えば、次の学習サイクル処理P2の実行を開始する旨の指示を処理実行部211に送信する。一方、取得した合計時間が残り時間よりも短くないと判定した場合、時間判定部214は、例えば、次の学習サイクル処理P2の実行を行うことなくジョブJの実行を終了させる旨の指示を処理実行部211に送信する。
【0075】
サイクル数判定部215は、例えば、処理実行部211による学習サイクル処理P2の実行が完了するごとに、学習サイクル処理P2の実行回数が目的数に到達したか否かを判定する。目的数は、例えば、作業者が予め指定した学習サイクル処理P2の実行回数である。そして、学習サイクル処理P2の実行回数が目的数に到達したと判定した場合、サイクル数判定部215は、例えば、ジョブJの実行を終了させる。
【0076】
[第1の実施の形態における学習サイクル実行処理の概略]
次に、第1の実施の形態の概略について説明する。
図9及び
図10は、第1の実施の形態における学習サイクル実行処理の概略を説明するフローチャート図である。また、
図11から
図14は、第1の実施の形態における学習サイクル実行処理の概略を説明する図である。なお、以下、各ジョブJに対応する制限時間が同一の時間であるものとして説明を行うが、各ジョブJに対応する制限時間は、それぞれ異なる時間であってもよい。
【0077】
初めに、情報処理装置1における学習サイクル処理の概略について説明を行う。
【0078】
情報処理装置1は、
図9に示すように、例えば、機械学習モデルの学習処理を行う1以上の学習サイクル処理P2を実行するジョブJ1を生成する(S1)。
【0079】
そして、情報処理装置1は、例えば、S1の処理で生成したジョブJ1をHPCシステム2に投入する(S2)。
【0080】
その後、情報処理装置1は、S2の処理で投入したジョブJ1の実行が完了するまで待機する(S3のNO)。
【0081】
そして、S2の処理で投入したジョブJ1の実行が完了した場合(S3のYES)、情報処理装置1は、例えば、学習サイクル処理P2の実行回数(以下、単に学習サイクル数とも呼ぶ)が目的数に到達したか否かを判定する(S4)。
【0082】
その結果、学習サイクル処理P2の実行回数が目的数に到達したと判定した場合(S4のYES)、情報処理装置1は、例えば、学習サイクル実行処理を終了する。
【0083】
一方、学習サイクル処理P2の実行回数が目的数に到達していないと判定した場合(S4のNO)、情報処理装置1は、例えば、ジョブJ1に含まれる学習サイクル処理P2(1回の学習サイクル処理P2)の実行に要した実行所要時間を特定する(S5)。
【0084】
続いて、情報処理装置1は、例えば、S5の処理で特定した実行所要時間に基づいて、制限時間内に実行が完了する学習サイクル処理P2の第1数を特定する(S6)。
【0085】
続いて、情報処理装置1は、例えば、S6の処理で特定した第1数の学習サイクル処理P2を実行するジョブJ2を生成する(S7)。
【0086】
そして、情報処理装置1は、例えば、S7の処理で生成したジョブJ2をHPCシステム2に投入する(S8)。
【0087】
その後、情報処理装置1は、例えば、S8の処理で投入したジョブJ2の実行が完了するまで待機する(S9のNO)。
【0088】
そして、S8の処理で投入したジョブJ2の実行が完了した場合(S9のYES)、情報処理装置1は、例えば、S4以降の処理を再度行う。
【0089】
次に、HPCシステム2における学習サイクル処理の概略について説明を行う。
【0090】
一方、HPCシステム2は、
図10に示すように、例えば、情報処理装置1からジョブJ(ジョブJ1またはジョブJ2)が投入されるまで待機する(S11のNO)。
【0091】
そして、情報処理装置1からジョブJが投入された場合(S11のYES)、HPCシステム2は、例えば、投入されたジョブJに含まれる各処理(学習サイクル処理P2を含む各処理)を実行する(S12)。
【0092】
そして、HPCシステム2は、例えば、S12の処理において各処理の実行完了に応じて、S12の処理において実行した各学習サイクル処理P2の次の学習サイクル処理P2(以下、単に次の学習サイクル処理P2とも呼ぶ)の実行が制限時間内に完了するか否かを判定する(S13)。
【0093】
その結果、次の学習サイクル処理P2の実行が制限時間内に完了すると判定した場合(S14のYES)、HPCシステム2は、例えば、次の学習サイクル処理P2を実行する(S15)。その後、HPCシステム2は、例えば、S13以降の処理を再度行う。
【0094】
一方、次の学習サイクル処理P2の実行が制限時間内に完了しないと判定した場合(S14のNO)、HPCシステム2は、例えば、次の学習サイクル処理P2を実行することなく、S11の処理で投入されたジョブJの実行を終了する。
【0095】
[学習サイクル実行処理の具体例]
次に、学習サイクル実行処理の具体例について説明を行う。なお、以下、
図11及び
図12に示すジョブJ1(以下、ジョブJ11とも呼ぶ)が、1回の初期処理P1と、1回の学習サイクル処理P2と、1回の記憶処理P3と、1回の読込処理P4と、1回の学習サイクル処理P2とをこの順で実行するジョブであるものとして説明を行う。また、以下、
図13及び
図14に示すジョブJ2(以下、ジョブJ21とも呼ぶ)が、1回の初期処理P1と、1回の読込処理P4と、3回の学習サイクル処理P2とをこの順で実行するジョブであるものとして説明を行う。
【0096】
初めに、ジョブJ11の実行時における具体例について説明を行う。
【0097】
例えば、
図11(A)に示すように、ジョブJ11に含まれる各処理の実行が完了した場合において、次の学習サイクル処理P2及び記憶処理P3を制限時間内に実行可能であると判定した場合、ジョブJ11は、
図11(B)に示すように、次の学習サイクル処理P2を実行する。
【0098】
そして、
図12(A)に示すように、例えば、次の学習サイクル処理P2の実行が完了した場合において、さらに次の学習サイクル処理P2及び記憶処理P3を制限時間内に実行できないと判定した場合、ジョブJ11は、
図12(B)に示すように、さらに次の学習サイクル処理P2を実行することなく、記憶処理P3を実行して処理の実行を終了する。
【0099】
次に、ジョブJ21の実行時における具体例について説明を行う。
【0100】
例えば、
図13(A)に示すように、ジョブJ21に含まれる各処理の実行が完了した場合において、次の学習サイクル処理P2及び記憶処理P3を制限時間内に実行可能であると判定した場合、ジョブJ21は、
図13(B)に示すように、次の学習サイクル処理P2を実行する。
【0101】
そして、
図14(A)に示すように、例えば、次の学習サイクル処理P2の実行が完了した場合において、さらに次の学習サイクル処理P2及び記憶処理P3を制限時間内に実行できないと判定した場合、ジョブJ21は、
図14(B)に示すように、さらに次の学習サイクル処理P2を実行することなく、記憶処理P3を実行して処理の実行を終了する。
【0102】
このように、本実施の形態における情報処理装置1は、例えば、学習処理の実行(実行対象ジョブの実行)を効率的に行うことが可能になる。具体的に、情報処理装置1は、例えば、学習処理の実行に要する時間やHPCシステム2のリソースを借り受けるために必要なコスト等を抑制することが可能になる。
【0103】
[第1の実施の形態における学習サイクル実行処理の詳細]
次に、第1の実施の形態の詳細について説明する。
図15から
図20は、第1の実施の形態における学習サイクル実行処理の詳細を説明するフローチャート図である。また、
図21から
図28は、第1の実施の形態における学習サイクル実行処理の詳細を説明する図である。
【0104】
[情報処理装置における学習サイクル実行処理(1)]
初めに、情報処理装置1における学習サイクル実行処理の最初の一部について説明を行う。
【0105】
第1ジョブ生成部111は、
図15に示すように、例えば、学習サイクル処理P2の目的数を含むジョブJの生成指示が入力されるまで待機する(S21のNO)。具体的に、第1ジョブ生成部111は、例えば、作業者が操作端末5を介してジョブJの生成指示を入力するまで待機する。
【0106】
そして、学習サイクル処理P2の目的数を含むジョブJの生成指示が入力された場合(S21のYES)、第1ジョブ生成部111は、例えば、所定数の学習サイクル処理P2を実行するジョブJ1を生成する(S22)。所定数は、例えば、作業者が操作端末5を介して予め指定した数である。
【0107】
続いて、ジョブ投入部112は、例えば、S22の処理で生成したジョブJ1をHPCシステム2に投入する(S23)。
【0108】
具体的に、ジョブ投入部112は、例えば、ジョブJ1の実行に用いるノード数やジョブJ1に対応する制限時間を示す情報とともに、HPCシステム2に対してジョブJ1の投入を行う。
【0109】
その後、ジョブ監視部113は、例えば、S23の処理で投入したジョブJ1の実行が完了するまで待機する(S24のNO)。
【0110】
[HPCシステムにおける学習サイクル実行処理(1)]
次に、HPCシステム2における学習サイクル実行処理のうち、ジョブJ1の投入が行われた場合における処理について説明を行う。
【0111】
処理実行部211は、
図17に示すように、例えば、情報処理装置1からジョブJ1が投入されるまで待機する(S41のNO)。具体的に、処理実行部211は、例えば、S23の処理においてジョブ投入部112がジョブJ1を投入するまで待機する。
【0112】
そして、情報処理装置1からジョブJ1が投入された場合(S41のYES)、処理実行部211は、S42以降の処理において、例えば、投入されたジョブJ1に含まれる各処理を順に実行する。
【0113】
具体的に、処理実行部211は、初めに、例えば、1回の初期処理P1と、1回の学習サイクル処理P2と、1回の記憶処理P3と、1回の読込処理P4とをこの順に実行する(S42、S43、S44及びS45)。
【0114】
続いて、時間取得部212は、例えば、S42、S43、S44及びS45の処理において実行された各処理の実行に要した実行所要時間のそれぞれを取得(計測)する。その後、情報生成部213は、例えば、取得した各実行所要時間を実行ログ231の一部として情報格納領域230に記憶する(S46)。
【0115】
すなわち、ジョブJ1は、例えば、後述するS51の処理等において用いられる各処理の実行所要時間を予め計測するために、初期処理P1、学習サイクル処理P2、記憶処理P3及び読込処理P4のそれぞれを最初に実行する。
【0116】
また、情報生成部213は、この場合、例えば、S43の処理における学習サイクル処理P2の実行回数(学習サイクル数)を実行ログ231の一部として情報格納領域230に記憶する(S47)。すなわち、情報生成部213は、この場合、例えば、学習サイクル数が1回であることを示す情報を実行ログ231の一部として記憶する。
【0117】
その後、時間判定部214は、
図18に示すように、例えば、S46の処理で取得した学習サイクル処理P2の実行所要時間と記憶処理P3の実行所要時間との合計時間(以下、単に合計時間とも呼ぶ)を算出する。そして、時間判定部214は、例えば、算出した合計時間と、実行中のジョブJ1に対応する制限時間の残り時間とを比較する(S51)。
【0118】
その結果、合計時間が残り時間よりも短いと判定した場合(S52のYES)、処理実行部211は、例えば、次の学習サイクル処理P2を実行する(S53)。
【0119】
そして、時間取得部212は、例えば、S53の処理において実行された学習サイクル処理P2の実行に要した実行所要時間を取得(計測)する。その後、情報生成部213は、例えば、取得した実行所要時間を実行ログ231の一部として情報格納領域230に記憶する(S54)。
【0120】
具体的に、情報生成部213は、例えば、情報格納領域230に記憶された実行ログ231のうち、学習サイクル処理P2に対応する実行所要時間を更新する。なお、情報生成部213は、例えば、S54の処理が行われるごとに、新たに取得した実行所要時間を実行ログ231の一部として蓄積するものであってもよい。
【0121】
また、情報生成部213は、この場合、例えば、S43及びS53の処理における学習サイクル処理P2の実行回数(学習サイクル数)の合計を実行ログ231の一部として情報格納領域230に記憶する(S55)。
【0122】
具体的に、情報生成部213は、例えば、情報格納領域230に記憶された実行ログ231のうち、学習サイクル数を更新する。
【0123】
その後、処理実行部211は、例えば、S43及びS53の処理における学習サイクル処理P2の実行回数(学習サイクル数)の合計が目的数に到達したか否かを判定する(S56)。
【0124】
その結果、S43及びS53の処理における学習サイクル処理P2の実行回数の合計が目的数に到達していないと判定した場合(S56のNO)、時間判定部214は、例えば、S51以降の処理を再度行う。
【0125】
一方、S43及びS53の処理における学習サイクル処理P2の実行回数の合計が目的数に到達したと判定した場合(S56のYES)、処理実行部211は、例えば、記憶処理P3を実行する(S57)。そして、処理実行部211は、この場合、S41の処理で投入されたジョブJ1の実行を終了する。
【0126】
また、処理実行部211は、例えば、S52の処理において、合計時間が残り時間よりも短くないと判定した場合においても同様に(S52のNO)、S57の処理を実行する。
【0127】
なお、学習サイクル処理P2の実行回数の合計が目的数に到達したと判定した場合(S56のYES)、または、S57の処理が行われた場合、情報生成部213は、例えば、S42、S43、S44、S45、S53及びS57の処理において行われた各処理の実行に要した実行所要時間の合計時間(以下、総実行所要時間とも呼ぶ)を、実行ログ231の一部として情報格納領域230に記憶するものであってもよい。以下、実行ログ231の具体例について説明を行う。
【0128】
[実行ログの具体例]
図21は、実行ログ231の具体例について説明する図である。具体的に、
図21は、ジョブJ1の実行に伴って生成された実行ログ231の具体例について説明する図である。
【0129】
図21に示す実行ログ231は、例えば、初期処理P1の実行所要時間が3分であり、学習サイクル処理P2の実行所要時間が30分であることを示している。
【0130】
また、
図21に示す実行ログ231は、例えば、記憶処理P3の実行所要時間が10分であり、読込処理P4の実行所要時間が5分であることを示している。
【0131】
さらに、
図21に示す実行ログ231は、例えば、ジョブJ1における学習サイクル処理P2の学習サイクル数(ジョブJ1の実行に伴う学習サイクル処理P2の実行回数)が44であり、ジョブJ1の総実行所要時間(ジョブJ1に含まれる各処理の総実行所要時間)が23時間32分であることを示している。
【0132】
すなわち、
図21に示す実行ログ231では、例えば、学習サイクル処理P2の実行所要時間として、ジョブJ1において最後に実行された学習サイクル処理P2の実行所要時間が設定される。
【0133】
なお、実行ログ231における学習サイクル処理P2の実行所要時間には、例えば、ジョブJにおいて最後に実行された所定回の学習サイクル処理P2の実行所要時間の最大時間や平均時間が設定されるものであってもよい。
【0134】
[情報処理装置における学習サイクル実行処理(2)]
次に、情報処理装置1における学習サイクル実行処理のうち、S24以降の処理について説明を行う。
【0135】
図15に示すように、S23の処理で投入したジョブJ11の実行が完了したとジョブ監視部113が判定した場合(S24のYES)、結果特定部114は、例えば、実行が完了したジョブJ1の実行結果(ジョブJ1に含まれる学習サイクル処理P2の実行結果)を取得する。そして、結果特定部114は、例えば、取得したジョブJ1の実行結果を情報格納領域130に記憶する(S25)。
【0136】
なお、結果特定部114は、この場合、例えば、ジョブJ1が生成した実行ログ231を参照し、ジョブJ1において実行された各処理の実行所要時間を示す処理時間情報131や、ジョブJ1における学習サイクル処理P2の実行回数(学習サイクル数)を示すサイクル数情報132を生成して情報格納領域130に記憶するものであってもよい。また、結果特定部114は、この場合、例えば、ジョブJ1から取得した実行結果の格納先を示す格納先情報133を生成して情報格納領域130に記憶するものであってもよい。以下、S25の処理で生成される処理時間情報131、サイクル数情報132及び格納先情報133の具体例について説明を行う。
【0137】
[処理時間情報、サイクル数情報及び格納先情報の具体例(1)]
図22及び
図23は、処理時間情報131、サイクル数情報132及び格納先情報133の具体例について説明する図である。具体的に、
図22及び
図23は、ジョブJ1の実行に伴って生成された処理時間情報131、サイクル数情報132及び格納先情報133の具体例について説明する図である。
【0138】
初めに、処理時間情報131について説明を行う。
【0139】
図22に示す処理時間情報131は、各種別が設定される「種別」と、各種別に対応する実行所要時間が設定される「実行所要時間」とを項目として有する。
【0140】
具体的に、
図22に示す処理時間情報131において、例えば、1行目の情報には、「種別」として「初期処理」が設定され、「実行所要時間」として「00:03:00」が設定されている。また、例えば、2行目の情報には、「種別」として「学習サイクル処理」が設定され、「実行所要時間」として「00:30:00」が設定されている。
【0141】
また、
図22に示す処理時間情報131において、例えば、3行目の情報には、「種別」として「記憶処理」が設定され、「実行所要時間」として「00:10:00」が設定されている。また、例えば、4行目の情報には、「種別」として「読込処理」が設定され、「実行所要時間」として「00:05:00」が設定されている。
【0142】
さらに、
図22に示す処理時間情報131において、例えば、5行目の情報には、「種別」として「総実行所要時間」が設定され、「実行所要時間」として「23:32:00」が設定されている。
【0143】
次に、サイクル数情報132について説明を行う。
【0144】
図23(A)に示すサイクル数情報132は、各ジョブJの実行によって完了した学習サイクル数が設定される「学習サイクル数」を項目として有する。
【0145】
具体的に、
図23(A)に示すサイクル数情報132において、例えば、1行目の情報には、「学習サイクル数」として、ジョブJ1の実行に伴う学習サイクル数である「44」が設定されている。
【0146】
次に、格納先情報133について説明を行う。
【0147】
図23(B)に示す格納先情報133は、各ジョブJの実行に伴う実行結果の識別情報(例えば、名称)が設定される「実行結果」と、各ジョブJの実行によって完了した学習サイクル数が設定される「学習サイクル数」と、各ジョブJの実行に伴う実行結果の格納先のファイルパスが設定される「ファイルパス」とを項目として有する。
【0148】
具体的に、
図23(B)に示す格納先情報133において、例えば、1行目の情報には、「実行結果」として、ジョブJ1の実行結果の名称である「A」が設定され、「学習サイクル数」として、ジョブJ1の実行に伴う学習サイクル数である「44」が設定され、「ファイルパス」として、ジョブJ1の実行結果の格納先である「/CP/AAA」が設定されている。
【0149】
図15に戻り、第2ジョブ生成部115は、例えば、学習サイクル処理P2の実行回数(学習サイクル数)が目的数に到達したか否かを判定する(S26)。
【0150】
その結果、学習サイクル処理P2の実行回数が目的数に到達していないと判定した場合(S26のNO)、第2ジョブ生成部115は、
図16に示すように、例えば、学習サイクル処理P2の実行に要した実行所要時間を特定する(S31)。
【0151】
具体的に、第2ジョブ生成部115は、例えば、情報格納領域130に記憶された処理時間情報131を参照し、「学習サイクル」に設定された時間を、学習サイクル処理P2の実行に要した実行所要時間として取得するものであってよい。
【0152】
次に、第2ジョブ生成部115は、例えば、S31の処理で特定した実行所要時間から、制限時間内に実行可能な学習サイクル処理P2の数(第1数)を特定する(S32)。
【0153】
具体的に、
図22で説明した処理時間情報131には、「初期処理」に対応する「実行所要時間」として「00:03:00」が設定され、「学習サイクル処理」に対応する「実行所要時間」として「00:03:00」が設定され、「記憶処理」に対応する「実行所要時間」として「00:10:00」が設定され、「読込処理」に対応する「実行所要時間」として「00:05:00」が設定されている。
【0154】
そのため、例えば、
図12(B)で説明した場合と同様に、1回の初期処理P1と1回の読込処理P4と複数回の学習サイクル処理P2と1回の記憶処理P3とがジョブJ2に含まれる場合であって、ジョブJ2に対応する制限時間が24時間である場合、第2ジョブ生成部115は、1回の初期処理P1の実行所要時間と1回の読込処理P4の実行所要時間と1回の記憶処理P3の実行所要時間とを24時間から減算することによって、23時間42分を算出する。そして、第2ジョブ生成部115は、例えば、算出した23時間42分を1回の学習サイクル処理P2の実行所要時間である30分で除算することによって、第1数である47を算出する。
【0155】
そして、第2ジョブ生成部115は、例えば、S32の処理で特定した第1数の学習サイクル処理P2を実行するジョブJ2を生成する(S33)。
【0156】
具体的に、第2ジョブ生成部115は、例えば、1回の初期処理P1と1回の読込処理P4と47回の学習サイクル処理P2と1回の記憶処理P3とをこの順で実行するジョブJ2を生成する。
【0157】
続いて、ジョブ投入部112は、例えば、S33の処理で生成したジョブJ2をHPCシステム2に投入する(S34)。
【0158】
具体的に、ジョブ投入部112は、例えば、ジョブJ2の実行に用いるノード数やジョブJ2に対応する制限時間を示す情報とともに、HPCシステム2に対してジョブJ2の投入を行う。
【0159】
その後、ジョブ監視部113は、例えば、S34の処理で投入したジョブJ2の実行が完了するまで待機する(S35のNO)。
【0160】
[HPCシステムにおける学習サイクル実行処理(2)]
次に、HPCシステム2における学習サイクル実行処理のうち、ジョブJ2の投入が行われた場合における処理について説明を行う。
【0161】
処理実行部211は、
図19に示すように、例えば、情報処理装置1からジョブJ2が投入されるまで待機する(S61のNO)。
【0162】
そして、情報処理装置1からジョブJ2が投入された場合(S61のYES)、処理実行部211は、S62以降の処理において、例えば、投入されたジョブJ2に含まれる各処理を順に実行する。
【0163】
具体的に、処理実行部211は、例えば、初めに、初期処理P1、読込処理P4及び学習サイクル処理P2のそれぞれをこの順に実行する(S62、S63及びS64)。
【0164】
続いて、時間取得部212は、例えば、S64の処理において実行された学習サイクル処理P2の実行に要した実行所要時間を取得(計測)する。その後、情報生成部213は、例えば、取得した各実行所要時間を実行ログ231の一部として情報格納領域230に記憶する(S65)。
【0165】
具体的に、情報生成部213は、例えば、情報格納領域230に記憶された実行ログ231のうち、学習サイクル処理P2に対応する実行所要時間を更新する。
【0166】
また、情報生成部213は、この場合、例えば、S43、S53及びS64の処理における学習サイクル処理P2の実行回数(学習サイクル数)の合計を実行ログ231の一部として情報格納領域230に記憶する(S66)。
【0167】
具体的に、情報生成部213は、例えば、情報格納領域230に記憶された実行ログ231のうち、学習サイクル数を更新する。
【0168】
その後、時間判定部214は、
図20に示すように、例えば、S65の処理で取得した学習サイクル処理P2の実行所要時間とS46の処理で記憶処理P3の実行所要時間との合計時間(以下、単に合計時間とも呼ぶ)を算出する。そして、時間判定部214は、例えば、算出した合計時間と、実行中のジョブJ2に対応する制限時間の残り時間とを比較する(S71)。
【0169】
その結果、合計時間が残り時間よりも短いと判定した場合(S72のYES)、処理実行部211は、例えば、次の学習サイクル処理P2を実行する(S73)。
【0170】
そして、時間取得部212は、例えば、S73の処理において実行された学習サイクル処理P2の実行に要した実行所要時間を取得(計測)する。その後、情報生成部213は、例えば、取得した実行所要時間を実行ログ231の一部として情報格納領域230に記憶する(S74)。
【0171】
具体的に、情報生成部213は、例えば、情報格納領域230に記憶された実行ログ231のうち、学習サイクル処理P2に対応する実行所要時間を更新する。なお、情報生成部213は、例えば、S74の処理が行われるごとに、新たに取得した実行所要情報を実行ログ231の一部として蓄積するものであってもよい。
【0172】
また、情報生成部213は、この場合、例えば、S43、S53、S64及びS73の処理における学習サイクル処理P2の実行回数(学習サイクル数)の合計を実行ログ231の一部として情報格納領域230に記憶する(S75)。
【0173】
具体的に、情報生成部213は、例えば、情報格納領域230に記憶された実行ログ231のうち、学習サイクル数を更新する。
【0174】
その後、処理実行部211は、S43、S53、S64及びS73の処理における学習サイクル処理P2の実行回数(学習サイクル数)の合計が目的数に到達したか否かを判定する(S76)。
【0175】
その結果、S43、S53、S64及びS73の処理における学習サイクル処理P2の実行回数の合計が目的数に到達していないと判定した場合(S76のNO)、時間判定部214は、例えば、S71以降の処理を再度行う。
【0176】
一方、S43、S53、S64及びS73の処理における学習サイクル処理P2の実行回数の合計が目的数に到達したと判定した場合(S76のYES)、処理実行部211は、例えば、記憶処理P3を実行する(S77)。すなわち、処理実行部211は、この場合、S61の処理で投入されたジョブJ2の実行を終了する。
【0177】
また、処理実行部211は、例えば、S72の処理において、合計時間が残り時間よりも短くないと判定した場合においても同様に(S72のNO)、S77の処理を実行する。
【0178】
[情報処理装置における学習サイクル実行処理(3)]
次に、情報処理装置1における学習サイクル実行処理のうち、S35以降の処理について説明を行う。
【0179】
図16に示すように、S34の処理で投入したジョブJ2の実行が完了したとジョブ監視部113が判定した場合(S35のYES)、結果特定部114は、例えば、実行が完了したジョブJ2の実行結果(ジョブJ2に含まれる学習サイクル処理P2の実行結果)を取得する。そして、結果特定部114は、例えば、取得したジョブJ2の実行結果を情報格納領域130に記憶する(S36)。
【0180】
なお、結果特定部114は、この場合、S25の処理における場合と同様に、例えば、ジョブJ2が生成した実行ログ231を参照し、情報格納領域130に記憶された処理時間情報131と、サイクル数情報132と、格納先情報133とを更新するものであってもよい。以下、S36の処理(1回目のS36の処理)において生成される処理時間情報131、サイクル数情報132及び格納先情報133の具体例について説明を行う。
【0181】
[処理時間情報、サイクル数情報及び格納先情報の具体例(2)]
図24及び
図25は、処理時間情報131、サイクル数情報132及び格納先情報133の具体例について説明する図である。具体的に、
図24及び
図25は、ジョブJ1の次に実行されるジョブJ2(以下、1つ目のジョブJ2とも呼ぶ)の実行に伴って生成された処理時間情報131、サイクル数情報132及び格納先情報133の具体例について説明する図である。以下、
図22及び
図23で説明した各情報と異なる点についてのみ説明を行う。
【0182】
具体的に、
図24に示す処理時間情報131において、例えば、2行目の情報には、「種別」として「学習サイクル」が設定され、「実行所要時間」として「00:28:00」が設定されている。
【0183】
すなわち、
図24に示す処理時間情報131は、1つ目のジョブJ2に含まれる学習サイクル処理P2の実行所要時間(28分)がジョブJ1に含まれる学習サイクル処理P2の実行所要時間(30分)から短縮されていることを示している。
【0184】
また、
図25(A)に示すサイクル数情報132において、例えば、1行目の情報には、「学習サイクル数」として、ジョブJ1の実行に伴う学習サイクル数と1つ目のジョブJ2の実行に伴う学習サイクル数との合計である「92」が設定されている。
【0185】
また、
図25(B)に示す格納先情報133において、例えば、2行目の情報には、「実行結果」として、1つ目のジョブJ2の実行結果の名称である「B」が設定され、「学習サイクル数」として、1つ目のジョブJ2の実行に伴う学習サイクル数である「48」が設定され、「ファイルパス」として、1つ目のジョブJ2の実行結果の格納先である「/CP/BBB」が設定されている。
【0186】
図16に戻り、第2ジョブ生成部115は、S36の処理の後、例えば、学習サイクル処理P2の実行回数(学習サイクル数)が目的数に到達したか否かを判定する(S26)。
【0187】
その結果、学習サイクル処理P2の実行回数が目的数に到達していないと判定した場合(S26のNO)、第2ジョブ生成部115等は、例えば、新たなジョブJ2をさらに生成してHPCシステム2に実行させる(S31からS36)。以下、2回目のS36の処理において生成される処理時間情報131、サイクル数情報132及び格納先情報133の具体例について説明を行う。
【0188】
[処理時間情報、サイクル数情報及び格納先情報の具体例(3)]
図26及び
図27は、処理時間情報131、サイクル数情報132及び格納先情報133の具体例について説明する図である。具体的に、
図26及び
図27は、1つ目のジョブJ2の次に実行されるジョブJ2(以下、2つ目のジョブJ2とも呼ぶ)の実行に伴って生成された処理時間情報131、サイクル数情報132及び格納先情報133の具体例について説明する図である。以下、
図24及び
図25で説明した各情報と異なる点についてのみ説明を行う。また、以下、目的数が100であるものとして説明を行う。
【0189】
具体的に、
図26に示す処理時間情報131において、例えば、2行目の情報には、「種別」として「学習サイクル」が設定され、「実行所要時間」として「00:25:00」が設定されている。
【0190】
すなわち、
図26に示す処理時間情報131は、2つ目のジョブJ2に含まれる学習サイクル処理P2の実行所要時間(25分)が1つ目のジョブJ2に含まれる学習サイクル処理P2の実行所要時間(28分)から短縮されていることを示している。
【0191】
また、
図27(A)に示すサイクル数情報132において、例えば、1行目の情報には、「学習サイクル数」として、ジョブJ1の実行に伴う学習サイクル数と1つ目のジョブJ2の実行に伴う学習サイクル数と2つ目のジョブJ2の実行に伴う学習サイクル数との合計である「100」が設定されている。
【0192】
また、
図27(B)に示す格納先情報133において、例えば、3行目の情報には、「実行結果」として、2つ目のジョブJ2の実行結果の名称である「C」が設定され、「学習サイクル数」として、2つ目のジョブJ2の実行に伴う学習サイクル数である「8」が設定され、「ファイルパス」として、2つ目のジョブJ2の実行結果の格納先である「/CP/CCC」が設定されている。
【0193】
図16に戻り、第2ジョブ生成部115は、S36の処理の後、例えば、学習サイクル処理P2の実行回数(学習サイクル数)が目的数に到達したか否かを判定する(S26)。
【0194】
具体的に、
図27(A)で説明したサイクル数情報132における「学習サイクル数」には、目的数である「100」が設定されている。そのため、第2ジョブ生成部115は、この場合、例えば、学習サイクル処理P2の実行回数が目的数に到達したと判定する。
【0195】
そして、学習サイクル処理P2の実行回数が目的数に到達したと判定した場合(S26のYES)、結果出力部116は、例えば、最後に実行されたジョブJの実行結果と実行結果情報134とを出力する(S27)。実行結果情報134は、例えば、学習サイクル処理P2の実行回数が目的数に到達するまでに実行された各ジョブJの実行結果を示す情報である。
【0196】
具体的に、結果出力部116は、例えば、情報格納領域130に記憶された処理時間情報131とサイクル数情報132とを参照して、実行結果情報134を生成する。また、結果出力部116は、例えば、情報格納領域130に記憶された格納先情報133を参照して、最後に実行されたジョブJの実行結果を取得する。その後、結果出力部116は、例えば、取得した実行結果と、生成した実行結果情報134とを操作端末5に出力する。以下、実行結果情報134の具体例について説明を行う。
【0197】
[実行結果情報の具体例]
図28は、実行結果情報134の具体例について説明する図である。
【0198】
図28に示す実行結果情報134は、各種別が設定される「種別」と、各種別に対応する結果が設定される「結果」とを項目として有する。
【0199】
具体的に、
図28に示す実行結果情報134において、例えば、1行目の情報には、「種別」として「学習サイクル数」が設定され、「結果」として、情報格納領域130に記憶されたサイクル数情報132に設定された値である「100」が設定されている。また、例えば、2行目の情報には、「種別」として「実行ジョブ数」が設定され、「結果」として、実行されたジョブJ(ジョブJ1、1つ目のジョブJ2及び2つ目のジョブJ2)の数である「3」が設定されている。
【0200】
また、
図28に示す実行結果情報134において、例えば、3行目の情報には、「種別」として「総実行所要時間」が設定され、「結果」として、情報格納領域130に記憶された処理時間情報131の「総実行所要時間」に設定された時間である「2d1h25min」が設定されている。また、例えば、4行目の情報には、「種別」として「初期処理」が設定され、「結果」として、情報格納領域130に記憶された処理時間情報131の「初期処理」に設定された時間である「3min」が設定されている。また、例えば、5行目の情報には、「種別」として「学習サイクル」が設定され、「結果」として、情報格納領域130に記憶された処理時間情報131の「学習サイクル」に設定された時間である「25min」が設定されている。
【0201】
さらに、
図28に示す実行結果情報134において、例えば、6行目の情報には、「種別」として「記憶処理」が設定され、「結果」として、情報格納領域130に記憶された処理時間情報131の「記憶処理」に設定された時間である「10min」が設定されている。また、例えば、7行目の情報には、「種別」として「読込処理」が設定され、「結果」として、情報格納領域130に記憶された処理時間情報131の「読込処理」に設定された時間である「5min」が設定されている。
【0202】
このように、本実施の形態における情報処理装置1は、例えば、機械学習モデルの学習処理を行う1以上の学習サイクル処理P2を実行する第1ジョブJ1の実行に応じて、第1ジョブJ1に含まれる学習サイクル処理P2の実行に要した第1実行所要時間を特定する。そして、情報処理装置1は、例えば、第1実行所要時間に基づいて、第1制限時間内に実行が完了する学習サイクル処理P2の第1数を特定する。
【0203】
その後、情報処理装置1は、例えば、第1数の学習サイクル処理P2を実行する第2ジョブJ2を生成する。そして、情報処理装置1は、例えば、第2ジョブJ2を実行する。
【0204】
ここで、第2ジョブJは、例えば、第1数の学習サイクル処理P2の実行が完了した場合、第1数の学習サイクル処理P2の次の学習サイクル処理P2の実行が第1制限時間内に完了するか否かを判定する。その結果、第1数の学習サイクル処理P2の次の学習サイクル処理P2の実行が第1制限時間内に完了すると判定した場合、第2ジョブJは、例えば、第1数の学習サイクル処理P2の次の学習サイクル処理P2を実行する。
【0205】
すなわち、本実施の形態における情報処理装置1は、例えば、次に実行する新たなジョブJの生成を行う場合、既に実行が終了したジョブJにおいて学習サイクル処理P2の実行に要した実行所要時間を用いることにより、次に実行する新たなジョブJにおいて実行させる学習サイクル処理P2の数を決定する。
【0206】
また、情報処理装置1によって生成された各ジョブJは、例えば、実行予定であった各学習サイクル処理P2の実行が各学習サイクル処理P2の実行時間の短縮に伴って予定よりも早く完了した場合、さらなる学習サイクル処理P2の実行を自動的に行う。
【0207】
これにより、本実施の形態における情報処理装置1は、例えば、各学習サイクル処理P2の実行所要時間が変動する場合であっても、変動後の実行所要時間に応じた数の学習サイクル処理P2を実行するジョブJの生成を行うことが可能になる。
【0208】
また、情報処理装置1は、例えば、各学習サイクル処理P2の実行所要時間の変動がジョブJの実行中に発生した場合においても、実行中のジョブJにおいてこれから実行する各学習サイクル処理P2の数を、変動後の実行所要時間に応じて調整することが可能になる。具体的に、情報処理装置1は、例えば、各学習サイクル処理P2の実行所要時間がジョブJの実行中において短縮された場合、実行中のジョブJにおいてこれから実行する各学習サイクル処理P2の数を増加させることが可能になる。
【0209】
さらに、情報処理装置1は、例えば、各学習サイクル処理P2の実行所要時間の変動に応じて各ジョブJに含める学習サイクル処理P2の数を調整することで、各ジョブJの実行を制限時間内に精度良く完了させることが可能になる。そのため、情報処理装置1は、例えば、各ジョブJにおける記憶処理P3の実行頻度を抑えることが可能になる。
【0210】
したがって、本実施の形態における情報処理装置1は、例えば、学習処理の実行に要する処理量を抑制することが可能になり、ジョブJの分割数を抑制することが可能になる。そのため、情報処理装置1は、例えば、学習処理の実行を効率的に行うことが可能になる。具体的に、情報処理装置1は、例えば、学習処理の実行に要する時間やHPCシステム2のリソースを借り受けるためのコスト等を抑制することが可能になる。
【0211】
また、情報処理装置1は、例えば、
図27等で説明した2つ目のジョブJ2(「実行結果」が「C」であるジョブJ)のように、学習サイクル処理P2の数が少ないジョブJを生成した場合、ジョブJの実行についての制限時間を短く設定することが可能になる。そのため、情報処理装置1は、この場合、例えば、生成したジョブJの実行に用いるHPCシステム2の空きリソースの確保が容易になり、結果として、生成したジョブJの実行完了を早めることが可能になる。
【0212】
以上の実施の形態をまとめると、以下の付記のとおりである。
【0213】
(付記1)
機械学習モデルの学習処理を行う1以上の学習サイクルを実行する第1ジョブの実行に応じて、前記第1ジョブに含まれる学習サイクルの実行に要した第1実行所要時間を特定し、
特定した前記第1実行所要時間に基づいて、第1制限時間内に実行が完了する学習サイクルの第1数を特定し、
特定した前記第1数の学習サイクルを実行する第2ジョブを生成し、
生成した前記第2ジョブを実行する、
処理をコンピュータに実行させ、
前記第2ジョブは、
前記第1数の学習サイクルの実行が完了した場合、前記第1数の学習サイクルの次の学習サイクルの実行が前記第1制限時間内に完了するか否かを判定し、
前記次の学習サイクルの実行が前記第1制限時間内に完了すると判定した場合、前記次の学習サイクルを実行する、
ことを特徴とする学習サイクル実行プログラム。
【0214】
(付記2)
付記1において、
前記第1実行所要時間を特定する処理では、前記学習処理の初期処理の実行に要した実行所要時間と、前記1以上の学習サイクルに含まれるいずれかの学習サイクルの実行結果についての記憶処理の実行に要した実行所要時間と、前記実行結果の読み込み処理の実行に要した実行所要時間とのうちの少なくともいずれかの実行所要時間を特定し、
前記第1数を特定する処理では、前記第1実行所要時間と前記少なくともいずれかの実行所要時間とに基づいて前記第1数を特定する、
ことを特徴とする学習サイクル実行プログラム。
【0215】
(付記3)
付記2において、
前記第1ジョブは、
前記第1ジョブに含まれる第1学習サイクルの実行の完了に応じて、前記第1学習サイクルの実行に要した第2実行所要時間を計測し、
計測した前記第2実行所要時間と、前記記憶処理の実行に要した前記実行所要時間との合計時間を算出し、
算出した前記合計時間が前記第1ジョブに対応する制限時間の残り時間よりも短い場合、前記第1学習サイクルの次に実行される第2学習サイクルを実行する、
ことを特徴とする学習サイクル実行プログラム。
【0216】
(付記4)
付記2において、
前記第2ジョブは、
前記第2ジョブに含まれる第1学習サイクルの実行の完了に応じて、前記第1学習サイクルの実行に要した第2実行所要時間を計測し、
計測した前記第2実行所要時間と、前記記憶処理の実行に要した前記実行所要時間との合計時間を算出し、
算出した前記合計時間が前記第2ジョブに対応する制限時間の残り時間よりも短い場合、前記第1学習サイクルの次に実行される第2学習サイクルを実行する、
ことを特徴とする学習サイクル実行プログラム。
【0217】
(付記5)
付記1において、
前記第2ジョブは、
実行中において、前記第1ジョブの実行に伴って実行された学習サイクルの数と前記第2ジョブの実行に伴って実行された学習サイクルの数との合計が予め定められた目的数に到達したか否かを判定し、
前記合計が前記目的数に到達したと判定した場合、実行を終了する、
ことを特徴とする学習サイクル実行プログラム。
【0218】
(付記6)
付記5において、さらに、
前記第1制限時間の到達によって前記第2ジョブが完了した場合、前記第2ジョブに含まれる学習サイクルの第3実行所要時間を特定し、
特定した前記第3実行所要時間に基づいて、前記第1制限時間よりも後の第2制限時間内に実行が完了する学習サイクルの第2数を特定し、
特定した前記第2数の学習サイクルを実行する第3ジョブを生成し、
生成した前記第3ジョブを実行する、
処理をコンピュータに実行させ、
前記第3ジョブは、
前記第2数の学習サイクルの実行が完了した場合、前記第2数の学習サイクルの次の学習サイクルの実行が前記第2制限時間内に完了するか否かを判定し、
前記第2数の学習サイクルの次の学習サイクルの実行が前記第2制限時間内に完了すると判定した場合、前記第2数の学習サイクルの次の学習サイクルを実行する、
ことを特徴とする学習サイクル実行プログラム。
【0219】
(付記7)
付記1において、
前記第1ジョブは、前記1以上の学習サイクルのそれぞれの実行が完了するごとに、各実行サイクルに実行に要した特定の実行所要時間を出力し、
前記第1実行所要時間を特定する処理では、前記第1ジョブから出力された前記特定の実行所要時間のうちの1以上の実行所要時間に基づいて、前記第1実行所要時間を特定する、
ことを特徴とする学習サイクル実行プログラム。
【0220】
(付記8)
付記7において、
前記第1実行所要時間を特定する処理では、前記第1ジョブから出力された前記特定の実行所要時間のうち、前記1以上の学習サイクルにおいて最後に実行された学習サイクルに対応する実行所要時間を、前記第1実行所要時間として特定する、
ことを特徴とする学習サイクル実行プログラム。
【0221】
(付記9)
付記2において、
前記第1ジョブは、前記初期処理の実行に要した実行所要時間と、前記記憶処理の実行に要した実行所要時間と、前記読み込み処理の実行に要した実行所要時間とのうちの少なくともいずれかを出力し、
前記第1実行所要時間を特定する処理では、前記第1ジョブから出力された前記少なくともいずれかの実行所要時間を特定する、
ことを特徴とする学習サイクル実行プログラム。
【0222】
(付記10)
機械学習モデルの学習処理を行う1以上の学習サイクルを実行する処理をコンピュータに実行させる学習サイクル実行プログラムであって、
前記1以上の学習サイクルの実行が完了した場合、前記1以上の学習サイクルの次の学習サイクルの実行が第1制限時間内に完了するか否かを判定し、
前記次の学習サイクルの実行が前記第1制限時間内に完了すると判定した場合、前記次の学習サイクルを実行する、
ことを特徴とする学習サイクル実行プログラム。
【0223】
(付記11)
機械学習モデルの学習処理を行う1以上の学習サイクルを実行する第1ジョブの実行に応じて、前記第1ジョブに含まれる学習サイクルの実行に要した第1実行所要時間を特定する結果特定部と、
特定した前記第1実行所要時間に基づいて、第1制限時間内に実行が完了する学習サイクルの第1数を特定し、特定した前記第1数の学習サイクルを実行する第2ジョブを生成するジョブ生成部と、
生成した前記第2ジョブを実行するジョブ実行部と、を有し、
前記第2ジョブは、
前記第1数の学習サイクルの実行が完了した場合、前記第1数の学習サイクルの次の学習サイクルの実行が前記第1制限時間内に完了するか否かを判定し、
前記次の学習サイクルの実行が前記第1制限時間内に完了すると判定した場合、前記次の学習サイクルを実行する、
ことを特徴とする情報処理装置。
【0224】
(付記12)
付記11において、
前記第2ジョブは、
実行中において、前記第1ジョブの実行に伴って実行された学習サイクルの数と前記第2ジョブの実行に伴って実行された学習サイクルの数との合計が予め定められた目的数に到達したか否かを判定し、
前記合計が前記目的数に到達したと判定した場合、実行を終了する、
ことを特徴とする情報処理装置。
【0225】
(付記13)
機械学習モデルの学習処理を行う1以上の学習サイクルを実行する第1ジョブの実行に応じて、前記第1ジョブに含まれる学習サイクルの実行に要した第1実行所要時間を特定し、
特定した前記第1実行所要時間に基づいて、第1制限時間内に実行が完了する学習サイクルの第1数を特定し、
特定した前記第1数の学習サイクルを実行する第2ジョブを生成し、
生成した前記第2ジョブを実行する、
処理をコンピュータが実行し、
前記第2ジョブは、
前記第1数の学習サイクルの実行が完了した場合、前記第1数の学習サイクルの次の学習サイクルの実行が前記第1制限時間内に完了するか否かを判定し、
前記次の学習サイクルの実行が前記第1制限時間内に完了すると判定した場合、前記次の学習サイクルを実行する、
ことを特徴とする学習サイクル実行方法。
【0226】
(付記14)
付記13において、
前記第2ジョブは、
実行中において、前記第1ジョブの実行に伴って実行された学習サイクルの数と前記第2ジョブの実行に伴って実行された学習サイクルの数との合計が予め定められた目的数に到達したか否かを判定し、
前記合計が前記目的数に到達したと判定した場合、実行を終了する、
ことを特徴とする学習サイクル実行方法。
【符号の説明】
【0227】
1:情報処理装置 2:HPCシステム
5:操作端末 NW:ネットワーク
101:CPU 102:メモリ
103:I/Oインタフェース 104:ストレージ
105:バス 130:情報格納領域
201:CPU 202:メモリ
203:I/Oインタフェース 204:ストレージ
205:バス 230:情報格納領域