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

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

▶ 株式会社JSOLの特許一覧

特許7485846情報処理方法、情報処理装置及びコンピュータプログラム
<>
  • 特許-情報処理方法、情報処理装置及びコンピュータプログラム 図1
  • 特許-情報処理方法、情報処理装置及びコンピュータプログラム 図2
  • 特許-情報処理方法、情報処理装置及びコンピュータプログラム 図3
  • 特許-情報処理方法、情報処理装置及びコンピュータプログラム 図4
  • 特許-情報処理方法、情報処理装置及びコンピュータプログラム 図5
  • 特許-情報処理方法、情報処理装置及びコンピュータプログラム 図6
  • 特許-情報処理方法、情報処理装置及びコンピュータプログラム 図7
  • 特許-情報処理方法、情報処理装置及びコンピュータプログラム 図8
  • 特許-情報処理方法、情報処理装置及びコンピュータプログラム 図9
  • 特許-情報処理方法、情報処理装置及びコンピュータプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-05-08
(45)【発行日】2024-05-16
(54)【発明の名称】情報処理方法、情報処理装置及びコンピュータプログラム
(51)【国際特許分類】
   G06F 30/20 20200101AFI20240509BHJP
   G06F 30/27 20200101ALI20240509BHJP
   G16Z 99/00 20190101ALI20240509BHJP
