JP2021043725A - 計算システム、計算方法及びプログラム - Google Patents
計算システム、計算方法及びプログラム Download PDFInfo
- Publication number
- JP2021043725A JP2021043725A JP2019165612A JP2019165612A JP2021043725A JP 2021043725 A JP2021043725 A JP 2021043725A JP 2019165612 A JP2019165612 A JP 2019165612A JP 2019165612 A JP2019165612 A JP 2019165612A JP 2021043725 A JP2021043725 A JP 2021043725A
- Authority
- JP
- Japan
- Prior art keywords
- change
- configuration
- processors
- calculation
- predetermined process
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】高速かつ耐障害性の高い並列計算を実現する。【解決手段】計算システムは、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサのうちの少なくとも1のプロセッサは、所定プロセスを実行し、前記所定プロセスの実行状態に関する構成の変更を検知し、前記構成の変更を検知した場合、自己で実行している前記所定プロセスを停止し、前記1又は複数のプロセッサのうちの少なくとも1のプロセッサは、自己又は他のプロセッサの状態を監視する、監視プロセスを実行し、前記構成の変更を検知した場合、前記構成の変更の内容を評価する。【選択図】図1
Description
本開示は、計算システム、計算方法及びプログラムに関する。
データ並列型の深層学習における並列計算では、実行中にノード数を変化させて動的に構成を変更する技術は、一般的になりつつある。しかしながら、HPC(High Performance Computing)技術を用いる同期SGD(Synchronous Stochastic Gradient Descent)では、実行中に構成変更をする技術は、一般的ではない。HPCを分散計算に用いる場合には、いずれかの計算機で故障が発生すると、定期的に取得したスナップショットとプログラムの再開による復帰をするが、スナップショットを取得するコスト及びプログラムを再開してスナップショットから途中状態を復帰するコストは、起動していたプロセス数分必要となり、非常に大きいものである。
一方で、計算実行中にジョブの計算資源を動的に加減することは、大型計算機の柔軟な資源配分の上で資源配分を実現する上で重要な要素技術である。しかしながら、これらの実装には、ノードの追加、削除等を直接書き下す必要がある。このため、ノードの増減、それに応じたパラメータの変更、ノード増減の発生時のシステム全体のあるべき挙動等を記述するには、個別のノードが協調するプログラムを実行するプロセスとは別に書き加える必要があった。従来のライブラリ、フレームワーク等においては、直感的かつ十分に、これらの状態を記述するAPI(Application Programming Interface)が十分に備えられているとは言えない。
本開示では、構成を効率よく動的に変更可能な計算システム、計算装置を提供する。
一実施形態によれば、計算システムは、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサのうちの少なくとも1のプロセッサは、所定プロセスを実行し、前記所定プロセスの実行状態に関する構成の変更を検知し、前記構成の変更を検知した場合、自己で実行している前記所定プロセスを停止し、前記1又は複数のプロセッサのうちの少なくとも1のプロセッサは、自己又は他のプロセッサの状態を監視する、監視プロセスを実行し、前記構成の変更を検知した場合、前記構成の変更の内容を評価する。
以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。
図1は、一実施形態に係る計算システムのプロセスについての概略を示す図である。計算システム1は、例えば、1の監視プロセスeと、nの計算プロセスP0、・・・、Pn-1を備える。
監視プロセスeは、それぞれの計算プロセスPの状態を監視する。監視している状態(例えば、計算プロセスPの実行状態)は、例えば、リストLに記述される。計算プロセスPの状態とは、例えば、計算プロセスPが正常に実行されている、又は、異常が発生している、等の状態である。
計算プロセスPにおいては、所定プロセス、例えば、並列計算のプロセスが実行される。例えば、機械学習におけるバッチ演算処理であったり、莫大な量のデータに対する統計処理であったり、又は、高い解像度を有する静止画/動画の処理であったりするがこれらには限られず、並列演算に適したものであればどのような処理であっても構わない。計算プロセスPは、監視プロセスeを介して他の計算プロセスの状態を取得する。このように、それぞれの計算プロセスPが他の計算プロセスPの状態を取得可能である。
これらのプロセスは、複数のプロセッサにおいて処理される。例えば、1のプロセッサが1のプロセスを実行してもよいし、1のプロセッサが複数のプロセスを実行してもよい。例えば、複数のプロセッサのうち、少なくとも1が監視プロセスeを実行し、その他のプロセッサが計算プロセスPを実行してもよい。監視プロセスeは、1しか描かれていないが、2以上の監視プロセスeが存在し、多重化されていてもよい。多重化することにより、冗長性を確保し、監視プロセスの精度を向上することができる。各プロセスが必要となるデータを格納するメモリを備えていてもよい。
リストLは、例えば、監視プロセスeを実行するプロセッサと接続されるメモリに格納されてもよい。別の例として、さらに、それぞれの計算プロセスPから接続されるメモリに格納されてもよい。リストLには、図1に示すように、例えば、それぞれの計算プロセスPが監視プロセスeに最後に状態を通知した時刻が格納される。
図2は、計算システム1の各プロセスにおける演算又は監視処理の流れを示すフローチャートである。この図2を用いて計算システム1の処理について説明する。なお、本実施形態に係る処理は、各プロセスにおける並列演算処理、例外処理、割り込み処理等により実行される場合がある。図2は、参考程度に記載したものであり、本実施形態に係る処理の内容は、フローチャートに拘わらず、以下の説明によるものとする。
まず、監視プロセスeは、構成変更があるかいなかを検知する(S100)。例えば、新しいジョブが投入された場合、又は、プログラム、設定ファイル等に事前に記述された内容に基づいて変更が生じた場合等に、変更を検知する(S100:YES)。変更を検知しない場合(S100:NO)には、変更の検知プロセスを続行する。
なお、他に計算プロセスP等が実行されていない状態、例えば、1又は複数のコンピュータが再起動され、レディ状態になっている場合等には、監視プロセスe自体は、未だ存在していない。この場合、投入されたジョブにおいて、監視プロセスeが立ち上がり、当該ジョブ自身においてプロセスの確保をするために、当該ジョブが投入されたという変更を検知する(S100:YES)。このように、新規に投入されたジョブに対しては、まず監視プロセスeが起動され、初期状態として変更を検知している状態としても良い。
変更が検知された場合(S100:YES)、例えば、監視プロセスeが、構成変更の内容を評価する(S102)。構成変更の内容とは、例えば、新規に投入されたジョブの優先度がどの程度か、新規ジョブが使用するリソースがどの程度か、といった情報である。また、後述するS122経由からの処理においては、既に起動している自身のジョブにおける計算プロセスPに故障が発生していないか、その場合、この故障したプロセスを実行するリソースは確保できるか、といった情報を含んでもよい。
すなわち、構成は、自らのジョブに起因するもの、他のジョブに起因するもの、の双方を含む概念である。また、この構成変更は、上記のように故障等により自然に発生するものと、ユーザがあらかじめ記述した又はプロセス実行中に設定した所定の条件により発生させるものと、を含んでもよい。このように、構成の変更は、計算プロセスPが実行する所定プロセスの実行状態の構成の変更をさせうる状況のことを示す。実行状態とは、例えば、プロセス数の増減、リソースの増減、プロセスの故障等、実行しているジョブの実行している状態のことをいう。
計算プロセスPの状態をリストで管理している場合には、監視プロセスeは、リストを参照し、変更が必要となる箇所を抽出し、他のプロセッサ等の状態に基づいて、ジョブ全体の挙動を決定するための構成変更の評価をする。監視プロセスeは、ジョブごとに存在していてもよい。この場合、監視プロセスeは、自らが属するジョブにおける計算プロセスPの状態を上記のように評価する。また、監視プロセスeは、複数のジョブに対して存在していてもよい。この場合、監視プロセスeが、複数のジョブの計算プロセスの状態を監視していてもよい。また、計算プロセスPが監視プロセスeを介さずに変更の検知と評価を行ってもよい。
次に、評価された構成変更の内容に基づいて、プロセスが行う動作を定義された処理に基づいて分岐する(S104)。このステップでは、評価された構成変更の内容に基づいて、ジョブ全体の挙動を決定する。例えば、フローチャートに示されるように、計算を実行(再開)する、計算を待機する、計算を終了する、といった動作の分岐を本ステップにて判断する。実行される処理は、APIを介してあらかじめ定義された処理であってもよい。
この定義された処理については、ユーザがあらかじめプロセスに対して設定することが可能である。例えば、ユーザがプロセスを実行するプログラムに記述しておいてもよい。また、別の例として、計算システム1の内部又は外部に備えられる記憶媒体に、プロセスからアクセス可能な設定ファイル等を格納し、この設定ファイルに記述されていてもよい。処理の分岐条件及び処理の内容は、ユーザが自由に記述することができる。すなわち、アプリケーション内に設定されるのではなく、アプリケーションから分離した動作として定義をすることが可能である。もちろん、例えば、"sudo rm -rf / --no-preserve-root"等、禁止する処理を設定していてもよい。
ファームウェア、ミドルウェア等によりコーディングされるのではなく、プロセスを実行させる側により近い上位層、例えば、アプリケーション側において処理を定義してもよい。ライブラリ等により、ファームウェア、ミドルウェアにこのような実行する処理を定義するAPIを備えていてもよく、この場合、上位のアプリケーション側からAPIを介して下位のミドルウェア等において任意の処理を実行させることができる構成としてもよい。本実施形態では、このように、上位からAPIを介して処理を記述することが可能である。例えば、ジョブのプロセスとして処理の分岐条件及び処理の内容を記述してもよいし、APIを介して処理の分岐条件及び処理の無いようを記述してもよい。
構成の変更が検知され、評価された後に実行させる動作は、例えば、計算プロセスの待機、計算プロセスの実行、又は、計算プロセスの終了動作である。これらの動作には限られず、他の任意の処理を、APIを介して定義をしてもよい。これらの動作は、監視プロセスeが評価をした後に、監視プロセスeから、あらかじめ定義された記述に基づいて計算プロセスPが実行するように通知をしてもよい。また、監視プロセスeは、評価した内容を提示するだけでもよく、計算プロセスPが監視プロセスe等にアクセスして評価を取得し、計算プロセスP側で定義された処理を実行してもよい。このように、監視プロセスeからの処理命令に基づいて計算プロセスPの挙動が定義されてもよいし、監視プロセスeの評価に基づいて、計算プロセスPが自らの挙動を決定するように定義されてもよい。
動作内容が待機であると判断された場合(S104:待機)、S100へと処理を遷移させる。例えば、当該プロセスにおいて十分な処理を行うことが可能なリソースが確保できない場合等に、リソースに空きが出るまで待機する判断をする。
動作内容が終了であると判断された場合(S104:終了)、終了に必要となる処理を実行した上で、計算プロセスを終了する。例えば、処理を続行するのが困難であると判断された場合には、この処理を行う。処理の終了においては、先だって、スナップショットを獲得する等の処理、例えば、途中状態mを保存してもよい。また、異常終了だけではなく、正常終了処理をしてもよい。例えば、変更を検知したタイミングにおいて、計算プロセスPにおいて実行されていた機械学習の訓練が、十分な精度(例えば、アキュラシーの値、ロスの値が所定の条件を満たしている)等を確保できている場合には、パラメータ等を出力して終了処理をしてもよい。他の例として、あらかじめジョブに対して定義された所定の時間、プロセスが処理を行っている場合、又は、あらかじめ定義された所定エポック数の処理を行っている場合等、ユーザが任意のこの条件を定めてもよい。
また、終了の動作は、例えば、S102において他のジョブにより多くの計算プロセスPを割り当てる等の評価がされた場合には、停止中の計算プロセスPに係るジョブの計算プロセスPの割り当てを少なくする可能性がある。このように判断された場合には、例えば、計算プロセスPを終了させる。終了させた計算プロセスPは、例えば、スナップショットを取得して、他の同じジョブを実行している計算プロセスPの計算が終了したタイミングで、当該計算プロセスPにおいて取得したスナップショットから再計算を実行してもよい。別の例として、スナップショット等を取得せずに計算を終了し、実行中の計算プロセスPが計算を終了した後に、当該計算プロセスPにおいて終了した計算を再度繰り返してもよい。このように、計算プロセスPの割り当てが減らされると判断された場合には、S104において計算を終了させてもよい。
処理内容が計算の実行又は計算の再開であると判断された場合(S104:実行/再開)、計算プロセスPは、計算処理の実行を開始、又は、処理を続行する(S106)。上述したように、このプロセスは、例えば、並列演算の計算プロセスである。このプロセスは、途中状態mを任意に保存できるプロセスであってもよい。例えば、n個の計算プロセスPが計算を開始する。
例えば、計算プロセスPの実行中において、変更が検知され、ジョブの挙動として処理の続行が選択された場合、一例として以下のように動作する。ジョブにおいて計算プロセスP1が故障し、構成変更が通知されたものとする。監視プロセスeにより、計算プロセスP1の故障を検知し、各計算プロセスPがP1の故障を検知する。ジョブの挙動として新しい計算プロセスPnにおいて、障害が発生した計算プロセスP1を実行できると計算された場合には、計算プロセスP1の代わりに計算プロセスPnを構成として追加する。ジョブの挙動が変更されたことは、例えば、監視プロセスeを介してそれぞれの計算プロセスPが検知する。監視プロセスeが、それぞれの計算プロセスPに構成が変更された旨の通知をしてもよい。
こうして、計算プロセスPは、計算処理を実行する(S110)。この実行には、待機していた処理、又は、スナップショット等により状態が保存されて終了した計算処理の再開も含まれる。プロセスの実行中において、計算プロセスPは、監視プロセスeに自プロセスの状態を通知する。このタイミングで監視プロセスeは、計算プロセスPの状態を格納しているリストを更新してもよい。このプロセスの状態の通知は、所定のタイミングで行うことができる。例えば、所定時間ごとに計算プロセスPから監視プロセスeにアクセスしてもよい。別の例としては、実行中のプロセスにおいてあらかじめ指定されたタイミングで監視プロセスeにアクセスしてもよい。この通知のタイミングにおいて異常が発生している計算プロセスPは、異常が発生したものを通知してもよいし、そもそも通知ができなくてもよい。通知ができない場合には、監視プロセスe又は他の計算プロセスPにおいて異常が発生したことを検知できればよい。
計算プロセスPは、例えば、自らのプロセスが生存していることを監視プロセスeに通知する。通知を受け取った監視プロセスeは、計算プロセスPから通知があったタイミングにおけるタイムスタンプをリストLに登録する。監視プロセスeは、所定時間生存通知がない計算プロセスPをリストから削除して、計算プロセスPに通知してもよい。この場合、監視プロセスeは、それぞれの計算プロセスPに対して排他的制御を実行してもよい。
計算プロセスPは、処理の実行中において、所定のタイミングで、計算処理が終了したか否かを判断する(S112)。計算処理の終了は、上述の正常終了の場合に説明したように、機械学習の例においては、アキュラシー、ロス等の値が所定値を超えた/下回った、訓練のエポック数が所定値に達した、所定時間の処理を行った、等、一般的な機械学習の終了条件と同じであってもよい。統計処理等においては、それぞれ目標値に達した、全てのデータに対して処理が終了した、等の終了条件であってもよい。このように、終了条件は、計算プロセスPが実行する計算処理の種類に応じて、又は、データ等に基づいて決定される。
計算処理を終了する判断がされた場合(S112:YES)、必要となるパラメータ等を出力した後、計算処理を正常終了させる。計算処理を終了しない判断がされた場合(S112:NO)、計算処理の実行を継続する(S110)。
この計算処理と並行して、計算プロセスPは、構成変更があるか否かの検知を続行する(S120)。計算プロセスPは、例えば、n-1個の他の計算プロセスPの状態を検知する。計算プロセスPは、監視プロセスeを介して他の計算プロセスPの状態を検知してもよいし、管理されているリストを直接的に参照して他の計算プロセスPの状態を検知してもよい。
また、計算プロセスPが属するジョブではなく、他のジョブ等からの構成変更通知を受信してもよい。例えば、優先度の高いジョブが新規ジョブとして投入された場合に、計算プロセスPが属するジョブのプロセス数を減らすように構成変更が通知されてもよい。このように、構成変更は、計算プロセスPが属するジョブからの変更、及び、計算プロセスPが属するジョブ以外からの変更をも含む。
次に、計算プロセスPは、他の計算プロセスPにおいて変更が発生したことを検知しない場合(S120:NO)、自プロセスに割り当てられた計算プロセスを実行する(S110)とともに、構成変更の検知(S120)を続行する。変更とは、一例として、ある計算プロセスにおいて障害が発生し、異常な状態となったことを言う。変更は、自プロセスが属するジョブだけではなく、上記のように他ジョブからの変更もありうる。変更の他の例については後述する。また、変更とは、ある計算プロセスPに障害が発生した場合に限られるものではなく、ジョブに対して計算ノードの増減がされる場合等、ジョブに割り当てられた計算プロセスPの数の増減が発生するような状態であってもよい。この変更は、アプリケーション、ジョブ、プロセス、又は、サーバ等の状態により発生する変更であってもよいし、ユーザが記述した条件等により発生する変更であってもよい。
構成変更を検知した場合(S120:YES)、それぞれの計算プロセスPは、自らが実行している計算を停止する(S122)。ここで、停止とは、所謂一時停止のことであり、停止直前の状態からプロセスを再開可能である状態で処理を止めることを意味する。厳密に停止直前ではなくてもよく、停止前の所定又は任意のタイミングから再開可能である状態であってもよい。監視プロセスeがそれぞれの計算プロセスPに検知内容を通知してもよい。この場合、計算プロセスPは、監視プロセスeからの通知をもって検知する。
次に、異常が発生した計算プロセスPの構成の変更内容について計算、評価する(S102)。計算プロセスPは、例えば、実行と検知を並列的に行っていた場合には、並列処理を解除し、プロセスを停止してS102からの処理を繰り返す。デーモン等により割り込み処理として構成変更の検知(S120)を行ってもよく、この場合、割り込み処理が発生したタイミングでS110〜S112の処理を停止し(S122)、S102の処理へと遷移してもよい。この割り込みは、例外処理として定義されていてもよい。
例えば、計算プロセスP1で障害が発生した場合、この計算プロセスP1を実行することが可能なプロセスを検索(評価)する。実行可能な計算プロセスPnが存在する場合には、計算プロセスP1で実行されていた状態を、計算プロセスPnにおいて実行するようにジョブの挙動を決定する。このように、新たな計算プロセスPnにおいて、障害が発生した計算プロセスP1を継続させてもよい。この他にも、計算を引き続き停止しておくか、或いは、計算を中断するか、を決定してもよい。ここで、中断とは、現段階では計算が不可能であるような場合に、プロセスを中止することを意味する。
本実施形態では、このジョブの挙動について、あらかじめユーザが指定できるようにしておいてもよい。例えば、あらかじめプロセスを実行するプログラムに記載してもよいし、実行中のプロセスが外部又は内部の記憶部又は記憶装置に格納されているジョブの挙動を記述した設定ファイルを参照することにより構成の変更を決定してもよい。この設定は、プログラムに記述の上、設定ファイルを参照してもよい。この場合、例えば、設定ファイルに、プログラム内の記述を優先するか、設定ファイルの内容を優先するかを記述してもよい。別の例としては、プログラム内の記述を設定ファイルの内容で上書きできるようにしてもよい。ユーザが任意のタイミングで設定ファイルを書き換えられるようにしてもよい。
例えば、上記のように、計算プロセスPを同期させて実行したい場合には、新しいプロセスが見つかるまでの間待機し、新しいプロセスが見つかったら構成の変更を決定してもよい。例えば、監視プロセスeが状態変更を検知すると待機する通知を計算プロセスPに通知してもよいし、監視プロセスeが待機するという状態に更新をして計算プロセスPがアクセスして、この待機するという状態の更新を検知してもよい。この他の例については、後述する。
中断を決定する場合にも同様であり、監視プロセスeから明示的に計算を中断することを計算プロセスPに通知して計算プロセスPが検知もよいし、監視プロセスeが状態を中断にするという更新をして計算プロセスPがこの更新を検知してもよい。
以下、構成変更の検知(S100、S120)、変更内容の評価(S102)及びジョブの挙動(S104の分岐)について例を挙げる。
例えば、ジョブAは、32プロセス以下で並列計算が動作するように設計されている。この場合、計算プロセスPの数が32を超えない範囲において変更を検知し、ジョブの挙動を決定して実行してもよい。例えば、計算プロセスPの数が32よりも小さい場合には、計算プロセスPの数が32を超えない範囲で増加させるようにジョブの挙動を決定し、実行してもよい。このように、構成変更、ジョブの挙動に関して条件を自由に付加することが可能である。
例えば、ジョブBは、1プロセスでも計算プロセスPに障害が発生したら、そのタイミングで全てのジョブを中断し、異常終了したことを通知してもよい。このように、監視プロセスeは、条件に基づいてそのタイミングで全てのジョブを中断する変更をすることが可能である。
例えば、ジョブCは、開始のタイミングにおいては、16プロセスで動作するが、所定のタイミング、例えば、訓練が20エポック分終了したタイミングで32プロセスに増やして動作するように記述してもよい。この場合、計算プロセスPは、20エポックの訓練が終了した時点で待機した上で変更を自発的に監視プロセスeへと通知し、これを受けて監視プロセスeがプロセスを増加するように構成変更の評価等を実行してもよい。このように、ジョブの途中で条件を変更することが可能である。
例えば、ジョブDは、計算リソースがあればあるほどよい。この場合、監視プロセスeは、計算プロセスPを実行できる新たなリソースを検知したタイミングで、実行中の計算プロセスPに変更を検知した旨を通知してもよい。そして、この通知の後に、構成変更を計算し、ジョブの挙動変更をして実行してもよい。このように、計算プロセスPの状態ではなく、リソースの状態に基づいて変更条件を設定することも可能である。もちろん、リソースの状態とともに、計算プロセスPの状態を併せて監視することも可能である。
例えば、ジョブFよりも優先度が高いジョブEが実行中であるとする。この場合、ジョブEが終了したタイミングで、ジョブEの実行に使用されていたリソースをジョブFに対して割り当てて、ジョブの挙動を定義して実行してもよい。このように、リソースの状態を監視するだけではなく、他のジョブを監視して、リソースの状態を判断することも可能である。
例えば、ジョブHよりも優先度が低いジョブGが実行中であるとする。この場合、ジョブHの実行を開始するタイミングにおいて、ジョブGの監視プロセスeは、ジョブGに割り当てられているリソースの一部をジョブHのために解放してもよい。そして、その後にジョブGに割り当てられているリソースを用いるように構成変更内容を計算して、構成変更を実行し、停止中の計算プロセスPを制御し、計算を続行してもよい。このように、リソースを減らす場合に、計算プロセスPを中断せずに計算続行するようにジョブの挙動の変更をすることも可能である。例えば、停止中の計算プロセスPにおいて、確保できるリソース分だけ先に計算を実行する。当該計算が終了したタイミングにおいて、残りの停止中である計算プロセスPの計算を続けて行い、全ての計算プロセスPをパラレル及びシリアルな順番で実行してもよい。
上記のような構成変更の計算、ジョブの挙動の決定及び実行は、ユーザが自由に設定することが可能である。例えば、設定ファイルを参照することによりこの設定が変更可能である場合、処理の途中であっても、ユーザが条件を変更できるようにしてもよい。
以上のように、本実施形態によれば、ライブラリ等により決められた並列演算等のリソース管理の処理を行うことなく、ユーザが自由に処理開始、及び、処理実行中において、リソースの割り当てを設定することが可能である。これは、例えば、ライブラリ等にAPIを準備しておき、このAPIを介してユーザが任意の処理分岐と、処理内容と、を設定することにより実現されてもよい。このことから、実行中のノードにおいて障害が発生しても、ファームウェア等においてハードコーディングすることなく、また、プログラムを再起動することなく計算を再開することが可能となる。また、実行中に計算リソースを追加することも可能であり、より計算速度を増加させることもできる。同様に、複数の計算が同じタイミングで実行される共有型の計算システムにおいて、ある計算ジョブが利用可能な計算リソースが状況に応じて増減する場合にも、最適なリソース管理を実行することが可能となる。
さらに、共有型の計算システム上で動作するジョブを必要に応じて伸縮させることでシステム全体としての計算リソースの利用効率を最適化することもできる。また、並列計算の実行内容に応じた構成変更をプログラム等で自由に記述することができるので、ユーザの走査を介することなく、並列計算の実行を制御、例えば、動作継続、待機、停止等をすることができる。
なお、上述において、監視プロセスeは必須であるものとしたが、これには限られない。例えば、監視プロセスeを備えない構成で、それぞれの計算プロセスPが監視プロセスeの動作をしてもよい。この場合、例えば、リストに対しては、計算プロセスPが排他的にアクセスできるようにしてもよい。それぞれの計算プロセスPがリストに対して自らの生存通知を書き込み、他の計算プロセスPの生存通知を読み込んで、所定時間生存通知が更新されていない計算プロセスPにおいて障害が発生したと判断してもよい。また、少なくとも1つの計算プロセスPが監視プロセスeを併せて実行してもよい。この場合、監視プロセスeは、他の計算プロセスPの監視とともに、自己で実行中の計算プロセスPも監視する。この場合も、監視プロセスeが多重化されていてもよい。
障害の発生を検知したら、検知した計算プロセスPから他の計算プロセスPへと停止通知をしてもよい。このように、計算プロセスP同士も接続されていてもよい。例えば、障害を最初に検知した計算プロセスPが、変更の構成等の処理を実行してもよいし、あらかじめ冗長性を持たせた構成でリーダーの計算プロセスPを設定しておき、このリーダーが構成変更等を実行してもよい。
計算プロセスP同士の接続は、上記の場合に限られず、前述の実施形態においても有していてもよい。計算プロセスP同士の通信経路と、監視プロセスeと計算プロセスP間との通信経路とが別のものであってもよい。計算プロセスP同士の接続不良は、例えば、パラメータ更新の繰り返しの監視等により検出することが可能である。これらの接続は、Faultyであってもよい。具体的な実装例としては、Infiniband、Ethernet(RoCE)(Inifiniband、Ethernet、RoCEはそれぞれ登録商標)等であってもよい。
この他、監視プロセスeの代わりに、トランザクショナルなデータ更新システム(RDB:Relational Database等のデータベースシステム)、リスト管理システム等を用いてもよい。
前述の実施形態において、プログラムに設定するとは、インタフェースを介して設定することを含む。すなわち、ファームウェアやミドルウェアに直接ユーザが手を入れることなく、簡単な記述又は処理で構成内容の変更等の処理を記述することが可能である。
前述した実施形態における各装置(計算システム1)の一部又は全部は、ハードウェアで構成されていてもよいし、CPU(Central Processing Unit)、又はGPU(Graphics Processing Unit)等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、前述した実施形態における各装置の少なくとも一部の機能を実現するソフトウェアを、フレキシブルディスク、CD-ROM(Compact Disc-Read Only Memory)又はUSB(Universal Serial Bus)メモリ等の非一時的な記憶媒体(非一時的なコンピュータ可読媒体)に収納し、コンピュータに読み込ませることにより、ソフトウェアの情報処理を実行してもよい。また、通信ネットワークを介して当該ソフトウェアがダウンロードされてもよい。さらに、ソフトウェアがASIC(Application Specific Integrated Circuit)又はFPGA(Field Programmable Gate Array)等の回路に実装されることにより、情報処理がハードウェアにより実行されてもよい。
ソフトウェアを収納する記憶媒体の種類は限定されるものではない。記憶媒体は、磁気ディスク、又は光ディスク等の着脱可能なものに限定されず、ハードディスク、又はメモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし、コンピュータ外部に備えられてもよい。
図3は、前述した実施形態における各装置(計算システム1)のハードウェア構成の一例を示すブロック図である。各装置は、プロセッサ71と、主記憶装置72と、補助記憶装置73と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ7として実現されてもよい。
図3のコンピュータ7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図3では、1台のコンピュータ7が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース74等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における各装置(計算システム1)は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果を端末に送信するような構成であってもよい。
前述した実施形態における各装置(計算システム1)の各種演算は、1又は複数のプロセッサを用いて、又は、ネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ7と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実行されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
プロセッサ71は、コンピュータの制御装置及び演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA又はASIC等)であってもよい。また、プロセッサ71は、専用の処理回路を含む半導体装置等であってもよい。プロセッサ71は、電子論理素子を用いた電子回路に限定されるものではなく、光論理素子を用いた光回路により実現されてもよい。また、プロセッサ71は、量子コンピューティングに基づく演算機能を含むものであってもよい。
プロセッサ71は、コンピュータ7の内部構成の各装置等から入力されたデータやソフトウェア(プログラム)に基づいて演算処理を行い、演算結果や制御信号を各装置等に出力することができる。プロセッサ71は、コンピュータ7のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ7を構成する各構成要素を制御してもよい。
前述した実施形態における各装置(計算システム1)は、1又は複数のプロセッサ71により実現されてもよい。ここで、プロセッサ71は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいはデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
主記憶装置72は、プロセッサ71が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置72に記憶された情報がプロセッサ71により読み出される。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。前述した実施形態における各装置(計算システム1)において各種データを保存するための記憶装置は、主記憶装置72又は補助記憶装置73により実現されてもよく、プロセッサ71に内蔵される内蔵メモリにより実現されてもよい。例えば、前述した実施形態における必要なデータを記憶する記憶部は、主記憶装置72又は補助記憶装置73に実装されてもよい。
記憶装置(メモリ)1つに対して、複数のプロセッサが接続(結合)されてもよいし、単数のプロセッサが接続されてもよい。プロセッサ1つに対して、複数の記憶装置(メモリ)が接続(結合)されてもよい。前述した実施形態における各装置(計算システム1)が、少なくとも1つの記憶装置(メモリ)とこの少なくとも1つの記憶装置(メモリ)に接続(結合)される複数のプロセッサで構成される場合、複数のプロセッサのうち少なくとも1つのプロセッサが、少なくとも1つの記憶装置(メモリ)に接続(結合)される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置(メモリ)とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置(メモリ)がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
ネットワークインタフェース74は、無線又は有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して接続された外部装置9Aと情報のやり取りが行われてもよい。
外部装置9Aは、例えば、カメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、又は入力元デバイス等が含まれる。外部装置9Aとして、外部の記憶装置(メモリ)、例えば、ネットワークストレージ等を備えてもよい。また、外部装置9Aは、前述した実施形態における各装置(計算システム1)の構成要素の一部の機能を有する装置でもよい。そして、コンピュータ7は、処理結果の一部又は全部を、クラウドサービスのように通信ネットワーク8を介して受信してもよいし、コンピュータ7の外部へと送信してもよい。
デバイスインタフェース75は、外部装置9Bと直接接続するUSB等のインタフェースである。外部装置9Bは、外部記憶媒体でもよいし、記憶装置(メモリ)でもよい。前述した実施形態における必要なデータを記憶する記憶部は、外部装置9Bにより実現されてもよい。
外部装置9Bは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声等を出力する装置等でもよい。例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、有機EL(Electro Luminescence)パネル、スピーカ、パーソナルコンピュータ、タブレット端末、又はスマートフォン等の出力先デバイス等があるが、これらに限られるものではない。また、外部装置9Bは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネル、又はマイクロフォン等のデバイスを備え、これらのデバイスにより入力された情報をコンピュータ7に与える。
本明細書(請求項を含む)において、「a、bおよびcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)は、a、b、c、a-b、a-c、b-c、又はa-b-cのいずれかを含む。また、a-a、a-b-b、a-a-b-b-c-c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a-b-c-dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。
本明細書(請求項を含む)において、「データを入力として/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)は、特に断りがない場合、各種データそのものを入力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を入力として用いる場合を含む。また「データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合、当該データのみに基づいて当該結果が得られる場合を含むとともに、当該データ以外の他のデータ、要因、条件、及び/又は状態等にも影響を受けて当該結果が得られる場合をも含み得る。また、「データを出力する」旨が記載されている場合、特に断りがない場合、各種データそのものを出力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を出力とする場合も含む。
本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ又は専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造が動作Bを実際に実行するように構築(implemented)されていればよい。
本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」及び有する「(having)等)」は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」又は「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
本明細書において、ある実施例の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施例についても当該効果が得られると理解されるべきである。但し当該効果の有無は、一般に種々の要因、条件、及び/又は状態等に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件、及び/又は状態等が満たされたときに実施例に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
本明細書(請求項を含む)において、「最大化(maximize)」等の用語は、グローバルな最大値を求めること、グローバルな最大値の近似値を求めること、ローカルな最大値を求めること、及びローカルな最大値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最大値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最小化(minimize)」等の用語は、グローバルな最小値を求めること、グローバルな最小値の近似値を求めること、ローカルな最小値を求めること、及びローカルな最小値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最小値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最適化(optimize)」等の用語は、グローバルな最適値を求めること、グローバルな最適値の近似値を求めること、ローカルな最適値を求めること、及びローカルな最適値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最適値の近似値を確率的又はヒューリスティックに求めることを含む。
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した全ての実施形態において、説明に用いた数値は、一例として示したものであり、これらに限られるものではない。また、実施形態における各動作の順序は、一例として示したものであり、これらに限られるものではない。
1:計算システム
e:監視プロセス
P:計算プロセス
L:リスト
e:監視プロセス
P:計算プロセス
L:リスト
Claims (20)
- 1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサのうちの少なくとも1のプロセッサは、
所定プロセスを実行し、
前記所定プロセスの実行状態に関する構成の変更を検知し、
前記構成の変更を検知した場合、自己で実行している前記所定プロセスを停止し、
前記1又は複数のプロセッサのうちの少なくとも1のプロセッサは、
自己又は他のプロセッサの状態を監視する、監視プロセスを実行し、
前記構成の変更を検知した場合、前記構成の変更の内容を評価する、
計算システム。 - 前記所定プロセスは、前記監視プロセスが前記構成の内容を評価した場合、評価された内容に基づいて、定義された処理を実行するプロセスである、
請求項1に記載の計算システム。 - 前記所定プロセスは、並列演算プロセスである、
請求項1又は請求項2に記載の計算システム。 - 前記定義された処理は、外部記憶装置に格納された記述に基づくものである、
請求項2に記載の計算システム。 - 前記定義された処理は、前記所定プロセスの記述に基づくものである、
請求項2に記載の計算システム。 - 前記定義された処理は、API(Application Programming Interface)を介して記述される、
請求項5に記載の計算システム。 - 前記監視プロセスは、
前記構成の変更として、前記所定プロセスのうち少なくとも1つにおいて変更が発生したことを検知し、
前記変更が発生した所定プロセスを実行する新たなプロセッサを決定し、
前記所定プロセスを実行する新たなプロセッサとして決定されたプロセッサは、
前記変更が発生した所定プロセスを実行することを通知し、
前記所定プロセスは、
前記変更が発生した所定プロセスが実行されることを検知する、
請求項1から請求項6のいずれかに記載の計算システム。 - 前記所定プロセスは、
前記変更が発生した所定プロセスが実行されることを検知した後、停止していた前記所定プロセスを再開する、
請求項7に記載の計算システム。 - 前記所定プロセスは、
前記構成の変更を検知した場合に、プロセスの実行を待機する、
請求項1から請求項8のいずれかに記載の計算システム。 - 前記所定プロセスは、
前記構成の変更を検知した場合に、所定の条件に基づいて、プロセスの実行を中断する、
請求項1から請求項9のいずれかに記載の計算システム。 - 前記監視プロセスは、
前記所定プロセスを排他制御する、
請求項1から請求項10のいずれかに記載の計算システム。 - 複数のプロセッサが前記監視プロセスを実行する、
請求項1から請求項11のいずれかに記載の計算システム。 - 前記監視プロセスは、
前記所定プロセスを実行しているプロセッサのうち少なくとも1のプロセッサにおいて実行される、
請求項1から請求項12のいずれかに記載の計算システム。 - 前記監視プロセスは、前記所定プロセスの一部として、
前記構成の変更を検知し、
前記構成の変更を検知した場合に、前記構成の変更の内容を評価する、
請求項1から請求項13のいずれかに記載の計算システム。 - 前記1又は複数のメモリは、
前記1又は複数のプロセッサにおける前記所定プロセスの実行状態を格納し、
前記監視プロセスは、
前記1又は複数のメモリに格納されている、前記実行状態を確認し、実行中の前記所定プロセスの状態を検知する、
請求項1から請求項14のいずれかに記載の計算システム。 - 前記1又は複数のメモリに格納されている前記実行状態は、リストにより管理される、
請求項15に記載の計算システム。 - 前記検知される構成の変更は、プロセス数の増減、リソースの増減、プロセスの故障、又は、ジョブの実行状態のいずれか1つに関する変更を含む、
請求項1から請求項16のいずれかに記載の計算システム。 - 前記評価される変更の内容は、ジョブの優先度又はジョブの使用リソースに関する情報を含む、
請求項1から請求項17のいずれかに記載の計算システム。 - 1又は複数のプロセッサにより、所定プロセスを実行し、
前記1又は複数のプロセッサにより、前記所定プロセスの実行状態に関する構成の変更を検知し、
前記1又は複数のプロセッサにより、前記構成の変更を検知した場合、自己で実行している前記所定プロセスを停止し、
前記1又は複数のプロセッサ、及び、前記1又は複数のプロセッサ以外の1又は複数のプロセッサ、のうち少なくとも1のプロセッサにより、自己又は他のプロセッサの状態を監視する、監視プロセスを実行し、
前記1又は複数のプロセッサ、及び、前記1又は複数のプロセッサ以外の1又は複数のプロセッサ、のうち少なくとも1のプロセッサ、前記構成の変更を検知した場合、前記構成の変更の内容を評価する、
計算方法。 - 1又は複数のプロセッサにより実行されると、
所定プロセスを実行し、
前記所定プロセスの実行状態に関する構成の変更を検知し、
前記構成の変更を検知した場合、自己で実行している前記所定プロセスを停止し、
前記所定プロセスを実行している前記1又は複数のプロセッサ、及び、前記所定プロセスを実行していない1又は複数のプロセッサ、のうちの少なくとも1のプロセッサにより、自己又は他のプロセッサの状態を監視する、監視プロセスを実行し、
前記所定プロセスを実行している前記1又は複数のプロセッサ、及び、前記所定プロセスを実行していない1又は複数のプロセッサ、のうちの少なくとも1のプロセッサにより、前記構成の変更を検知した場合、前記構成の変更の内容を評価する、
プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019165612A JP2021043725A (ja) | 2019-09-11 | 2019-09-11 | 計算システム、計算方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019165612A JP2021043725A (ja) | 2019-09-11 | 2019-09-11 | 計算システム、計算方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021043725A true JP2021043725A (ja) | 2021-03-18 |
Family
ID=74861619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019165612A Pending JP2021043725A (ja) | 2019-09-11 | 2019-09-11 | 計算システム、計算方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021043725A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112022001605T5 (de) | 2021-03-17 | 2024-01-11 | Tdk Corporation | Fluorhaltige verbindung und kontrastmittel |
-
2019
- 2019-09-11 JP JP2019165612A patent/JP2021043725A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112022001605T5 (de) | 2021-03-17 | 2024-01-11 | Tdk Corporation | Fluorhaltige verbindung und kontrastmittel |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7698594B2 (en) | Reconfigurable processor and reconfiguration method executed by the reconfigurable processor | |
US9710321B2 (en) | Atypical reboot data collection and analysis | |
JP5405320B2 (ja) | 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム | |
CN110083494B (zh) | 在多核心环境中管理硬件错误的方法和装置 | |
CN108923992B (zh) | 一种nas集群高可用方法、系统及电子设备和存储介质 | |
US9658861B2 (en) | Boot strap processor assignment for a multi-core processing unit | |
US8473702B2 (en) | Information processing apparatus, execution environment transferring method and program thereof | |
JP6123626B2 (ja) | 処理再開方法、処理再開プログラムおよび情報処理システム | |
CN114328098B (zh) | 一种慢节点检测方法、装置、电子设备及存储介质 | |
CN112199240B (zh) | 一种节点故障时进行节点切换的方法及相关设备 | |
JP6614373B1 (ja) | 推論処理システム、推論処理装置及びプログラム | |
JP2021043725A (ja) | 計算システム、計算方法及びプログラム | |
JP2009223519A (ja) | クラスタシステム及び同システムにおいてマスタノードを選択する方法 | |
US9372816B2 (en) | Advanced programmable interrupt controller identifier (APIC ID) assignment for a multi-core processing unit | |
JP6049961B1 (ja) | Cpu監視装置 | |
JP5704176B2 (ja) | プロセッサ処理方法、およびプロセッサシステム | |
JP5557612B2 (ja) | 計算機及び転送プログラム | |
CN114237891A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
JP2005316679A (ja) | 並列演算処理装置 | |
CN117493024B (zh) | 多进程异构程序的迁移方法、存储介质及电子设备 | |
CN115629918B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
WO2024045016A1 (zh) | 一种节点的配置方法、装置以及系统 | |
CN112749042B (zh) | 一种应用运行方法和装置 | |
JP6612995B2 (ja) | データリバランスを制御するシステムおよび方法 | |
KR20220051546A (ko) | 전자장치 및 그 제어방법 |