JP2023029002A - グリッドコンピューティングシステム、管理方法及び管理システム - Google Patents
グリッドコンピューティングシステム、管理方法及び管理システム Download PDFInfo
- Publication number
- JP2023029002A JP2023029002A JP2021135045A JP2021135045A JP2023029002A JP 2023029002 A JP2023029002 A JP 2023029002A JP 2021135045 A JP2021135045 A JP 2021135045A JP 2021135045 A JP2021135045 A JP 2021135045A JP 2023029002 A JP2023029002 A JP 2023029002A
- Authority
- JP
- Japan
- Prior art keywords
- job
- data
- processing
- vehicle
- information
- 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
- 238000007726 management method Methods 0.000 title claims description 126
- 238000012545 processing Methods 0.000 claims abstract description 150
- 238000012546 transfer Methods 0.000 claims abstract description 62
- 238000004364 calculation method Methods 0.000 claims description 82
- 238000004891 communication Methods 0.000 claims description 65
- 238000000034 method Methods 0.000 claims description 50
- 238000004458 analytical method Methods 0.000 claims description 14
- 230000005856 abnormality Effects 0.000 description 25
- 230000005540 biological transmission Effects 0.000 description 24
- 230000006837 decompression Effects 0.000 description 22
- 230000015654 memory Effects 0.000 description 21
- 238000007906 compression Methods 0.000 description 17
- 230000006835 compression Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000013144 data compression Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Landscapes
- Traffic Control Systems (AREA)
Abstract
【課題】データ転送時間がシステムボトルネックとなることを回避する。【解決手段】グリッドコンピューティングシステム1は、処理対象のジョブを複数のユニットに分割し、ユニット毎にマスタ装置から車両にジョブデータを転送する第1転送処理、車両10での各ユニットの演算処理、及び車両からマスタ装置に演算処理後の演算結果データを転送する第2転送処理のそれぞれを異なるステージとするパイプラインで処理する。【選択図】図6
Description
ここに開示された技術は、グリッドコンピューティングシステム並びにグリッドコンピューティングの管理方法及び管理システムに関する技術分野に属する。
特許文献1には、 計算ノードとして機能する車載端末で構成される分散処理システムにおいて、各車両が基地局に自端末の資源情報を送信するとともに、自車両を計算ノードとして登録し、基地局がそれに基づいてジョブを割り当てる技術が開示されている。
ところで、移動体(例えば、車両)に搭載される演算資源を活用したグリッドコンピューティングシステム(以下、「移動体グリッドシステム」ともいう)では、データセンターを活用した一般的なグリッドコンピューティングシステム(以下、「従来システム」という)と比較して、グリッドを構成するコンピュータ間の通信性能が低いという問題がある。具体的に、従来システムでは、専用ハードワイヤ通信であり、相互間の物理的距離も近い。これに対し、移動体グリッドシステムでは、車両同士が専用通信線で接続されているわけでもなく、かつ、互いの物理的距離が離れている。
さらに、従来システムでは、一般的に24時間稼働されており、演算負荷が低いときに、データのダウンロードやアップロードなどのバックグラウンド処理がしやすい。これに対して、グリッドコンピューティングシステムでは、本来の使用目的(車両であれば走行)での使用との兼ね合いでグリッドコンピューティングとしての稼働時間が限られている。
ここに開示された技術は斯かる点に鑑みてなされたものであり、その目的とするところは、グリッドコンピューティングシステムにおいて、データ転送時間がシステムボトルネックとなることを回避することで高効率な計算を可能にすることにある。
前記課題を解決するために、本開示の第1態様では、複数の移動体のそれぞれに搭載される演算資源を活用したグリッドコンピューティングシステムを対象として、クライアント端末から依頼されたジョブを複数のユニットに分割し、グリッドコンピューティングのマスタ装置から前記移動体に前記ユニット毎にデータを転送する第1転送処理、当該移動体における当該各ユニットの演算処理、及び当該移動体から前記マスタ装置に当該演算処理後のジョブ結果を転送する第2転送処理のそれぞれを異なるステージとするパイプラインで処理する、という構成にした。
上記第1態様によると、マスタ装置から移動体にデータを転送する第1転送処理期間中及び移動体からマスタ装置にデータを転送する第2転送処理期間中においても、並列して演算処理を実行することができる。これにより、一連のジョブ完了までの時間に対して転送処理時間が与える影響を軽減することができる。
また、本開示の第2態様として、複数の移動体のそれぞれに搭載される演算資源を活用したグリッドコンピューティングを管理する管理方法を対象として、処理対象となるジョブについて、当該ジョブを複数のユニットに分割した場合における前記ユニットのジョブデータ容量、前記ユニットの演算における必要リソース及び前記ユニットの演算処理後のジョブ結果容量を推定するジョブ分析工程と、それぞれの前記移動体について、当該移動体と前記グリッドコンピューティングのマスタ装置との間の通信帯域情報及び当該移動体の演算リソース情報を取得する移動体情報取得工程と、前記ジョブデータ容量と前記通信帯域情報に基づくジョブ転送時間、前記必要リソースと前記演算リソース情報に基づく演算時間、及び、前記ジョブ結果容量と前記通信帯域情報に基づく結果転送時間を推定し、当該推定された前記ジョブ転送時間、前記演算時間及び前記結果転送時間の相互間の時間差が所定時間内に収まるように移動体とジョブとのマッチングをするマッチング工程と、前記マスタ装置から前記マッチング工程で選定された移動体に対してマッチングされたジョブのユニット毎のジョブデータを転送する第1転送処理、当該移動体における当該各ユニットの演算処理、及び当該移動体から前記マスタ装置に当該演算処理後の演算結果データを転送する第2転送処理のそれぞれを異なるステージとするパイプラインで処理するパイプライン処理工程とを含む。
上記第2態様によると、第1態様と同様に、パイプライン処理工程を実行することで、一連のジョブ完了までの時間に対して転送処理時間が与える影響を軽減することができる。さらに、パイプライン処理工程に先立って、パイプライン処理の各ステージに関連するジョブ転送時間、演算時間及び結果転送時間の相互間の時間差が所定時間内に収まるようにジョブと移動体のマッチングを取るようにしている。これにより、パイプライン処理を実行する上でそれぞれのジョブに対して最適な移動体を割り当てることができる。
より具体的には、移動体グリッドシステムでは、それぞれの移動体に搭載されている演算資源のばらつきが大きいという問題がある。また、移動体ごとに通信環境が一定ではないので、通信帯域にもばらつきが生じるという問題がある。そこで、第2態様のような構成にすることで、それぞれのジョブ毎にそのジョブのパイプライン処理を実行する上で適した移動体を割り当てることができ、全体としての処理の効率化を促進することができる。
以上説明したように、ここに開示された技術によると、移動体グリッドシステムにおいて、データ転送時間がシステムボトルネックとなることを回避することができ、その結果、高効率な計算が可能となる。
実施形態について、図面を参照しながら詳細に説明する。図中同一または相当部分には同一の符号を付すものとし、繰り返しの説明を省略する場合がある。また、以下の実施形態では、本開示の内容に関連性の高い構成を中心に説明する。なお、以下の実施形態は、例示的なものであり、記載の有無や例示した数値等によって本開示の内容を限定する意図はまったくない。
<第1実施形態>
(グリッドコンピューティングシステム)
図1は、実施形態のグリッドコンピューティングシステム1(以下、単に「システム1」ともいう)の構成を例示する。
(グリッドコンピューティングシステム)
図1は、実施形態のグリッドコンピューティングシステム1(以下、単に「システム1」ともいう)の構成を例示する。
このシステム1は、複数の車両10と、複数のクライアント端末30と、管理サーバ50とを備える。これらの構成要素は、通信網6を経由して互いに通信可能である。複数の車両10の各々には、演算装置102が搭載される。管理サーバ50は、マスタ装置の一例である。車両は、移動体の一例である。
〔グリッドコンピューティング〕
図2に示すように、実施形態のシステム1では、複数の演算装置102によりグリッドコンピューティング(以下、単に「グリッドG」ともいう)が構成され、複数の演算装置102のうち利用可能な演算装置102にアプリケーションジョブ(以下、単に「ジョブ」ともいう)のジョブデータD1を処理させるグリッドコンピューティング処理が行われる。
図2に示すように、実施形態のシステム1では、複数の演算装置102によりグリッドコンピューティング(以下、単に「グリッドG」ともいう)が構成され、複数の演算装置102のうち利用可能な演算装置102にアプリケーションジョブ(以下、単に「ジョブ」ともいう)のジョブデータD1を処理させるグリッドコンピューティング処理が行われる。
なお、車両10が走行している場合、車両10の走行制御のために演算装置102の計算能力が必要となり、演算装置102が稼働状態となる。一方、例えば、車両10が停車して車両10の電源がオフ状態になると、車両の走行制御に対する演算装置102の計算能力が実質的に不要となる。そこで、車両10の非稼働中(例えば、停車中)に上記のグリッドコンピューティング処理が実行される。
〔車両〕
車両10には、電池(図示省略)が搭載される。電池の電力は、演算装置102などの車載機器に供給される。このような車両10の例としては、電気自動車、プラグインハイブリッド自動車などが挙げられる。
車両10には、電池(図示省略)が搭載される。電池の電力は、演算装置102などの車載機器に供給される。このような車両10の例としては、電気自動車、プラグインハイブリッド自動車などが挙げられる。
図3に示すように、車両10は、通信部101と、演算装置(プロセッサ)102と、記憶部103とを備える。
-通信部-
通信部101は、情報やデータを送受信する。通信部101により受信された情報やデータは、演算装置102に送られる。
通信部101は、情報やデータを送受信する。通信部101により受信された情報やデータは、演算装置102に送られる。
-演算装置-
演算装置102は、車両10の各部を制御する。この例では、演算装置102は、センサ(図示省略)により得られた各種の情報に応じて各アクチュエータ(図示省略)を制御する。なお、演算装置102として、車両10の制御に用いられる演算装置に加えて、グリッドコンピューティング専用、すなわち、車両10の制御に関わらない演算装置を搭載してもよい。
演算装置102は、車両10の各部を制御する。この例では、演算装置102は、センサ(図示省略)により得られた各種の情報に応じて各アクチュエータ(図示省略)を制御する。なお、演算装置102として、車両10の制御に用いられる演算装置に加えて、グリッドコンピューティング専用、すなわち、車両10の制御に関わらない演算装置を搭載してもよい。
演算装置102は、プロセッサ、メモリなどを有する。プロセッサの例としては、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)などが挙げられる。メモリは、プロセッサを動作させるためのプログラム、プロセッサの処理結果を示す情報やデータなどを記憶する。
図6右側には、車両10の機能モジュールの構成例を示す。図6の機能モジュールは、例えば、演算装置102に設けられる。
この例では、演算装置102は、解凍モジュール111と、演算モジュール113と、パイプライン管理モジュール115と、圧縮モジュール118と、バッファ用のメモリ112,117とを備える。
解凍モジュール111は、通信網6の通信路61を介して管理サーバ50の圧縮モジュール516から受信した圧縮データを解凍する。圧縮データには、後述するジョブデータD1が含まれる。解凍モジュール111で解凍されたジョブデータD1は、メモリ112に一旦格納され、演算モジュール113に入力される。
演算モジュール113は、各種の演算処理を実行する。演算モジュール113は、解凍モジュール111で解凍されたジョブデータD1を受信し、順次処理を実行する。演算モジュール113は、ジョブデータD1のジョブが終了すると、演算結果データD2をメモリ117に出力する。また、ジョブデータD1のジョブが完了したことを示す完了フラグをパイプライン管理モジュール115に送信する。また、演算モジュール113は、ジョブデータD1のジョブが異常終了した場合、パイプライン管理モジュール115に異常通知を送信する。
パイプライン管理モジュール115は、ジョブデータD1のパイプライン処理を管理する機能を有する。パイプライン管理モジュール115は、通信路61を介して管理サーバ50から受信されたデータから取得された同期信号を受信し、その同期信号に基づいて動作する。同期信号は、(1)通信路61にジョブデータD1と並行して同期信号自体を送信するようにしてもよいし、(2)クロックリカバリ回路(図示省略)を設けて、通信路61から受信されたジョブデータD1から同期信号(クロック)を分離するようにしてもよい。
パイプライン管理モジュール115は、メモリ117に格納された演算結果を圧縮モジュールに出力するタイミングを規定するデータ制御信号をメモリ117に出力する。また、パイプライン管理モジュール115は、同期信号を出力する。同期信号は、通信網6の通信路62を介して出力される。同期信号は、圧縮モジュール118から通信路62に出力される演算結果データD2に重畳されてもよいし、演算結果データD2と並行して出力されるようにしてもよい。また、パイプライン管理モジュール115は、演算モジュール113から管理サーバ50への通知対象となる異常通知を受信した場合、その異常通知が通信路62を介して管理サーバ50に出力されるようにする。なお、パイプライン管理モジュール115の具体的な動作については、後ほど説明する。
メモリ117は、データ制御信号に基づいて、演算モジュール113から受信した演算結果データD2を順次圧縮モジュール118に出力する。メモリ117は、例えば、格納されている演算結果データD2のサイズが、所定のパケットサイズよりも大きい場合、演算結果データD2を所定のパケットサイズに分割し、その分割されたパケットをデータ制御信号で規定されたタイミングごとに順次出力する。
圧縮モジュール118は、メモリ117から受信した演算結果データD2を圧縮し、通信路62を介して管理サーバ50に出力する。
なお、本開示では、CPUやGPUのように、グリッドコンピューティングの計算・処理に利用可能な資源を「演算資源」と称する。演算資源は、車両10に搭載されたCPU及びGPUの一部または全部を含む。
また、例えば、演算資源としての利用を許可される時間帯と、演算資源としての利用を制限する時間帯とが分けられていてもよい。すなわち、単一のCPUが、ある時間帯では演算資源としてカウントされ、他の時間帯では演算資源としてカウントされないとしてもよい。GPUについても同様である。
また、CPUが単一または複数のコアで実現されている場合において、その複数のコアの一部が演算資源としてカウントされ、それ以外のコアは演算資源としてカウントされないとしてもよい。GPUについても同様である。
-記憶部-
記憶部103は、各種の情報やデータを記憶する。記憶部103の具体的な構成は、特に限定されない。例えば、チップに内蔵されたメモリで実現されてもよいし、HDD(Hard disk drive)、SSD(Solid State Drive)で実現されてもよいし、DVDやBDのような光ディスクで実現されてもよい。
記憶部103は、各種の情報やデータを記憶する。記憶部103の具体的な構成は、特に限定されない。例えば、チップに内蔵されたメモリで実現されてもよいし、HDD(Hard disk drive)、SSD(Solid State Drive)で実現されてもよいし、DVDやBDのような光ディスクで実現されてもよい。
この例では、記憶部103は、車両情報D10を記憶する。車両情報D10には、車両基本情報D11と、車両状態情報D13と、稼働情報D15が含まれる。
〈車両基本情報〉
車両基本情報D11は、車両識別情報、リソース情報、並びに、車両に搭載される圧縮モジュール性能情報及び解凍モジュール性能情報を含む。
車両基本情報D11は、車両識別情報、リソース情報、並びに、車両に搭載される圧縮モジュール性能情報及び解凍モジュール性能情報を含む。
車両識別情報は、VINのように車両を識別するための情報や、車両10の所有者を識別するユーザ識別情報を含む。
リソース情報は、演算資源(CPUやGPUなど)に関する情報である。リソース情報は、例えば、演算資源ごとに付与された演算資源ID、各演算資源の性能を示す性能情報を含む。演算資源の性能には、演算資源の計算能力(具体的には最大計算能力)を示す計算能力、演算資源におけるCPUとGPUの比率などが含まれる。演算資源の計算能力は、例えば、それぞれの演算資源が単位時間当たりに計算することができるデータ量である。
圧縮モジュール性能情報は、圧縮モジュールの性能に関する情報である。解凍モジュール性能情報は、解凍モジュールの性能に関する情報である。
〈車両状態情報〉
車両状態情報D13は、車両10の状態を示す情報であり、例えば、車両位置情報、車両通信情報、車両電源情報等を含む。
車両状態情報D13は、車両10の状態を示す情報であり、例えば、車両位置情報、車両通信情報、車両電源情報等を含む。
車両位置情報は、車両10の位置(緯度および経度)を示す。例えば、車両位置情報は、GPS(Global Positioning System)により取得可能である。
車両通信情報は、車両10と通信網6との通信状態を示す情報、車両10と管理サーバ50との通信帯域の情報を含む。車両通信情報は、例えば、所定時間毎に更新される。
車両電源情報は、車両10の電源の状態を示す情報、車両電池残量情報、車両充電情報などを含む。例えば、車両電源情報は、イグニッション電源のオンオフ、アクセサリ電源のオンオフなどを示す。車両電池残量情報は、車両10に搭載された電池(図示省略)の残量を示す。車両充電情報は、充電設備(図示省略)において車両10が充電中であるか否かを示す。
〈稼働情報〉
稼働情報D15は、例えば、車両10の走行履歴を示す車両走行情報と、演算装置102の稼働履歴を示す稼働履歴情報と、演算装置102の稼働予定を示す稼働予定情報を含む。
稼働情報D15は、例えば、車両10の走行履歴を示す車両走行情報と、演算装置102の稼働履歴を示す稼働履歴情報と、演算装置102の稼働予定を示す稼働予定情報を含む。
車両走行情報は、例えば、車両10の位置と時刻とを関連付けて示す。なお、走行履歴情報に加えて、車両10の未来の走行予定を示す走行予定情報が含まれてもよい。
稼働履歴情報は、例えば、演算装置102の演算資源の利用率及び/またはジョブの処理量と、時刻とを関連付けて示す。稼働履歴情報は、通常稼働履歴と、グリッド稼働履歴とを含む。通常稼働履歴は、例えば、車両の走行やカーナビ、音楽再生等のサービスの提供等のように、ユーザーの利用のために演算装置102を稼働させた履歴を示す情報である。グリッド稼働履歴は、グリッドコンピューティング処理を実行するために演算装置102を稼働させた履歴を示す情報である。
稼働予定情報は、例えば、演算装置102の未来の利用状況を示す利用予定情報などを示す。
〔クライアント端末〕
クライアント端末30は、クライアントにより所有される。クライアントは、ジョブデータの計算を依頼する。このようなクライアントの例としては、企業、研究機関、教育機関などが挙げられる。
クライアント端末30は、クライアントにより所有される。クライアントは、ジョブデータの計算を依頼する。このようなクライアントの例としては、企業、研究機関、教育機関などが挙げられる。
図4に示すように、クライアント端末30は、通信部301と、記憶部303と、制御部302とを備える。
-通信部-
通信部301は、管理サーバと双方向通信が可能に接続され、相互間での情報やデータを送受信する。通信部301により受信された情報やデータは、制御部302に送られる。
通信部301は、管理サーバと双方向通信が可能に接続され、相互間での情報やデータを送受信する。通信部301により受信された情報やデータは、制御部302に送られる。
-制御部-
制御部302は、クライアント端末30の各部を制御する。制御部302は、プロセッサ、メモリなどを有する。メモリは、プロセッサを動作させるためのプログラム、プロセッサの処理結果を示す情報やデータなどを記憶する。
制御部302は、クライアント端末30の各部を制御する。制御部302は、プロセッサ、メモリなどを有する。メモリは、プロセッサを動作させるためのプログラム、プロセッサの処理結果を示す情報やデータなどを記憶する。
-記憶部-
記憶部303は、情報やデータを記憶する。この例では、記憶部303は、クライアント情報D31と、ジョブデータD1とを記憶する。
記憶部303は、情報やデータを記憶する。この例では、記憶部303は、クライアント情報D31と、ジョブデータD1とを記憶する。
〈クライアント情報〉
クライアント情報D31は、クライアントに関する情報である。クライアント情報D31は、クライアントに設定されたクライアントID、クライアントにより所有されるクライアント端末30に設定されたクライアント端末ID、担当者名、住所、電話番号などを含む。
クライアント情報D31は、クライアントに関する情報である。クライアント情報D31は、クライアントに設定されたクライアントID、クライアントにより所有されるクライアント端末30に設定されたクライアント端末ID、担当者名、住所、電話番号などを含む。
〈ジョブデータ〉
ジョブデータD1は、ジョブに対応するデータであり、ジョブの実施のために処理されるデータである。
ジョブデータD1は、ジョブに対応するデータであり、ジョブの実施のために処理されるデータである。
なお、ジョブデータD1は、計算タイプにより分類可能である。計算タイプの例としては、CPU系の計算タイプ、GPU系の計算タイプなどが挙げられる。CPU系の計算タイプのジョブデータD1では、シミュレーション計算など、条件分岐の多い複雑な計算が要求される傾向にある。GPU系の計算タイプのジョブデータD1では、画像処理や機械学習など、膨大な量の単純計算が要求される傾向にある。
なお、本開示のパイプライン処理は、計算タイプの種別にはよらずに適用できるが、特に、GPU系の計算タイプにおいて好適に適用できる場合がある。GPU系の計算タイプ(GPU系に適した処理)は、ジョブの並列化をしやすい傾向があるためである。
また、ジョブデータD1に付随してジョブに関するジョブ情報が記憶されてもよい。ジョブ情報は、例えば、ジョブの名称情報、ジョブの内容情報、ジョブデータの計算タイプ、処理条件、必要計算能力、ジョブの納期情報などを含む。
〔管理サーバ〕
管理サーバ50は、グリッドコンピューティングの運営を管理する。換言すると、システム1は、管理サーバ50を備える。管理サーバ50は、システム1を運営する事業者により所有される。
管理サーバ50は、グリッドコンピューティングの運営を管理する。換言すると、システム1は、管理サーバ50を備える。管理サーバ50は、システム1を運営する事業者により所有される。
図5に示すように、管理サーバ50は、通信部501と、制御部502と、記憶部503とを備える。
-通信部-
通信部501は、車両10やクライアント端末30と双方向通信が可能に接続され、相互間での情報やデータを送受信する。通信部501により受信された情報やデータは、制御部502に送られる。
通信部501は、車両10やクライアント端末30と双方向通信が可能に接続され、相互間での情報やデータを送受信する。通信部501により受信された情報やデータは、制御部502に送られる。
-制御部-
この例では、制御部502は、グリッドコンピューティングの運営や管理に関する一連の制御及び処理を実行する機能を有する。例えば、後述する図7及び図8のフロー図内での制御や処理を実行する。なお、以下の説明では、管理サーバ50を主体をとして記載した動作などについて、制御部502がその処理や制御に寄与することで実現される場合がある。
この例では、制御部502は、グリッドコンピューティングの運営や管理に関する一連の制御及び処理を実行する機能を有する。例えば、後述する図7及び図8のフロー図内での制御や処理を実行する。なお、以下の説明では、管理サーバ50を主体をとして記載した動作などについて、制御部502がその処理や制御に寄与することで実現される場合がある。
図6左側には、管理サーバ50の機能モジュールの構成例を示す。図6の機能モジュールは、例えば、制御部502に設けられる。
この例では、制御部502は、アプリケーション分析モジュール511と、パイプライン設定モジュール512と、演算ノード管理モジュール513と、演算管理モジュール514と、圧縮モジュール516と、パイプライン管理モジュール517と、解凍モジュール518と、バッファ用のメモリ515とを備える。
アプリケーション分析モジュール511は、車両10に振り分けるジョブを分析するジョブ分析工程を実行する。
具体的に、アプリケーション分析モジュール511では、クライアント端末30から受信したそれぞれのジョブデータD1について、(1)複数の同じようなサイズのジョブユニット(以下、単に「ユニット」という)に分割が可能かどうかを分析する、(2)ジョブデータD1全体及びユニット毎のジョブデータ容量を算出する、(3)ジョブデータD1全体及びユニット毎にジョブを実行するのに必要なリソース(以下「必要リソース」という)を算出する、(4)ジョブデータD1全体及びユニット毎のアプリケーションジョブの演算処理後の演算結果データD2の容量を予測する、といった処理を実行する。複数のユニットに分割が可能というのは、例えば、ジョブを細かく分割ができ、その細かく分割されたジョブを組み合わせることで、複数のユニット(それぞれが同じようなサイズ)が構築できるという形態であってもよい。なお、複数のユニットのサイズは、必ずしも同じようなサイズでなくてもよいが、ユニットのサイズが揃うことで、パイプライン処理の効果をより高めることができる。
演算ノード管理モジュール513は、それぞれの車両10についての通信帯域情報及びリソース情報を取得する移動体情報取得工程を実行する。
具体的に、演算ノード管理モジュール513では、グリッドGを構成する各車両について、(1)演算リソース情報を含む車両基本情報D11を取得する、(2)管理サーバ50との間の通信帯域情報を取得する、といった処理を実行する。通信帯域情報を取得方法は、特に限定されない。例えば、管理サーバ側で所定の時間毎に各車両との間の通信帯域を測定するようにしてもよいし、各車両から車両状態情報D13の車両通信情報を取得することで通信帯域情報を取得してもよい。
パイプライン設定モジュール512では、処理対象となるジョブデータD1と、それを実行する車両10とのマッチングをするマッチング工程を実行する。
具体的に、まず、パイプライン設定モジュール512は、アプリケーション分析モジュール511で算出されたユニット毎のジョブデータ容量、ユニット毎の演算結果データの予測容量を取得する。また、パイプライン設定モジュール512は、演算ノード管理モジュール513で取得された各車両の演算リソース情報及び通信帯域情報を取得する。
次に、パイプライン設定モジュール512では、処理対象となるジョブデータD1と選択された車両10に対して、(1)ユニットのジョブデータ容量とその車両10の通信帯域情報に基づいてユニットのジョブ転送時間を推定する、(2)ユニットの必要リソースとその車両10の演算リソース情報とに基づいてユニットの演算時間を推定する、(3)ユニットのジョブ結果容量とその車両10の通信帯域情報に基づいて結果転送時間を推定する、といった処理を実行する。
そして、パイプライン設定モジュール512は、処理対象となるジョブデータD1に対して、上記のジョブ転送時間、演算時間及び結果転送時間の相互間の時間差が所定時間内に収まるような車両10(以下、「対象車両10」という)をマッチングする。
その後、パイプライン設定モジュール512は、演算管理モジュール514にパイプライン設定情報を出力する。パイプライン設定情報は、ユニットに分割が可能なジョブデータD1についての各ステージ時間の情報や、そのジョブデータD1を処理する車両10とのマッチング結果の情報(以下、「マッチング情報」という)を演算管理モジュール514に出力する。
演算管理モジュール514は、上記のパイプライン設定情報に基づいて、ジョブの分割処理及びパイプライン設定処理を実行する。ジョブの分割処理では、記憶部503から処理対象となるジョブデータD1を取り出し、アプリケーション分析モジュール511の分析結果に基づいてジョブデータD1をユニットに分割する。パイプライン設定処理には、ジョブデータD1の演算のスケジューリングやパイプラインを構成する対象車両10へのジョブデータD1を用いたアプリケーションジョブの演算処理依頼が含まれる。演算処理依頼には、対象車両10とのデータ転送帯域の確保、対象車両10の演算リソースの予約処理が含まれる。
演算管理モジュール514は、ジョブの分割処理及びパイプライン設定処理が完了すると、処理対象のジョブデータD1を分割したユニットを順次メモリ515に出力する。そして、メモリ515へのユニットの出力処理が完了すると、完了フラグをパイプライン管理モジュール517に出力する。また、上記の各種処理が途中で異常終了した場合には、異常フラグをパイプライン管理モジュール517に出力する。
パイプライン管理モジュール517は、メモリ515に格納された演算結果を圧縮モジュールに出力するタイミングを規定するデータ制御信号をメモリ515に出力する。また、パイプライン管理モジュール517は、同期信号を出力する。同期信号は、通信路61を介して出力される。同期信号は、圧縮モジュール516から通信路61に出力されるジョブデータD1に重畳されてもよいし、通信路61においてジョブデータD1と並行するように出力されてもよい。
メモリ515は、パイプライン管理モジュール517から受信したデータ制御信号に基づいて、演算管理モジュール514から受信した各ユニットのジョブデータを順次圧縮モジュール516に出力する。
圧縮モジュール516は、メモリ515から受信した各ユニットのジョブデータを圧縮し、順次通信路61を介して対象車両10に出力する。
解凍モジュール518は、通信路62を介して対象車両10の圧縮モジュール118から受信した演算結果データD2の圧縮データを解凍する。解凍モジュール518で解凍された演算結果データD2は、演算管理モジュール514に出力される。演算管理モジュール514は、解凍モジュール518から受信した演算結果データD2を記憶部503に保存する。
-記憶部-
記憶部503は、情報やデータを記憶する。記憶部503の具体的な構成は、特に限定されない。例えば、チップに内蔵されたメモリで実現されてもよいし、HDD(Hard disk drive)、SSD(Solid State Drive)で実現されてもよいし、DVDやBDのような光ディスクで実現されてもよい。
記憶部503は、情報やデータを記憶する。記憶部503の具体的な構成は、特に限定されない。例えば、チップに内蔵されたメモリで実現されてもよいし、HDD(Hard disk drive)、SSD(Solid State Drive)で実現されてもよいし、DVDやBDのような光ディスクで実現されてもよい。
この例では、記憶部503には、車両情報テーブルD51と、ジョブテーブルD53と、マッチングテーブルD55と、ジョブデータD1と、演算結果データD2等の各種データが格納される。
〈車両情報テーブル〉
車両情報テーブルD51は、車両情報を管理するためのテーブルである。車両情報テーブルD51には、例えば、各車両の車両情報D10がリスト化されて格納されている。
車両情報テーブルD51は、車両情報を管理するためのテーブルである。車両情報テーブルD51には、例えば、各車両の車両情報D10がリスト化されて格納されている。
〈ジョブテーブル〉
ジョブテーブルD53は、クライアントから依頼されたジョブを管理するためのテーブルである。ジョブテーブルD53には、ジョブ毎に、そのジョブに設定された受付番号、そのジョブを依頼したクライアントに設定されたクライアントID、そのジョブの名称および内容などが登録される。また、ジョブテーブルD53には、ジョブ毎に、そのジョブに対応するジョブデータD1の計算タイプおよび処理条件、そのジョブデータD1の計算に必要となる計算能力である必要計算能力、そのジョブに設定された納期などが登録される。ジョブテーブルD53では、それぞれのジョブデータD1がどのクライアントから依頼されたジョブなのかがわかるように紐づけされている。
ジョブテーブルD53は、クライアントから依頼されたジョブを管理するためのテーブルである。ジョブテーブルD53には、ジョブ毎に、そのジョブに設定された受付番号、そのジョブを依頼したクライアントに設定されたクライアントID、そのジョブの名称および内容などが登録される。また、ジョブテーブルD53には、ジョブ毎に、そのジョブに対応するジョブデータD1の計算タイプおよび処理条件、そのジョブデータD1の計算に必要となる計算能力である必要計算能力、そのジョブに設定された納期などが登録される。ジョブテーブルD53では、それぞれのジョブデータD1がどのクライアントから依頼されたジョブなのかがわかるように紐づけされている。
〈マッチングテーブル〉
マッチングテーブルD55は、マッチング工程でのマッチングの結果を管理するためのテーブルである。マッチングテーブルD55には、ジョブ毎に、そのジョブに設定された受付番号、そのジョブに対応するジョブデータD1に設定されたジョブデータID、マッチング処理によりそのジョブデータに対して割り当てられた車両の車両識別情報などが登録される。
マッチングテーブルD55は、マッチング工程でのマッチングの結果を管理するためのテーブルである。マッチングテーブルD55には、ジョブ毎に、そのジョブに設定された受付番号、そのジョブに対応するジョブデータD1に設定されたジョブデータID、マッチング処理によりそのジョブデータに対して割り当てられた車両の車両識別情報などが登録される。
〈ジョブデータ〉
記憶部503に記憶されるジョブデータD1は、後述するジョブ受付処理でクライアント端末から受け付けられたジョブのデータである。
記憶部503に記憶されるジョブデータD1は、後述するジョブ受付処理でクライアント端末から受け付けられたジョブのデータである。
〈演算結果データ〉
記憶部503に記憶される演算結果データD2は、後述するグリッドコンピューティング処理により各対象車両10で実行されたジョブの計算結果のデータである。
記憶部503に記憶される演算結果データD2は、後述するグリッドコンピューティング処理により各対象車両10で実行されたジョブの計算結果のデータである。
〔グリッドコンピューティングシステムの動作〕
以下において、グリッドコンピューティングシステムの動作例について、図7及び図8のフローチャートを参照しつつ説明する。
以下において、グリッドコンピューティングシステムの動作例について、図7及び図8のフローチャートを参照しつつ説明する。
-ステップS1-
ステップS1において、管理サーバ50は、クライアントからのジョブ依頼を受け付けるジョブ受付処理を実行する。
ステップS1において、管理サーバ50は、クライアントからのジョブ依頼を受け付けるジョブ受付処理を実行する。
具体的には、まず、クライアント端末30が、クライアントの担当者による入力操作に応答して、ジョブ依頼申請を管理サーバ50に送信する。
管理サーバ50では、依頼されたジョブに対応するジョブデータD1の送信をクライアント端末30に要求する。クライアント端末30は、その要求に応答して、依頼するジョブに対応するジョブデータD1を管理サーバ50に送信する。管理サーバ50は、ジョブデータD1を受信し、記憶部503に格納する。
-ステップS2-
ステップS2において、管理サーバ50は、クライアント端末30から受信したジョブデータD1の分析を行う。具体的な分析内容は、前述のとおりであり、例えば、管理サーバ50のアプリケーション分析モジュール511が、(1)複数のユニットになるべく均等に分割できるかどうかの分析、(2)ユニットのジョブデータ容量の算出、(3)必要リソースの算出、(4)ユニットの演算結果データD2の容量を予測する、といった分析を実行する。
ステップS2において、管理サーバ50は、クライアント端末30から受信したジョブデータD1の分析を行う。具体的な分析内容は、前述のとおりであり、例えば、管理サーバ50のアプリケーション分析モジュール511が、(1)複数のユニットになるべく均等に分割できるかどうかの分析、(2)ユニットのジョブデータ容量の算出、(3)必要リソースの算出、(4)ユニットの演算結果データD2の容量を予測する、といった分析を実行する。
-ステップS3-
ステップS3において、管理サーバ50は、各車両10の車両情報D10を取得する。
ステップS3において、管理サーバ50は、各車両10の車両情報D10を取得する。
まず、管理サーバ50は、各車両10に最新の車両情報D10の送信を要請する。各車両10は、管理サーバ50の求めに応じて、管理サーバ50に最新の車両情報D10を送信する。このときに送信される車両情報D10は、車両情報D10の一部が送信されてもよいし、全ての車両情報D10が送信されてもよい。例えば、各車両10から管理サーバ50に送信される車両情報D10には、車両識別情報とリソース情報が含まれる。
管理サーバ50では、各車両10から受信した車両情報D10を車両情報テーブルD51に登録する。なお、すでに管理サーバ50に車両情報D10が登録されている車両10については、登録されている登録情報との差分情報のうち、必要な情報を車両10から管理サーバ50に送信するようにしてもよい。
-ステップS4-
ステップS4において、管理サーバ50は、パイプライン処理が構築可能な車両の決定を行う。この例では、ステップS4は、後述する終了条件が設定されたループ処理である。以下、図8を参照しつつ詳細に説明する。
ステップS4において、管理サーバ50は、パイプライン処理が構築可能な車両の決定を行う。この例では、ステップS4は、後述する終了条件が設定されたループ処理である。以下、図8を参照しつつ詳細に説明する。
〈ステップS41〉
ステップS41において、管理サーバ50は、パイプライン処理を実行する候補となる車両の選定処理を実行する。換言すると、管理サーバ50は、この後の処理を実行する車両10を絞り込む処理を実行する。例えば、管理サーバーにグリッドコンピューティングへの参加意思を表明している車両10に関する車両情報D10を普段から取集・蓄積しておく。そして、管理サーバ50は、その情報に基づいて車両10の絞り込みを実行する。本選定処理(絞り込み)の方法は、特に限定されないが、例えば、(1)必要リソースが明らかに不足している車両を除外する、(2)通信帯域が明らかに不足している車両を除外する、(3)グリッドコンピューティングへの参加可能時間が明らかに不足している車両を除外する、等の方法がある。
ステップS41において、管理サーバ50は、パイプライン処理を実行する候補となる車両の選定処理を実行する。換言すると、管理サーバ50は、この後の処理を実行する車両10を絞り込む処理を実行する。例えば、管理サーバーにグリッドコンピューティングへの参加意思を表明している車両10に関する車両情報D10を普段から取集・蓄積しておく。そして、管理サーバ50は、その情報に基づいて車両10の絞り込みを実行する。本選定処理(絞り込み)の方法は、特に限定されないが、例えば、(1)必要リソースが明らかに不足している車両を除外する、(2)通信帯域が明らかに不足している車両を除外する、(3)グリッドコンピューティングへの参加可能時間が明らかに不足している車両を除外する、等の方法がある。
このような絞り込みを事前に行うことで、パイプライン処理が構築可能な車両の決定処理に必要な時間を短縮することができる。なお、ステップS41は、ステップS4のループ処理の過程で毎回必要な処理ではなく、一度候補車両が確定した後は、このステップS41の処理を飛ばしてもよい。
〈ステップS42〉
ステップS42において、管理サーバ50は、ステップS41で選定された車両10(以下、選定車両10ともいう)について、ユニットのジョブ転送時間を推定する。ジョブ転送時間の推定は、例えば、ユニットのジョブデータ容量、選定車両10と管理サーバ50との間の通信帯域情報、管理サーバ50の圧縮モジュール516の性能、及び選定車両10の解凍モジュール111の性能に基づいて実行される。なお、ジョブ転送時間の推定は、すべてのユニットに対して実行してもよいし、いくつかのユニットをピックアップしてジョブ転送時間を推定してもよい。以下で説明するジョブ演算時間の推定及び演算結果転送時間の推定についても同様である。
ステップS42において、管理サーバ50は、ステップS41で選定された車両10(以下、選定車両10ともいう)について、ユニットのジョブ転送時間を推定する。ジョブ転送時間の推定は、例えば、ユニットのジョブデータ容量、選定車両10と管理サーバ50との間の通信帯域情報、管理サーバ50の圧縮モジュール516の性能、及び選定車両10の解凍モジュール111の性能に基づいて実行される。なお、ジョブ転送時間の推定は、すべてのユニットに対して実行してもよいし、いくつかのユニットをピックアップしてジョブ転送時間を推定してもよい。以下で説明するジョブ演算時間の推定及び演算結果転送時間の推定についても同様である。
〈ステップS43〉
ステップS43において、管理サーバ50は、選定車両10について、ユニットのジョブ演算時間を推定する。ジョブ演算時間の推定は、例えば、ステップS2で算出された必要リソース、選定車両10の演算リソース情報、及び同様の演算の実績時間などに基づいて実行される。
ステップS43において、管理サーバ50は、選定車両10について、ユニットのジョブ演算時間を推定する。ジョブ演算時間の推定は、例えば、ステップS2で算出された必要リソース、選定車両10の演算リソース情報、及び同様の演算の実績時間などに基づいて実行される。
〈ステップS44〉
ステップS44において、管理サーバ50は、選定車両10について、ユニットの演算結果転送時間を推定する。演算結果転送時間の推定は、例えば、ユニットの演算結果データの予測容量、選定車両10と管理サーバ50との間の通信帯域情報、選定車両10の圧縮モジュール118の性能、及び管理サーバ50の解凍モジュール518の性能に基づいて実行される。
ステップS44において、管理サーバ50は、選定車両10について、ユニットの演算結果転送時間を推定する。演算結果転送時間の推定は、例えば、ユニットの演算結果データの予測容量、選定車両10と管理サーバ50との間の通信帯域情報、選定車両10の圧縮モジュール118の性能、及び管理サーバ50の解凍モジュール518の性能に基づいて実行される。
〈ステップS45〉
ステップS45において、管理サーバ50は、選定車両10について、ジョブの連続実行可能性について判定する。具体的には、管理サーバ50は、ジョブの総実行時間の推定を行い、その総実行時間と選定車両10の今後のグリッドコンピューティングとしての利用可能時間(以下、単に「利用可能時間」という)とに基づいて、ジョブの連続実行可能性を判定する。ジョブの総実行時間の推定は、例えば、ステップS2でのアプリケーションの分析結果、ステップS42で推定されたジョブ転送時間、ステップS43で推定されたジョブ演算時間、及びステップS44で推定された演算結果転送時間に基づいて実行される。選定車両10の利用可能時間は、例えば、選定車両10の車両状態情報D13及び/又は稼働情報D15に基づいて推定される。
ステップS45において、管理サーバ50は、選定車両10について、ジョブの連続実行可能性について判定する。具体的には、管理サーバ50は、ジョブの総実行時間の推定を行い、その総実行時間と選定車両10の今後のグリッドコンピューティングとしての利用可能時間(以下、単に「利用可能時間」という)とに基づいて、ジョブの連続実行可能性を判定する。ジョブの総実行時間の推定は、例えば、ステップS2でのアプリケーションの分析結果、ステップS42で推定されたジョブ転送時間、ステップS43で推定されたジョブ演算時間、及びステップS44で推定された演算結果転送時間に基づいて実行される。選定車両10の利用可能時間は、例えば、選定車両10の車両状態情報D13及び/又は稼働情報D15に基づいて推定される。
より具体的には、管理サーバ50は、例えば、ジョブデータD1を処理するのに3時間要すると推定される場合に、車両情報D10などに基づいて、選択車両10がその後の3時間駐車されている予定かどうかを判定する。
〈ステップS46〉
ステップS46において、管理サーバ50は、パイプライン処理のステージ時間を決定する。この例では、パイプライン処理は、データ受信ステージ、ジョブ演算ステージ、データ送信ステージの3つのステージで構成されており、それぞれのステージ時間を決定する。データ受信ステージは、選択車両10が管理サーバ50からジョブデータD1を受信するステージである。ジョブ演算ステージは、選択車両10でジョブデータD1を用いた演算をするステージである。データ送信ステージは、選択車両10から管理サーバ50に演算結果データD2を送信するステージである。この例では、ステージの名称や動作説明などにおいて、便宜上、車両10から見た場合の「受信」及び「送信」でデータの流れを説明をする場合がある。なお、データ受信ステージでの転送処理は、第1転送処理の一例である。データ送信ステージでの転送処理は、第2転送処理の一例である。
ステップS46において、管理サーバ50は、パイプライン処理のステージ時間を決定する。この例では、パイプライン処理は、データ受信ステージ、ジョブ演算ステージ、データ送信ステージの3つのステージで構成されており、それぞれのステージ時間を決定する。データ受信ステージは、選択車両10が管理サーバ50からジョブデータD1を受信するステージである。ジョブ演算ステージは、選択車両10でジョブデータD1を用いた演算をするステージである。データ送信ステージは、選択車両10から管理サーバ50に演算結果データD2を送信するステージである。この例では、ステージの名称や動作説明などにおいて、便宜上、車両10から見た場合の「受信」及び「送信」でデータの流れを説明をする場合がある。なお、データ受信ステージでの転送処理は、第1転送処理の一例である。データ送信ステージでの転送処理は、第2転送処理の一例である。
このとき、管理サーバ50は、選択車両10について、データ受信ステージにおけるユニットのジョブ転送時間、ジョブ演算ステージにおけるユニットのジョブ演算時間、及びデータ送信ステージにおけるユニットの演算結果転送時間の相互間の時間差が所定時間内に収まっているかどうかを確認する。この所定時間は、任意に設定することができる。ただし、所定時間が小さいほど、すなわち、各ステージ間の時間差が小さいほど、効率の高い処理が実現できる。上記の相互間の時間差が所定時間を超える場合、管理サーバ50は、選択車両10のステージ時間を「未決定」として処理を終了する。
〈ステップS47,S48〉
次のステップS47では、選択車両10について、ステップS45のジョブの連続実行可能性が充足され、かつ、ステップS46のステージ時間が決定されているかどうかを判定する。そして、YES判定(両方満たされている)の場合、ステップS48に進む。ステップS48では、管理サーバ50は、選択車両10をパイプライン処理の構築が可能な車両と判断し、ループ内の一連の処理を終了する。
次のステップS47では、選択車両10について、ステップS45のジョブの連続実行可能性が充足され、かつ、ステップS46のステージ時間が決定されているかどうかを判定する。そして、YES判定(両方満たされている)の場合、ステップS48に進む。ステップS48では、管理サーバ50は、選択車両10をパイプライン処理の構築が可能な車両と判断し、ループ内の一連の処理を終了する。
一方で、ステップS47において、NO判定(いずれかの条件が満たされていない)の場合、ステップS48の処理を実行せずに、そのままループ内の一連の処理を終了する。
そして、パイプライン処理の構築が可能な車両10(対象車両10)が決定するか、すべての車両10についての処理(例えば、図8の処理)が完了することを終了条件として、ステップS41からステップS48のループ処理を実行する。例えば、ステップS48で所定の条件を満たす対象車両10が決定した時点でループ処理を終了としてもよいし、一部または全部の車両10についてステップS4のループ処理を実行し、すべてのループ処理が終了した後に、最も適した1または複数の車両10を対象車両10に設定するようにしてもよい。なお、終了条件は、これに限定されず、例えば、パイプライン処理に必要な対象車両10の台数が確保できた時点で終了としてもよい。
-ステップS5-
図7に戻り、ステップS5において、管理サーバ50は、パイプライン処理が構築可能な対象車両10が存在するかどうかを確認する。対象車両10が存在する場合(YES判定)、フローはステップS6に進む。一方で、対象車両10が存在しない場合(NO判定)、フローはステップS8に進む。
図7に戻り、ステップS5において、管理サーバ50は、パイプライン処理が構築可能な対象車両10が存在するかどうかを確認する。対象車両10が存在する場合(YES判定)、フローはステップS6に進む。一方で、対象車両10が存在しない場合(NO判定)、フローはステップS8に進む。
-ステップS6-
ステップS6において、管理サーバ50は、パイプライン処理のための設定や準備を実行する。
ステップS6において、管理サーバ50は、パイプライン処理のための設定や準備を実行する。
具体的に、管理サーバ50は、記憶部503からジョブデータD1を取り出し、ステップS2での分析結果に基づいて、ジョブデータD1を複数のユニットに分割する。
また、管理サーバ50及び対象車両10において、パイプライン設定を実行する。例えば、管理サーバ50において、ステップS46で設定されたステージ時間に基づいて、パイプライン処理でのデータ送信のタイミングなどの設定が実行される。同様に、対象車両10においても、パイプライン処理でのデータ受信のタイミングや、演算処理後の演算結果の送信タイミングなどの設定が実行される。
さらに、管理サーバ50は、対象車両10との通信帯域を確保するとともに、対象車両10に対して演算リソースの予約処理を実行する。
-ステップS7-
ステップS7は、パイプラインジョブの完了を終了条件とするループ処理である。
ステップS7は、パイプラインジョブの完了を終了条件とするループ処理である。
〈通常処理(異常なし)〉
ステップS71では、パイプライン処理(パイプラインサイクル)が実行される。図9にパイプライン処理の一例を示す。
ステップS71では、パイプライン処理(パイプラインサイクル)が実行される。図9にパイプライン処理の一例を示す。
図9において、第1サイクルでは、データ受信ステージにおいて、第1ユニットのデータ受信処理が実行される。具体的には、管理サーバ50における第1ユニットのデータ圧縮処理、管理サーバ50から対象車両10へのデータ転送処理、対象車両10における第1ユニットの解凍処理が実行される。
第2サイクルでは、データ受信ステージにおいて、第2ユニットのデータ受信処理が実行される。第1サイクルと同様に、第2ユニットについて、データ圧縮処理、データ転送処理、及び解凍処理が実行される。また、演算ステージにおいて、第1ユニットを用いたアプリケーションジョブの演算処理(第1演算)が実行される。
第3サイクルでは、データ受信ステージにおいて、第3ユニットのデータ受信処理が実行される。第1サイクルと同様に、第3ユニットについて、データ圧縮処理、データ転送処理、及び解凍処理が実行される。また、演算ステージにおいて、第2ユニットを用いたアプリケーションジョブの演算処理(第2演算)が実行される。また、データ送信ステージにおいて、第1ユニットのデータ送信処理が実行される。具体的には、対象車両10における第1ユニットのデータ圧縮処理、対象車両10から管理サーバ50へのデータ転送処理、管理サーバ50における第1ユニットの解凍処理が実行される。
以後、同様にして、パイプライン処理のジョブが完了するまで、データ受信ステージ、演算ステージ及びデータ送信ステージの3ステージでのパイプライン処理が実行される。
〈異常処理(1)〉
次に、ステップS7のループ処理の過程において、異常が発生した場合(図7のステップS72でYES判定になった場合)について、図面を参照しつつ説明する。
次に、ステップS7のループ処理の過程において、異常が発生した場合(図7のステップS72でYES判定になった場合)について、図面を参照しつつ説明する。
図10は、第4サイクルのデータ受信ステージにおいて、異常が発生した例を示す。すなわち、この例では、管理サーバ50から対象車両10への第4ユニットのデータ受信処理において異常が発生している(図10上段参照)。
まず、対象車両10の演算モジュール113で異常が確認されると、演算モジュール113からパイプライン管理モジュール115に異常通知が送信される。パイプライン管理モジュール115は、通信路62を介して管理サーバ50に異常通知を送信し、第4ユニットのデータ再送依頼をする。さらに、対象車両10では、演算ステージにおいて、第3演算の演算まで実行し、その後待機状態になる。また、データ送信ステージにおいて、第3ユニットのデータ送信処理まで実行し、その後待機状態となる。
管理サーバ50では、異常通知を受信すると、データ転送を一旦停止する。
その後、データ受信ステージにおいて、第4ユニットのデータ受信処理が再度実行される。図10下段には、第6サイクルのデータ受信ステージにおいて、第4ユニットのデータ受信処理が再開された例を示している。
対象車両10では、第4ユニットのデータが受信されると解凍処理が実行され、その後の演算ステージ及びデータ送信ステージの処理が再開される。そして、パイプライン処理のジョブが完了するまで、データ受信ステージ、演算ステージ及びデータ送信ステージの3ステージでのパイプライン処理が実行される。
なお、所定時間にわたって異常状態が解消されない場合に、ステップS7のループ処理を抜けるようにしてもよい。後述する「異常処理(2)」及び「異常処理(3)」についても同様である。
〈異常処理(2)〉
図11は、第4サイクルの演算ステージにおいて、異常が発生した例を示す。すなわち、この例では、第3ユニットを用いたアプリケーションジョブの演算処理(第3演算)の過程で異常が発生している(図11上段参照)。
図11は、第4サイクルの演算ステージにおいて、異常が発生した例を示す。すなわち、この例では、第3ユニットを用いたアプリケーションジョブの演算処理(第3演算)の過程で異常が発生している(図11上段参照)。
まず、対象車両10の演算モジュール113で異常が確認されると、演算モジュール113からパイプライン管理モジュール115に、第3ユニットの演算処理についての異常通知が送信される。パイプライン管理モジュール115は、通信路62を介して管理サーバ50に異常通知を送信し、異常が発生した第3ユニットのデータ再送依頼をする。さらに、対象車両10では、演算ステージにおいて、第3演算のデータを破棄して演算を一旦停止し、待機状態になる。また、データ送信ステージにおいて、第2ユニットのデータ送信処理まで完了させて、その後待機状態となる。
管理サーバ50では、異常通知を受信すると、データ転送を一旦停止する。
その後、データ受信ステージにおいて、第3ユニットのデータ受信処理が再度実行される。図11下段には、第5サイクルのデータ受信ステージにおいて、管理サーバ50から対象車両10への第3ユニットのデータ受信処理が再開された例を示している。
対象車両10では、第3ユニットのデータが受信されると解凍処理が実行され、その後の演算ステージ及びデータ送信ステージの処理が再開される。そして、パイプライン処理のジョブが完了するまで、データ受信ステージ、演算ステージ及びデータ送信ステージの3ステージでのパイプライン処理が実行される。
〈異常処理(3)〉
図12は、第4サイクルのデータ送信ステージにおいて、異常が発生した例を示す。すなわち、この例では、対象車両10から管理サーバ50への第2ユニットのデータ送信処理の途中で異常が発生している(図12上段参照)。
図12は、第4サイクルのデータ送信ステージにおいて、異常が発生した例を示す。すなわち、この例では、対象車両10から管理サーバ50への第2ユニットのデータ送信処理の途中で異常が発生している(図12上段参照)。
まず、例えば、解凍モジュール518で異常が確認されると、解凍モジュール518から演算管理モジュール514に、第2ユニットのデータ送信処理についての異常通知が送信される。演算管理モジュール514は、異常通知を受信すると、データ受信ステージにおけるデータ転送を一旦停止する。また、演算管理モジュール514は、通信路61を介して対象車両10に異常通知を送信する。
対象車両10では、異常通知を受信すると、演算ステージにおいて、第3演算以降のデータを破棄して演算を一旦停止し、待機状態になる。また、データ送信ステージにおいて、第2ユニット以降のデータを破棄して、待機状態となる。
その後、データ受信ステージにおいて、第4ユニットのデータ受信処理が再度実行される。図12下段には、第5サイクルのデータ受信ステージにおいて、管理サーバ50から対象車両10への第2ユニットのデータ受信処理が再開された例を示している。
対象車両10では、第2ユニットのデータが受信されると解凍処理が実行され、その後の演算ステージ及びデータ送信ステージの処理が再開される。そして、パイプライン処理のジョブが完了するまで、データ受信ステージ、演算ステージ及びデータ送信ステージの3ステージでのパイプライン処理が実行される。
-ステップS8-
ステップS8では、ジョブデータD1を用いて、パイプライン処理を伴わない通常のアプリケーションジョブの演算処理が実行される。
ステップS8では、ジョブデータD1を用いて、パイプライン処理を伴わない通常のアプリケーションジョブの演算処理が実行される。
〔実施形態の効果〕
以上のように、上記の実施形態によると、管理サーバ50において、処理対象となるジョブを複数のユニットに分割している。そして、本システム1では、管理サーバ50から対象車両10にユニット毎のジョブデータを転送するデータ受信ステージ、車両において各ユニットの演算を実行する演算ステージ、対象車両10から管理サーバ50に演算処理後の演算結果データを転送するデータ送信ステージの3ステージのパイプラインで処理するようにしている。
以上のように、上記の実施形態によると、管理サーバ50において、処理対象となるジョブを複数のユニットに分割している。そして、本システム1では、管理サーバ50から対象車両10にユニット毎のジョブデータを転送するデータ受信ステージ、車両において各ユニットの演算を実行する演算ステージ、対象車両10から管理サーバ50に演算処理後の演算結果データを転送するデータ送信ステージの3ステージのパイプラインで処理するようにしている。
これにより、管理サーバ50と対象車両10との間におけるデータ転送期間中においても演算処理を実行することができるので、一連のジョブ完了までの時間に対して転送処理時間が与える影響を軽減することができる。
さらに、上記の実施形態では、3ステージでのパイプライン処理に先立って、管理サーバ50から対象車両10へのジョブ転送時間、対象車両10における演算時間及び対象車両10から管理サーバ50への演算結果データの転送時間の相互間の時間差が所定時間内に収まるようにジョブと車両10のマッチングを取るようにしている。これにより、パイプライン処理を実行する上でそれぞれのジョブに対して最適な車両10を割り当てることができる。
なお、以上の実施形態を適宜組み合わせて実施してもよい。以上の実施形態は、本質的に好ましい例示であって、ここに開示する技術、その適用物、あるいはその用途の範囲を制限することを意図するものではない。すなわち、前述の実施形態は単なる例示に過ぎず、本開示の範囲を限定的に解釈してはならない。本開示の範囲は請求の範囲によって定義され、請求の範囲の均等範囲に属する変形や変更は、全て本開示の範囲内のものである。
以上説明したように、ここに開示する技術は、グリッドコンピューティングを管理する技術として有用である。
10 車両(移動体)
50 管理サーバ(マスタ装置)
50 管理サーバ(マスタ装置)
Claims (3)
- 複数の移動体のそれぞれに搭載される演算資源を活用したグリッドコンピューティングシステムであって、
処理対象のジョブを管理するマスタ装置と、
ネットワークを介して前記マスタ装置に接続された前記複数の移動体とを備え、
前記マスタ装置において、処理対象となるジョブを複数のユニットに分割し、
前記マスタ装置から前記移動体に前記ユニット毎のジョブデータを転送する第1転送処理、当該移動体における当該各ユニットの演算処理、及び当該移動体から前記マスタ装置に当該演算処理後の演算結果データを転送する第2転送処理のそれぞれを異なるステージとするパイプラインで処理する、
グリッドコンピューティングシステム。 - 複数の移動体のそれぞれに搭載される演算資源を活用したグリッドコンピューティングを管理する管理方法であって、
処理対象となるジョブについて、当該ジョブを複数のユニットに分割した場合における前記ユニットのジョブデータ容量、前記ユニットの演算における必要リソース及び前記ユニットの演算処理後のジョブ結果容量を推定するジョブ分析工程と、
それぞれの前記移動体について、当該移動体と前記グリッドコンピューティングのマスタ装置との間の通信帯域情報及び当該移動体の演算リソース情報を取得する移動体情報取得工程と、
前記ジョブデータ容量と前記通信帯域情報に基づくジョブ転送時間、前記必要リソースと前記演算リソース情報に基づく演算時間、及び、前記ジョブ結果容量と前記通信帯域情報に基づく結果転送時間を推定し、当該推定された前記ジョブ転送時間、前記演算時間及び前記結果転送時間の相互間の時間差が所定時間内に収まるように移動体とジョブとのマッチングをするマッチング工程と、
前記マスタ装置から前記マッチング工程で選定された移動体に対してマッチングされたジョブのユニット毎のジョブデータを転送する第1転送処理、当該移動体における当該各ユニットの演算処理、及び当該移動体から前記マスタ装置に当該演算処理後の演算結果データを転送する第2転送処理のそれぞれを異なるステージとするパイプラインで処理するパイプライン処理工程とを含む、
管理方法。 - 複数の移動体のそれぞれに搭載される演算資源を活用したグリッドコンピューティングを管理する管理システムであって、
処理対象となるジョブについて、当該ジョブを複数のユニットに分割した場合における前記ユニットのジョブデータ容量、前記ユニットの演算における必要リソース及び前記ユニットの演算処理後のジョブ結果容量を推定するジョブ分析モジュールと、
それぞれの前記移動体について、当該移動体と前記グリッドコンピューティングのマスタ装置との間の通信帯域情報及び当該移動体の演算リソース情報を取得する演算ノード管理モジュールと、
前記ジョブデータ容量と前記通信帯域情報に基づくジョブ転送時間、前記必要リソースと前記演算リソース情報に基づく演算時間、及び、前記ジョブ結果容量と前記通信帯域情報に基づく結果転送時間を推定し、当該推定された前記ジョブ転送時間、前記演算時間及び前記結果転送時間の相互間の時間差が所定時間内に収まるように移動体とジョブとのマッチングをする設定モジュールと、
前記マスタ装置から前記設定モジュールで選定された移動体に対してマッチングされたジョブのユニット毎のジョブデータを転送する第1転送処理、当該移動体における当該各ユニットの演算処理、及び当該移動体から前記マスタ装置に当該演算処理後の演算結果データを転送する第2転送処理のそれぞれを異なるステージとするパイプラインで処理するパイプライン管理モジュールとを含む、
管理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021135045A JP2023029002A (ja) | 2021-08-20 | 2021-08-20 | グリッドコンピューティングシステム、管理方法及び管理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021135045A JP2023029002A (ja) | 2021-08-20 | 2021-08-20 | グリッドコンピューティングシステム、管理方法及び管理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023029002A true JP2023029002A (ja) | 2023-03-03 |
Family
ID=85330935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021135045A Pending JP2023029002A (ja) | 2021-08-20 | 2021-08-20 | グリッドコンピューティングシステム、管理方法及び管理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023029002A (ja) |
-
2021
- 2021-08-20 JP JP2021135045A patent/JP2023029002A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11917431B2 (en) | Connected vehicle network data transfer optimization | |
CN111950988B (zh) | 分布式工作流调度方法、装置、存储介质及电子设备 | |
US11810406B2 (en) | Autonomous vehicle data management platform | |
CN105007337A (zh) | 集群系统负载均衡的方法和系统 | |
US20190373051A1 (en) | Task Scheduling System for Internet of Things (IoT) Devices | |
US20220116479A1 (en) | Systems and methods for managing an automotive edge computing environment | |
US20230136612A1 (en) | Optimizing concurrent execution using networked processing units | |
CN111580974B (zh) | Gpu实例分配方法、装置、电子设备和计算机可读介质 | |
US11790289B2 (en) | Systems and methods for managing dynamic transportation networks using simulated future scenarios | |
US11856511B2 (en) | Connected vehicle bandwidth-based network selection | |
CN104750545A (zh) | 一种调度进程的方法及装置 | |
CN112287178B (zh) | 数据清洗方法、装置、电子设备及存储介质 | |
JP2023029002A (ja) | グリッドコンピューティングシステム、管理方法及び管理システム | |
CN116594568A (zh) | 一种数据存储方法、装置、电子设备及存储介质 | |
CN108770014B (zh) | 网络服务器的计算评估方法、系统、装置及可读存储介质 | |
WO2022230644A1 (ja) | 管理システム及び管理方法 | |
CN116402318A (zh) | 面向配电网的多级算力资源分配方法、装置及网络架构 | |
CN113269339B (zh) | 一种网约车任务自动创建和分发的方法及系统 | |
CN111898061B (zh) | 搜索网络的方法、装置、电子设备和计算机可读介质 | |
CN107273082A (zh) | 图像的显示方法、装置、终端及存储介质 | |
CN112346870A (zh) | 模型处理方法及系统 | |
CN111381956B (zh) | 一种任务处理的方法、装置及云分析系统 | |
CN117156495B (zh) | 一种边缘计算任务卸载方法、装置、电子设备和存储介质 | |
US20220363281A1 (en) | Apparatuses, systems, methods, and techniques of distributed powertrain performance optimization and control | |
CN116822857A (zh) | 非空闲配送机器人的任务分配方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240618 |