【FI】
G06F30/20
G06F30/27
G16Z99/00
【請求項の数】 7
(21)【出願番号】P 2023205386
(22)【出願日】2023-12-05
【審査請求日】2023-12-05
【早期審査対象出願】
(73)【特許権者】
【識別番号】507228172
【氏名又は名称】株式会社JSOL
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】山田 隆
(72)【発明者】
【氏名】▲たに▼ 浩司
【審査官】松浦 功
(56)【参考文献】
【文献】特開2007-249786(JP,A)
【文献】特開2014-074994(JP,A)
【文献】特開2016-142708(JP,A)
【文献】特開2022-147008(JP,A)
【文献】米国特許出願公開第2021/0398002(US,A1)
【文献】米国特許第06345242(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00 -30/398
G06F 9/46 - 9/54
G16Z 99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータが、複数のパラメータによって規定されるシミュレーション対象モデルの特性又は挙動に関する応答値を演算する情報処理方法であって、
前記コンピュータは、
異なるパラメータが設定された複数のシミュレーション対象モデルそれぞれの応答値を第1演算手法にて算出する演算処理を各別に複数の演算コアに割り当てて実行し、
前記複数の演算コアで継続している演算処理の時間に基づいて、各演算コアにおける該演算処理を終了するか否かを判定し、
終了すると判定した場合、演算処理を終了し、
演算処理を終了したシミュレーション対象モデルの応答値を第2演算手法にて算出する演算処理を、第1演算手法の演算処理を終了した前記演算コアに割り当てて実行する
情報処理方法。
【請求項2】
第1演算手法は、第2演算手法に比べて応答値の演算精度が高いが応答値の演算速度が低く、第1演算手法を用いた応答値の演算処理に要する演算処理時間はシミュレーション対象モデルのパラメータによって異なる
請求項1に記載の情報処理方法。
【請求項3】
第1演算手法は、CAE解析にて応答値を演算する手法であり、
第2演算手法は、機械学習モデルを用いて応答値を演算する手法である
請求項2に記載の情報処理方法。
【請求項4】
前記コンピュータは、
前記複数の演算コアのうち、一部の前記演算コアにおける第1演算手法を用いた応答値の演算処理に要した時間に基づいて、他の前記演算コアにおける演算処理を終了するか否かを判定するための閾値を決定し、
前記複数の演算コアで継続している演算処理の時間と閾値とを比較することによって、各演算コアにおける該演算処理を終了するか否かを判定する
請求項1又は請求項2に記載の情報処理方法。
【請求項5】
前記コンピュータは、
前記複数の演算コアのうち、一部の前記演算コアにおける第1演算手法を用いた応答値の演算処理が完了した場合、他の前記演算コアにおける演算処理を終了する
請求項1又は請求項2に記載の情報処理方法。
【請求項6】
複数のパラメータによって規定されるシミュレーション対象モデルの特性又は挙動に関する応答値を演算する演算部を備える情報処理装置であって、
前記演算部は、
異なるパラメータが設定された複数のシミュレーション対象モデルそれぞれの応答値を第1演算手法にて算出する演算処理を各別に複数の演算コアに割り当てて実行し、
前記複数の演算コアで継続している演算処理の時間に基づいて、各演算コアにおける該演算処理を終了するか否かを判定し、
終了すると判定した場合、演算処理を終了し、
演算処理を終了したシミュレーション対象モデルの応答値を第2演算手法にて算出する演算処理を、第1演算手法の演算処理を終了した前記演算コアに割り当てて実行する
情報処理装置。
【請求項7】
複数のパラメータによって規定されるシミュレーション対象モデルの特性又は挙動に関する応答値を演算する処理を、コンピュータに実行させるコンピュータプログラムであって、
異なるパラメータが設定された複数のシミュレーション対象モデルそれぞれの応答値を第1演算手法にて算出する演算処理を各別に複数の演算コアに割り当てて実行し、
前記複数の演算コアで継続している演算処理の時間に基づいて、各演算コアにおける該演算処理を終了するか否かを判定し、
終了すると判定した場合、演算処理を終了し、
演算処理を終了したシミュレーション対象モデルの応答値を第2演算手法にて算出する演算処理を、第1演算手法の演算処理を終了した前記演算コアに割り当てて実行する
処理を前記コンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理方法、情報処理装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
製品設計において、モータ等の設計対象物を表したシミュレーション対象モデルの特性又は挙動を有限要素法等のCAE解析により算出することが行われている。例えば、特許文献1には、熟練した設計者でなくても容易且つ迅速に所望のインダクタの設計が可能な設計方法が開示されている。具体的には、特許文献1に係る設計方法は、巻線型インダクタをコンピュータを用いて設計する方法であって、インダクタの構造を記述する変数を初期化するステップと、予め入力されたコア及びコイル導体の属性情報に基づき前記変数で記述された構造を有するインダクタの特性を電磁界解析により算出するステップと、少なくともインダクタ特性をパラメータとする所定の評価関数を用いて評価値を算出するステップと、評価値が所定の収束条件を満たしているかを判定するステップと、収束条件が満たされている場合には処理を終了し、収束条件が満たされていない場合には、遺伝的アルゴリズム等の確率論的最適化アルゴリズムにより変数の値を変動させるステップとを備え、収束条件が満たされるまで解析処理及び最適化処理を繰り返す。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2010-062200号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、最適化アルゴリズムのようにシミュレーション対象モデルの特性又は挙動を繰り返し計算する必要がある場合、多大な演算時間を要するという問題があった。演算時間の問題は、最適化アルゴリズムに限られるものではなく、多数のシミュレーションを実行する必要がある場合にも生ずる。
なお、複数の演算コアを用いて多数のシミュレーションを並列実行することも考えられるが、上記問題を根本的に解決するものではない。
【0005】
本開示の目的は、複数の演算コアを用いてシミュレーション対象モデルの特性又は挙動に関する応答値を効率的に演算することができる情報処理方法、情報処理装置及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本開示の一態様に係る情報処理方法は、複数のパラメータによって規定されるシミュレーション対象モデルの特性又は挙動に関する応答値を演算する情報処理方法であって、異なるパラメータが設定された複数のシミュレーション対象モデルそれぞれの応答値を第1演算手法にて算出する演算処理を各別に複数の演算コアに割り当てて実行し、前記複数の演算コアで継続している演算処理の時間に基づいて、各演算コアにおける該演算処理を終了するか否かを判定し、終了すると判定した場合、演算処理を終了し、演算処理を終了したシミュレーション対象モデルの応答値を第2演算手法にて算出する演算処理を、第1演算手法の演算処理を終了した前記演算コアに割り当てて実行する。
【0007】
本開示の一態様に係る情報処理装置は、複数のパラメータによって規定されるシミュレーション対象モデルの特性又は挙動に関する応答値を演算する演算部を備える情報処理装置であって、前記演算部は、異なるパラメータが設定された複数のシミュレーション対象モデルそれぞれの応答値を第1演算手法にて算出する演算処理を各別に複数の演算コアに割り当てて実行し、前記複数の演算コアで継続している演算処理の時間に基づいて、各演算コアにおける該演算処理を終了するか否かを判定し、終了すると判定した場合、演算処理を終了し、演算処理を終了したシミュレーション対象モデルの応答値を第2演算手法にて算出する演算処理を、第1演算手法の演算処理を終了した前記演算コアに割り当てて実行する。
【0008】
本開示の一態様に係るコンピュータプログラムは、複数のパラメータによって規定されるシミュレーション対象モデルの特性又は挙動に関する応答値を演算する処理を、コンピュータに実行させるコンピュータプログラムであって、異なるパラメータが設定された複数のシミュレーション対象モデルそれぞれの応答値を第1演算手法にて算出する演算処理を各別に複数の演算コアに割り当てて実行し、前記複数の演算コアで継続している演算処理の時間に基づいて、各演算コアにおける該演算処理を終了するか否かを判定し、終了すると判定した場合、演算処理を終了し、演算処理を終了したシミュレーション対象モデルの応答値を第2演算手法にて算出する演算処理を、第1演算手法の演算処理を終了した前記演算コアに割り当てて実行する処理を前記コンピュータに実行させる。
【発明の効果】
【0009】
本開示によれば、複数の演算コアを用いてシミュレーション対象モデルの特性又は挙動に関する応答値を効率的に演算することができる情報処理方法、情報処理装置及びコンピュータプログラムを提供することができる。
【図面の簡単な説明】
【0010】
図1】実施形態1に係る情報処理装置の構成例を示すブロック図である。
図2】遺伝的アルゴリズムを用いた最適化計算の処理手順を示すフローチャートである。
図3】実施形態1に係る応答値計算の処理手順を示すフローチャートである。
図4】従来手法に係る並列演算処理を示した概念図である。
図5】本実施形態1に係る並列演算処理の第1の例を示した概念図である。
図6】従来手法に係る並列演算処理と、本実施形態1に係る並列演算処理の第2の例を示した概念図である。
図7】実施形態2に係る応答値計算の処理手順を示すフローチャートである。
図8】実施形態3に係る応答値計算の処理手順を示すフローチャートである。
図9】従来手法に係る並列演算処理を示した概念図である。
図10】本実施形態3に係る並列演算処理の一例を示した概念図である。
【発明を実施するための形態】
【0011】
本開示の実施形態に係る情報処理方法、情報処理装置及びコンピュータプログラムを、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0012】
(実施形態1)
図1は、実施形態1に係る情報処理装置1の構成例を示すブロック図である。情報処理装置1は、実施形態1に係る情報処理方法を実施するコンピュータであり、演算部11、表示部12、操作部13及び記憶部14を備える。各部は、バスにより接続されている。
【0013】
なお、情報処理装置1は、スタンドアロンのコンピュータであってもよいし、ネットワークに接続されたサーバ装置であっても良い。また、情報処理装置1は、オンプレミス環境にあるコンピュータであってもよいし、クラウド環境にあるサーバ等のコンピュータであってもよい。情報処理装置1は、複数台のコンピュータで構成し分散処理する構成でもよいし、1台のサーバ内に設けられた複数の仮想マシンによって実現されていてもよいし、クラウドサーバを用いて実現されていてもよい。
【0014】
演算部11は、CPU(Central Processing Unit)、マルチコアCPU、GPU(Graphics Processing Unit)、GPGPU(General-purpose computing on graphics processing units)、TPU(Tensor Processing Unit)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、NPU(Neural Processing Unit)等の演算回路、ROM(Read Only Memory)、RAM(Random Access Memory)等の内部記憶装置、I/O端子、計時部等を有するプロセッサである。本実施形態1に係る演算部11は、複数の演算コア11aを有する。演算部11は、後述の記憶部14が記憶するコンピュータプログラム(プログラム製品)141を実行することにより、本実施形態1に係る情報処理方法を実施する。なお、情報処理装置1の各機能部は、ソフトウェア的に実現してもよいし、一部又は全部をハードウェア的に実現してもよい。
【0015】
表示部12は、例えば、液晶パネル又は有機EL(Electro Luminescence)ディスプレイ等の表示装置である。
【0016】
操作部13は、例えば、ハードウェアキーボード、ポインティングデバイス、タッチパネル等の入力装置である。情報処理装置1のユーザは、操作部13を用いて任意の情報を情報処理装置1に入力することができる。なお、操作部13は表示部12と一体に構成してもよい。
【0017】
記憶部14は、例えば主記憶部及び補助記憶部を有する。主記憶部は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の一時記憶領域であり、演算部11が演算処理を実行するために必要なデータを一時的に記憶する。補助記憶部は、ハードディスク、EEPROM(Electrically Erasable Programmable ROM)等の記憶装置である。記憶部14は、演算部11が実行するコンピュータプログラム141、CAEモデル142及びサロゲートモデル143を記憶する。
【0018】
CAEモデル142は、例えば、シミュレーション対象の形状を表す3次元CADデータ等の3次元形状モデル、3次元形状モデルを構成する各部の材料特性等を含む。具体的には、シミュレーション対象モデルがモータである場合、CAEモデル142は、モータを構成する複数のコイル、固定子及び回転子の形状を表す3次元CADデータ等の3次元形状モデル、3次元形状モデルを構成する各部の材料特性、境界条件、電圧条件等を含む。材料特性としては、磁化特性、電気特性、機械特性等が挙げられる。
【0019】
演算部11は、CAEモデル142を有限要素法(FEA: Finite Element Analysis)又は境界要素法等の公知の演算手法(第1の演算手法)を用いて解析することにより、シミュレーション対象モデルの特性又は挙動に関する応答値を演算する。つまり、シミュレーション対象モデルの特定又は挙動をシミュレートする。例えば、演算部11は、モータのCAEモデル142を磁界解析する。磁界解析は、有限要素法又は境界要素法等の公知の磁界解析シミュレータを用いて行われる。有限要素法は、複雑な形状及び電磁特性を有するモータの回転子及び固定子を単純な形状及び電磁特性を有する小領域(要素)に分割し、単純化された各要素の特性を近似的に演算することでモータ全体の挙動又は特性を予測する手法である。以下、本実施形態1では、CAEモデル142を用いた応答値の演算処理を、適宜FEA計算と呼ぶ。
【0020】
サロゲートモデル143は、上記したシミュレーション対象モデルを規定する複数のパラメータが入力された場合、シミュレーション対象モデルの特性又は挙動に関する応答値を出力する機械学習モデルである。サロゲートモデル143は、例えば機械学習による学習済みのニューラルネットワーク(NN:Neural Network)を含む。サロゲートモデル143は、シミュレーション対象モデルを規定する複数のパラメータが入力される入力層と、シミュレーション対象モデルの特徴量を抽出する中間層と、シミュレーション対象モデルの特性又は挙動に関する応答値を出力する出力層とを有する。
【0021】
演算部11は、サロゲートモデル143を用いた演算手法(第2演算手法)により、シミュレーション対象モデルの特性又は挙動に関する応答値を演算する。サロゲートモデル143を用いた応答値の演算処理は、FEA計算よりも速やかに行われる。
【0022】
サロゲートモデル143は、コンピュータを用いた学習装置において、訓練データを用いた機械学習を行うことによって生成される。訓練データは、シミュレーション対象モデルを規定する複数のパラメータと、シミュレーション対象モデルの特性又は挙動に関する応答値とが関連付けられたデータセットが多数含まれている。学習装置は、サロゲートモデル143の素となるモデルへ、訓練データに記録されているシミュレーション対象モデルを規定する複数のパラメータを入力し、モデルは、当該パラメータの入力に応じて、演算を行い、シミュレーション対象モデルの特性又は挙動に関する応答値を出力する。学習装置は、モデルが出力した応答値と、入力された複数のパラメータに関連づけられた応答値との誤差が小さくなるように、モデルのパラメータを調整する。例えば、誤差逆伝播法によりパラメータの調整が行われる。
【0023】
学習装置は、訓練データに含まれる複数のデータセットを用いた上記処理を繰り返して、モデルのパラメータを調整することにより、機械学習を行う。このように演算のパラメータが調整されることによって、サロゲートモデル143が生成される。サロゲートモデル143の素となるモデルの構成及びパラメータを示すデータは、サロゲートモデル143として、情報処理装置1の記憶部14に記憶される。
【0024】
なお、サロゲートモデル143の一例としてニューラルネットワークを説明したが、SVR(サポートベクター回帰)、決定木、線形回帰等を用いたモデルであってもよく、その手法は問わない。
【0025】
なお、補助記憶部は、情報処理装置1に接続された外部記憶装置であってもよい。コンピュータプログラム141及びサロゲートモデル143は、情報処理装置1の製造段階において記憶部14に書き込まれてもよいし、外部サーバが配信するものを情報処理装置1が通信にて取得して記憶部14に記憶させてもよい。コンピュータプログラム141及びサロゲートモデル143は、磁気ディスク、光ディスク、半導体メモリ等の記録媒体10に読み出し可能に記録された態様であってもよく、読取装置が記録媒体10から読み出して記憶部14に記憶させてもよい。
【0026】
<情報処理方法>
ここでは、一例として、遺伝的アルゴリズムを用いた最適化処理を説明する。電磁界解析を用いたモータ設計等においては、GA(遺伝的アルゴリズム)を用いた最適化計算がよく用いられる。最適化計算は、例えば、モータの平均トルクを向上させ、局所応力を抑えるようなモータ設計案を算出するような計算である。シミュレーション対象モデルのパラメータは、例えば、モータのロータを構成する永久磁石の位置(例えば、ロータ中心から永久磁石の中心までの距離)及び形状(断面矩形状の場合、縦寸法及び横寸法)、フラックスバリアの形状を特徴付ける値である。シミュレーション対象のCAEモデル142及びサロゲートモデル143によって算出される応答値は、例えばトルクの平均値及びロータ内のミーゼス応力の最大値である。
【0027】
図2は、遺伝的アルゴリズムを用いた最適化計算の処理手順を示すフローチャートである。先ず、演算部11は、世代を示す変数Gに0を代入する(ステップS111)。次いで、演算部11は、第G世代にある複数のシミュレーション対象モデルをそれぞれ規定する複数(N個>1)のパラメータを算出する(ステップS112)。
【0028】
次いで、演算部11は、ステップS112で算出した複数のパラメータによりそれぞれ規定されるシミュレーション対象モデルの応答値を算出する(ステップS113)。例えば、演算部11は、モータの平均トルク、所定部位における応力を算出する。なお、有限要素法又は境界要素法等の計算は、遺伝的アルゴリズムを用いた最適化計算のメインの処理に比べて時間がかかるため、複数個(M個:M>1)の演算コア11aを用いて行われる。演算部11は、複数のシミュレーション対象モデルそれぞれの応答値を算出する演算処理を各別に複数の演算コア11aに割り当てて実行する。応答値の算出処理の詳細は後述する。
【0029】
複数のシミュレーション対象モデルの応答値の演算が終了した場合、演算部11は、求められた応答値を集約し(ステップS114)、第G世代の応答値が収束したか否かを判定する(ステップS115)。応答値が収束していないと判定した場合(ステップS115:NO)、演算部11は、変数Gをインクリメントすることにより世代を1つ進め(ステップS116)、処理をステップS112へ戻す。
なお、ステップS114~ステップS116の処理は、第G世代に係るN個のシミュレーション対象モデルそれぞれの応答値の演算が終了しないと実行できない処理である。つまり、ステップS113の処理が遅延すると、当該処理がボトルネックとなり、シミュレーション対象モデルの最適化処理全体が遅延することになる。
【0030】
第G世代の応答値が収束したと判定した場合(ステップS115:YES)、演算部11は、収束した応答値を出力し(ステップS117)、処理を終える。例えば、演算部11は、最適化されたモータを規定するパラメータと、平均トルク及び最大応力等の応答値を表示部12に表示する。
【0031】
図3は、実施形態1に係る応答値計算の処理手順を示すフローチャートである。演算部11は、複数の演算コア11aそれぞれの演算処理の状態、各演算コア11aに割り当てられたジョブの演算時間を監視する処理を開始する(ステップS131)。そして、演算部11は、異なるパラメータが設定された複数のシミュレーション対象モデルそれぞれの応答値を第1演算手法にて算出するジョブ(演算処理)を各別に複数の演算コア11aに割り当てて実行を開始する(ステップS132)。第1演算手法は、CAEモデル142を用いたFEA計算により応答値を算出する手法である。なお、演算コア11aに割り当てるべきジョブの数(N個)と、演算コア11aの数(M個)との関係は特に限定されるものではない。演算コア11aの数よりも少数のジョブを割り当ててもよいし、演算コア11aの数よりも多くのジョブを順次割り当ててもよい。
【0032】
次いで、演算部11は、応答値の演算処理を終えた演算コア11aがあるか否かを判定する(ステップS133)。応答値の演算処理を終えた演算コア11aが無いと判定した場合(ステップS133:NO)、演算部11は、ステップS133の処理を繰り返し実行し、複数の演算コア11aそれぞれの演算処理状態の監視を継続する。
【0033】
応答値の演算処理を終えた演算コア11aがあると判定した場合(ステップS133:YES)、演算部11は、他の演算コア11aにおけるジョブを強制終了すべきかどうかを判定するための閾値を決定する(ステップS134)。例えば、演算部11は、最も早く終了したジョブの演算時間に所定の係数を乗算し、又は所定値を加算した値を閾値とする。閾値の決定方法は、一例であり、特に限定されるものではない。演算部11は、複数の演算コア11aで実行されたジョブのうち、最も早く終了したジョブの演算時間を閾値としてもよい。また、シミュレーション対象モデルに応じた所定値を閾値としてもよい。
なお、ここでの演算時間は、シミュレーション対象モデルの演算を開始するためのシステム処理(図4参照)を含めてもよいし、含めなくてもよい。実質的に、応答値の演算処理に要した時間を示すものであれば、その計時開始時点及び終了時点は特に限定されるものではない。この演算時間の考え方はステップS135においても同様である。
【0034】
次いで、演算部11は、第1演算手法を用いて応答値を算出するジョブの演算時間が閾値超であるか否かを判定する(ステップS135)。つまり、演算部11は、応答値の演算処理が継続しているジョブの演算継続時間が閾値を超えたか否かを判定する。
【0035】
演算時間が閾値超の演算コア11aがあると判定した場合(ステップS135:YES)、応答値の演算処理開始後、その演算時間が閾値を超えているジョブを強制的に終了する(ステップS136)。そして、演算部11は、応答値を第2演算手法にて算出するジョブを、第1演算手法の演算処理を強制終了した演算コア11aに割り当てて実行する(ステップS137)。第2演算手法は、サロゲートモデル143を用いて、シミュレーション対象モデルに係る応答値を計算する手法である。
【0036】
ステップS136の処理を終えた場合、又は演算時間が閾値超の演算コア11aがないと判定した場合(ステップS135:NO)、演算部11は、第1演算手法のジョブを終えた演算コア11aがあるか否かを判定する(ステップS138)。第1演算手法のジョブを終えた演算コア11aがないと判定した場合(ステップS138:NO)、演算部11は処理をステップS135へ戻す。
【0037】
第1演算手法のジョブを終えた演算コア11aがあると判定した場合(ステップS138:YES)、全てのジョブを終了したか否かを判定する(ステップS139)。終了していないジョブがあると判定した場合(ステップS139:NO)、演算部11は、第1演算手法にて応答値を算出するジョブを、ステップS138でジョブを終了したと判定された演算コア11aに割り当てて実行を開始し(ステップS140)、処理をステップS135へ戻す。
【0038】
全てのジョブを終了したと判定した場合(ステップS139:YES)、演算部11は処理を終える。
【0039】
図4は、従来手法に係る並列演算処理を示した概念図である。ここでは簡単のため、図4に示す様に、10個のFEA計算を10個の演算コア11aを用いて並列計算する場合を考える。
【0040】
図4A及び図4Bは、10個のFEA計算を10個の演算コア11aを用いて並列計算した場合における各演算コア11aの処理動作状態を示している。コアNo.は10個の演算コア11aを示している。横に並ぶ数字は各コアの演算処理時間を示しており、横長バーは各演算コア11aが動作中(演算処理中)である期間を示している。特に、黒塗り部分は、シミュレーション対象モデルの演算を開始するためのシステム処理を示しており、白抜き部分はFEA計算を行っている期間を示している。システム処理に要する時間は、説明の便宜上、おおよその演算時間として0.5分としている。
【0041】
シミュレーション対象モデルのパラメータが異なれば、図4に示す様にFEA計算時間(第1演算手法を用いた応答値の演算処理に要する演算処理時間)にはばらつきが生じ、10個の演算コア11a全体の演算時間は最遅の演算コア11aであるコアNo.=5の演算時間14.5分に律速されてしまう。全ての演算コア11aにおける演算処理が終了しないと、次世代のシミュレーションを開始できないためである。
【0042】
図4Bに示すハッチング部分は、NO.=5の演算コア11aによって律速された結果、演算コア11aが遊休状態となっている期間の総量を示している。演算コア11aのリソースを有効に活用できているとは言い難い状態である。
【0043】
図5は、本実施形態1に係る並列演算処理の第1の例を示した概念図である。図5A及び図5Bは、CAEモデル142及びサロゲートモデル143を併用し、10個のシミュレーション対象モデルに係る応答値の演算を10個の演算コア11aを用いて並列計算した場合における各演算コア11aの処理動作状態を示している。図5中、SMで示したバー部分は、サロゲートモデル143(Surrogate Model)を用いた第2演算手法による演算処理を示している。図5Bは、図4Bと同様、各演算コア11aにおける遊休時間を示している。
【0044】
図5Aに示す例では、演算中止処理の閾値が7に設定されている。最初に応答値の演算処理が終了したNO.=1の演算コア11aにおける演算時間は5.0分である。演算部11は、例えば5.0分に乗数1.4を乗算した7を閾値として設定している。乗数の値は、既定の値であってもよいし、情報処理装置1のユーザが操作部13を用いて情報処理装置1に設定するものであってもよい。
【0045】
コアNo.=2,3,5,7,9,10の演算コア11aは、演算時間=7で強制終了の処理が施され、続いてサロゲートモデル143を用いた応答値の演算処理が実行される。図5A及び図5Bでは、強制終了の処理、サロゲートモデル143での演算処理の存在をわかりやすくするために、それぞれ有意な時間(0.5分)を設けて示しているが、一般にはこれら処理に要する時間はFEA計算時間に比べて極めて少ない。また、CAEモデル142及びサロゲートモデル143を用いた演算処理を実行のためのシステム処理に要するおおよその時間として明示的に0.5分の時間を設けている。
【0046】
図4A及び図5Aを比較して分かるように、全ての演算コア11aで全てのジョブが終了するまでに要する演算処理時間は14.5分から8.5分に短縮できている。また、図4B及び図5Bを比較して分かるように、各演算コア11aの遊休時間が大幅に削減されている。
【0047】
図6は、従来手法に係る並列演算処理と、本実施形態1に係る並列演算処理の第2の例を示した概念図である。図6Aは、20個のFEA計算を10個の演算コア11aを用いて並列計算した場合における各演算コア11aの処理動作状態を示している。図6Aは、図4Bと同様、各演算コア11aにおける遊休時間を示している。図6Bは、CAEモデル142及びサロゲートモデル143を併用し、20個のシミュレーション対象モデルに係る応答値の演算を10個の演算コア11aを用いて並列計算した場合における各演算コア11aの処理動作状態を示している。終了処理の閾値は7である。
【0048】
図6Aに示す様に、シミュレーション対象モデルのパラメータが異なれば、FEA計算時間(第1演算手法を用いた応答値の演算処理に要する演算処理時間)にはばらつきが生じ、10個の演算コア11a全体の演算時間は最遅の演算コア11aであるコアNo.=5の演算時間24分に律速されている。
【0049】
一方、図6A及び図6Bを比較して分かるように、本実施形態1によれば、全ての演算コア11aで全てのジョブが終了するまでに要する演算処理時間は24分から16分に短縮できている。また、各演算コア11aの遊休時間が大幅に削減されている。
【0050】
以上の通り、実施形態1に係る情報処理方法、情報処理装置1及びコンピュータプログラム141によれば、複数の演算コア11aを用いてシミュレーション対象モデルの特性又は挙動に関する応答値を効率的に演算することができる。演算部11は、応答値を算出する複数のジョブのうち、一部のジョブをFEA計算によって求め、他のジョブを、サロゲートモデル143を用いた演算処理により求めることができる。本実施形態1では閾値を用いて、各演算コア11aにおけるFEA計算を強制的に終了させ、サロゲートモデル143を用いた演算処理に切り替える構成であるため、総演算時間を閾値に応じた一定時間内に収めることができる。
【0051】
なお、本実施形態1においては遺伝的アルゴリズムを用いた最適化計算に本発明を適用した例を説明したが、本発明は複数個のFEA計算を複数個の演算コア11aを用いて並列計算する任意の処理に適用することができる。FEA計算の数と、演算コア11aの数の関係は特に限定されるものではない。
【0052】
更に、本実施形態1では、シミュレーション対象としてモータ、CAEモデル142を用いたシミュレーション方法として磁界解析を説明したが、シミュレーション対象及びシミュレーション内容についても特に限定されるものではない。例えば、電磁弁の形状の最適化、プラスチックマグネットにおける磁気回路の最適化に本実施形態に係る情報処理方法を適用することができる。また、シミュレーション方法は、熱解析、電界解析、電磁界解析、流体解析等であってもよい。
【0053】
また、第1演算手法の一例としてCAEモデル142を用いたFEA計算、第2演算手法の一例として機械学習モデルであるサロゲートモデル143を用いた計算を例示したが、第1演算手法及び第2演算手法の内容は特に限定されるものではない。第2演算手法の演算精度が第1演算手法に比べて低く、第2演算手法の演算速度が第1演算手法に比べて早いものであれば、第1及び第2演算手法の内容は特に限定されるものではない。例えば、第1演算手法及び第2演算手法としては、CAEモデル142、SVR(サポートベクター回帰)、決定木、線形回帰、ニューラルネットワーク等の任意のモデルを利用することができる。
【0054】
(実施形態2)
実施形態2に係る情報処理装置1は、ジョブの中止処理の方法が実施形態1と異なる。情報処理装置1のその他の構成及び処理は、実施形態1に係る情報処理装置1と同様であるため、同様の箇所には同じ符号を付し、詳細な説明を省略する。
【0055】
図7は、実施形態2に係る応答値計算の処理手順を示すフローチャートである。演算部11は、複数の演算コア11aそれぞれの演算処理の状態を監視する処理を開始する(ステップS231)。そして、演算部11は、異なるパラメータが設定された複数のシミュレーション対象モデルそれぞれの応答値を第1演算手法にて算出するジョブ(演算処理)を各別に複数の演算コア11aに割り当てて実行を開始する(ステップS232)。
【0056】
次いで、演算部11は、応答値の演算処理を終えた演算コア11aがあるか否かを判定する(ステップS233)。応答値の演算処理を終えた演算コア11aが無いと判定した場合(ステップS233:NO)、演算部11は、ステップS233の処理を繰り返し実行し、複数の演算コア11aそれぞれの演算処理状態の監視を継続する。
【0057】
応答値の演算処理を終えた演算コア11aがあると判定した場合(ステップS233:YES)、演算部11は、他の演算コア11aにおけるジョブを強制終了する(ステップS234)。そして、演算部11は、応答値を第2演算手法にて算出するジョブを、第1演算手法の演算処理を強制終了した演算コア11aに割り当てて実行する(ステップS235)。
【0058】
ステップS235の処理を終えた場合、演算部11は、全てのジョブを終了したか否かを判定する(ステップS236)。終了していないジョブがあると判定した場合(ステップS236:NO)、演算部11は、第1演算手法にて応答値を算出する残りのジョブを、複数の演算コア11aに割り当てて実行を開始し(ステップS237)、処理をステップS233へ戻す。
【0059】
全てのジョブを終了したと判定した場合(ステップS236:YES)、演算部11は処理を終える。
【0060】
以上の通り、実施形態2に係る情報処理方法、情報処理装置1及びコンピュータプログラム141によれば、複数の演算コア11aを用いてシミュレーション対象モデルの特性又は挙動に関する応答値を最大限、高速に演算することができる。実施形態2によれば、少なくとも一つは、FEA計算による応答値を得ることができ、残りの応答値をサロゲートモデル143によって得ることができる。
なお、本実施形態2では、演算コア11aに割り当てられた一つのジョブが終了した場合、他の演算コア11aによる演算処理を強制終了する例を説明したが、複数の演算コア11a(一部の演算コア11a)に割り当てられた複数のジョブのうち、所定数のジョブが終了した場合に、他の演算コア11aの演算処理を強制終了するようにしてもよい。
【0061】
(実施形態3)
実施形態3に係る情報処理装置1は、ジョブの中止処理の方法が実施形態1と異なる。情報処理装置1のその他の構成及び処理は、実施形態1に係る情報処理装置1と同様であるため、同様の箇所には同じ符号を付し、詳細な説明を省略する。
【0062】
図8は、実施形態3に係る応答値計算の処理手順を示すフローチャートである。演算部11は、複数の演算コア11aそれぞれの演算処理の状態、各演算コア11aに割り当てられたジョブの演算時間を監視する処理を開始する(ステップS331)。そして、演算部11は、異なるパラメータが設定された複数のシミュレーション対象モデルそれぞれの応答値を第1演算手法にて算出するジョブ(演算処理)を各別に複数の演算コア11aに割り当てて実行を開始する(ステップS332)。
【0063】
次いで、演算部11は、応答値の演算処理を終えた演算コア11aがあるか否かを判定する(ステップS333)。応答値の演算処理を終えた演算コア11aが無いと判定した場合(ステップS333:NO)、演算部11は、ステップS333の処理を繰り返し実行し、複数の演算コア11aそれぞれの演算処理状態の監視を継続する。
【0064】
応答値の演算処理を終えた演算コア11aがあると判定した場合(ステップS333:YES)、演算部11は、第1演算手法による未処理のジョブ(演算処理)を、ステップS333で演算処理を終えたと判定された演算コア11aに割り当てて、応答値の演算処理の実行を開始する(ステップS334)。
【0065】
次いで、演算部11は、ステップS334で割り当てたジョブが最終ジョブであるか否かを判定する(ステップS335)。最終ジョブは、演算コア11aに割り当てるべき複数のジョブ(N個)を全て割り当て終えたときの最後のジョブ(N番目に割り当てたジョブ)である。
最終ジョブでないと判定した場合(ステップS335:NO)、演算部11は処理をステップS333へ戻す。ステップS331~ステップS335の処理によって、未処理のジョブが空いた演算コア11aに順次割り当てられ、第1演算手法によって処理されていく。
【0066】
最終ジョブであると判定した場合(ステップS335:YES)、演算部11は、演算コア11aでの演算処理が開始されてから最終ジョブを割り当てた時点までの時間に基づいて、他の演算コア11aにおけるジョブを強制終了すべきかどうかを判定するための閾値を決定する(ステップS336)。
【0067】
上記閾値は、例えば下記式で表される。
Tkill=C×Tmin
但し、
Tkill:強制終了に係る閾値
Tmin:演算処理を開始してから最終ジョブを割り当てた時点までの時間
C:乗数(C≧1)
【0068】
乗数Cの値は、既定の値であってもよいし、情報処理装置1のユーザが操作部13を用いて情報処理装置1に設定するものであってもよい。情報処理装置1は、操作部13にて乗数Cの値を受け付けて記憶部14に記憶する。
【0069】
次いで、演算部11は、第1演算手法を用いて応答値を算出するジョブの演算時間が閾値超であるか否かを判定する(ステップS337)。ただし、ここでの演算時間は、最初のジョブに係るシステムの処理を開始してからの演算時間である。例えば、演算コア11aは、1つ目のジョブを既に終了し、2つ目のジョブを実行している場合、1つ目のジョブのシステム処理を開始してからの経過時間を演算時間として監視している。
【0070】
演算時間が閾値超の演算コア11aがあると判定した場合(ステップS337:YES)、演算時間が閾値を超えているジョブを強制的に終了する(ステップS338)。そして、演算部11は、応答値を第2演算手法にて算出するジョブを、第1演算手法の演算処理を強制終了した演算コア11aに割り当てて実行する(ステップS339)。
【0071】
ステップS339の処理を終えた場合、又は演算時間が閾値超の演算コア11aがないと判定した場合(ステップS337:NO)、演算部11は、全てのジョブを終了したか否かを判定する(ステップS340)。終了していないジョブがあると判定した場合(ステップS340:NO)、演算部11は、処理をステップS337へ戻す。全てのジョブを終了したと判定した場合(ステップS340:YES)、演算部11は処理を終える。
【0072】
図9は、従来手法に係る並列演算処理の様子を示した概念図である。ここでは簡単のため、図9に示す様に、20個のFEA計算を6個の演算コア11aを用いて並列計算する場合を考える。
【0073】
図9A及び図9Bは、20個のFEA計算を6個の演算コア11aを用いて並列計算した場合における各演算コア11aの処理動作状態を示している。図9中、丸括弧で表した数字、(1)~(20)は、20個のジョブを表している。図10Bに示すハッチング部分は、演算コア11aが遊休状態となっている期間の総量を示している。
【0074】
図9Aに示す例では、FEA計算はその番号の若いジョブから、演算コア11aが空いた順に投入される。6個の演算コア11aに20個のFEA計算のジョブが投入されて全ての計算が終わった際には、図9B中、ハッチングで示す部分に遊休コアが発生したことになる。この場合の20個全ての演算処理が終了するまでに要する時間は37分である。
【0075】
図10は、本実施形態3に係る並列演算処理の様子を示した概念図である。図10Aは、閾値の設定方法を示しており、図10Bは、CAEモデル142及びサロゲートモデル143を併用し、20個のシミュレーション対象モデルに係る応答値の演算を6個の演算コア11aを用いて並列計算した場合における各演算コア11aの処理動作状態を示している。
【0076】
図10Aに示すように、最後のジョブであるジョブ番号20の演算処理がコアNo.4に割り当てられたのは、最初のジョブが各演算コア11aに割り当てられてから27.5分の時点である。乗数Cが1.1である場合、閾値は、27.5×1.1=30.25分となる。
【0077】
この場合、図10Bに示すように、コアNo.=3,4,5の演算コア11aで実行されているジョブ番号18,19,20の演算処理は、演算時間=30.25で強制終了の処理が施され、続いてサロゲートモデル143を用いた応答値の演算処理が実行される。
【0078】
図10A及び図10Bを比較して分かるように、全ての演算コア11aで全てのジョブが終了するまでに要する演算処理時間は37分から31.25分に短縮できており、各演算コア11aの遊休時間が大幅に削減されている。
【0079】
以上の通り、実施形態3に係る情報処理方法、情報処理装置1及びコンピュータプログラム141によれば、複数の演算コア11aを用いてシミュレーション対象モデルの特性又は挙動に関する応答値を、可能な限りFEA計算により求め、終盤に残存している演算処理を強制終了することにより、全体の演算処理時間を短縮することができる。
【0080】
本開示の課題を解決するための手段を付記する。
(付記1)
複数のパラメータによって規定されるシミュレーション対象モデルの特性又は挙動に関する応答値を演算する情報処理方法であって、
異なるパラメータが設定された複数のシミュレーション対象モデルそれぞれの応答値を第1演算手法にて算出する演算処理を各別に複数の演算コアに割り当てて実行し、
前記複数の演算コアで継続している演算処理の時間に基づいて、各演算コアにおける該演算処理を終了するか否かを判定し、
終了すると判定した場合、演算処理を終了し、
演算処理を終了したシミュレーション対象モデルの応答値を第2演算手法にて算出する演算処理を、第1演算手法の演算処理を終了した前記演算コアに割り当てて実行する
情報処理方法。
(付記2)
第1演算手法は、第2演算手法に比べて応答値の演算精度が高いが応答値の演算速度が低く、第1演算手法を用いた応答値の演算処理に要する演算処理時間はシミュレーション対象モデルのパラメータによって異なる
付記1に記載の情報処理方法。
(付記3)
第1演算手法は、CAE解析にて応答値を演算する手法であり、
第2演算手法は、機械学習モデルを用いて応答値を演算する手法である
付記1又は付記2に記載の情報処理方法。
(付記4)
前記複数の演算コアのうち、一部の前記演算コアにおける第1演算手法を用いた応答値の演算処理に要した時間に基づいて、他の前記演算コアにおける演算処理を終了するか否かを判定するための閾値を決定し、
前記複数の演算コアで継続している演算処理の時間と閾値とを比較することによって、各演算コアにおける該演算処理を終了するか否かを判定する
付記1から付記3のいずれか1つに記載の情報処理方法。
(付記5)
前記複数の演算コアのうち、一部の前記演算コアにおける第1演算手法を用いた応答値の演算処理が完了した場合、他の前記演算コアにおける演算処理を終了する
付記1から付記4のいずれか1つに記載の情報処理方法。
【符号の説明】
【0081】
1 :情報処理装置
10 :記録媒体
11 :演算部
11a :演算コア
12 :表示部
13 :操作部
14 :記憶部
141 :コンピュータプログラム
142 :CAEモデル
143 :サロゲートモデル
【要約】
【課題】複数の演算コアを用いてシミュレーション対象モデルの特性又は挙動に関する応答値を効率的に演算することができる情報処理方法を提供する。
【解決手段】複数のパラメータによって規定されるシミュレーション対象モデルの特性又は挙動に関する応答値を演算する情報処理方法であって、異なるパラメータが設定された複数のシミュレーション対象モデルそれぞれの応答値を第1演算手法にて算出する演算処理を各別に複数の演算コアに割り当てて実行し、前記複数の演算コアで継続している演算処理の時間に基づいて、各演算コアにおける該演算処理を終了するか否かを判定し、終了すると判定した場合、演算処理を終了し、演算処理を終了したシミュレーション対象モデルの応答値を第2演算手法にて算出する演算処理を、第1演算手法の演算処理を終了した前記演算コアに割り当てて実行する。
【選択図】図6
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10