JP7353854B2 - 分散処理システム及び分散処理方法 - Google Patents

分散処理システム及び分散処理方法 Download PDF

Info

Publication number
JP7353854B2
JP7353854B2 JP2019146034A JP2019146034A JP7353854B2 JP 7353854 B2 JP7353854 B2 JP 7353854B2 JP 2019146034 A JP2019146034 A JP 2019146034A JP 2019146034 A JP2019146034 A JP 2019146034A JP 7353854 B2 JP7353854 B2 JP 7353854B2
Authority
JP
Japan
Prior art keywords
agent
computer
processing
simulation
agents
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.)
Active
Application number
JP2019146034A
Other languages
English (en)
Other versions
JP2021026646A (ja
Inventor
匠 加藤
亮太 鴨志田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019146034A priority Critical patent/JP7353854B2/ja
Publication of JP2021026646A publication Critical patent/JP2021026646A/ja
Application granted granted Critical
Publication of JP7353854B2 publication Critical patent/JP7353854B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

本発明はマルチエージェントシミュレーションを行うための分散処理システム及びその情報処理方法に関する。
実世界のシミュレーションにおいて、工場などの挙動を分析する場合、処理負荷の高い多種多様な振る舞いをするマテリアルハンドリングの機器や人をモデリングし、システムの挙動をマルチエージェントシミュレータを用いて模擬することが有効である。処理負荷の高いマルチエージェントシミュレーションにおいては、計算機を複数用いて処理を行うための、負荷分散を行う技術が重要である。
特許文献1~3には、マルチエージェントシミュレーションにおける負荷の分散を行うことができる技術が開示されている。
特許文献1では、計算機を分散して配置し、それぞれに要素シミュレータを配備し、第1~第Nの複数の要素シミュレータを連携させて、第1の要素シミュレータの計算結果に基づいて第2の要素シミュレータが計算を行い、第2の要素シミュレータの計算結果に基づいて第3の要素シミュレータが計算を行い、第Nの要素シミュレータが計算を行ってシミュレーション結果を得る統合シミュレータに関する技術が開示されている。
特許文献2では、計算機を分散して配置し、交通シミュレーションにおいて模擬する実空間を任意の領域に分割し、各々の計算機に分割された領域の模擬を行う演算を行わせ、また、シミュレーションが進むにつれて各々の計算機において処理内容に偏りが生じた場合、領域の再分割を自動的に行い、処理負荷を平準化する技術が開示されている。
特許文献3では、計算機を分散して配置し、それぞれにエージェントを配備し、処理効率の評価値を算出する装置をもち、移動テーブルと呼ばれるエージェントの移動経路を指定したテーブルに従って、エージェントの移動を自動的に行い、処理負荷を平準化する技術が開示されている。
特開2011-108160号公報 特開2017-134449号公報 特開2005-332082号公報
しかしながら、特許文献1~3は、いずれもシミュレーションに関して高度な専門知識を要するものであり、分散処理技術の非習熟者が簡便に、直感的に負荷を分散してシミュレーションを行うことは難しい、という問題があった。
そこで、本発明は、マルチエージェントシミュレーションにおける負荷分散を、エージェントの処理を記述したファイルの移動によって、シミュレーション及び負荷分散に関する専門知識を必要としない方法で実現するシステム及び方法を提供するものである。
本発明は、プロセッサとメモリを有する複数の計算機が複数のエージェントの処理を実行する分散処理システムであって、前記複数の計算機は、第1の計算機と第2の計算機を含み、前記複数のエージェントは、1つのアプリケーションを構成し、前記第1の計算機は、第1のエージェントの処理が記述された第1のファイルと、第2のエージェントの処理が記述された第2のファイルと、を独立して有し、前記第1の計算機は、前記第1のエージェントの処理を実行する。
本発明によれば、1つのアプリケーションを構成するエージェント群の処理を記載したファイルが独立していることで、複数の計算機におけるエージェントの配置方法が直観的となり、分散処理技術の非習熟者が簡便に、直感的に負荷を分散して分散処理(シミュレーション)を行うことができるという効果が得られる。
本明細書において開示される主題の、少なくとも一つの実施の詳細は、添付されている図面と以下の記述の中で述べられる。開示される主題のその他の特徴、態様、効果は、以下の開示、図面、請求項により明らかにされる。
本発明の実施例1を示し、分散処理システムの構成の一例を示すブロック図である。 本発明の実施例1を示し、計算機の構成の一例を示すブロック図である。 本発明の実施例1を示し、分散処理システムにおける負荷分散を行う際のエージェントプログラムファイルの移動前の図である。 本発明の実施例1を示し、分散処理システムにおける負荷分散を行う際のエージェントプログラムファイルの移動後の図である。 本発明の実施例1を示し、分散処理システムにおける負荷分散を行う際のエージェントプログラムのファイルの移動の手順を示すフローチャートである。 本発明の実施例2を示し、分散処理システムの構成の一例を示すブロック図である。 本発明の実施例2を示し、計算機の構成の一例を示すブロック図である。 本発明の実施例2を示し、分散マルチエージェントシミュレーションにおける負荷分散を行う際のエージェントプログラム実行ファイルの移動前の図である。 本発明の実施例2を示し、分散処理システムにおいて実現される分散マルチエージェントシミュレーションにおける負荷分散を行う際のエージェントプログラム実行ファイルの移動後の図である。 本発明の実施例3を示し、エージェントの移動の手順を示すシーケンス図である。 本発明の実施例2を示し、計算機で行われる処理の一例を示すフローチャートである。
本発明に係る分散処理システムは、複数のエージェントによって構成されるマルチエージェントシステムの処理負荷を、エージェントの処理を記述したプログラムをある計算機から他の計算機に移動することで移動する。これにより、シミュレーション及び負荷分散に関する専門知識を必要としない方法で負荷分散を行うことを可能とするものである。以下に、本発明の実施の形態を図面に基づいて説明する。
以下に、本発明に係る分散処理システムの実施例1を図面に基づいて説明する。図1は、分散処理システムの構成の一例を示すブロック図である。
図1に示すように、分散処理システムは計算機A100-1と、計算機B100-2と、計算機C100-3を有し、前記計算機がそれぞれ、エージェント実行環境A110-1と、エージェント実行環境B110-2と、エージェント実行環境C110-3と、を有し、前記エージェント実行環境がそれぞれ、分散処理システムの処理を行うエージェントを有する。
なお、計算機A~計算機Cを個々に特定しない場合には、計算機100として記載する。他の構成要素も同様であり、構成要素を個々に特定しない場合には「A」~「C」と「-」以降の符号を省略する。
計算機100では、エージェントワークプレース130が提供する各エージェント実行環境110では、シミュレーションを実施するエージェント120が稼働する。
計算機A100-1では、エージェントワークプレースA130-1がエージェント実行環境A110-1を提供し、エージェントA120-1と、エージェントB120-2と、エージェントC120-3と、を稼働させる。
計算機B100-2では、エージェントワークプレースB130-2がエージェント実行環境B110-2を提供し、エージェントD120-4を稼働させる。計算機C100-3では、エージェントワークプレースC130-3がエージェント実行環境C110-3を提供し、エージェントE120-5と、エージェントF120-6を稼働させる。
各エージェント120は分散処理システムの処理を行うエージェントであり、計算機100をまたいで通信を行う際にはネットワーク116を経由してデータを交換する。
前記エージェント及び請求項1に記載のエージェントとは、エージェント実行環境110で実行されたソフトウェアプロセスであって、内部に問題解決を行う情報処理機構を有し、メッセージによって情報を受信し、また送信する機能を有するソフトウェアプロセスである。
図2は、計算機の構成の一例を示すブロック図である。計算機A100-1~計算機C100-3は同様の構成であるので、計算機A100-1について説明し、重複する説明は省略する。
計算機A100-1は、プロセッサ1と、メモリ2と、入力装置3と、出力装置4と、ストレージ装置5と、ネットワークインターフェース6を含む計算機である。
メモリ2には、エージェントワークプレースAプログラムファイル131-1と、エージェントAプログラムファイル121-1と、エージェントBプログラムファイル121-2と、エージェントCプログラムファイル121-3がロードされてプロセッサ1によって実行される。
プロセッサ1は、プログラムファイルに従って処理を実行することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ1は、エージェントAプログラムファイル121-1を実行することで、エージェントA120-1として機能する。他のプログラムファイルについても同様である。さらに、プロセッサ1は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
入力装置3は、キーボードやマウスあるいはタッチパネル等で構成される。出力装置4は、ディスプレイ等で構成される。ストレージ装置5は、不揮発性記憶媒体で構成されて、各種プログラムファイルやデータを格納する。ネットワークインターフェース6は、ネットワーク116に接続されて、他の計算機100と通信を行う。
各プログラムファイルには、分散処理システムを構成するエージェント120とエージェントの処理が記述されている。
計算機A100-1にホストされるエージェント実行環境A110-1は、エージェントC120-3と、エージェントB120-2と、エージェントA120-1と、エージェントワークプレースA130-1を有する。
前記エージェント実行環境A110-1にホストされるエージェント120は、それぞれ、エージェントCプログラムファイル121-3と、エージェントBプログラムファイル121-2と、エージェントAプログラムファイル121-1と、エージェントワークプレースAプログラムファイル131-1において処理がそれぞれ独立に記述されている。
前記プログラムファイル121とは、計算機100で稼働するオペレーティングシステム(OS)やそれに準ずるシステムによってIDやファイル名を付与され、ファイルとして記憶領域内に格納されるデータを指す。
分散処理システムで負荷分散を実現するためのエージェント120の移動前の状態を図3に示す。
計算機A100-1では、エージェント実行環境A110-1が稼働しており、前記エージェント実行環境A110-1において、エージェントC120-3と、エージェントB120-2と、エージェントA120-1と、エージェントワークプレースA130-1が稼働している。
また、計算機B100-2では、エージェント実行環境B110-2が稼働しており、前記エージェント実行環境B110-2において、エージェントD120-4が稼働している。エージェント120の移動前の図である図3において、移動の対象となるエージェント及びプログラムファイルはエージェントA120-1及びエージェントAプログラムファイル121-1である。
エージェントワークプレースA130-1は、シミュレーション1の実行用の環境を提供し、エージェントA120-1と、エージェントB120-2と、エージェントC120-3と、エージェントD120-4が、シミュレーション1として稼働する。
負荷分散を実現するためのエージェント120の移動の手順を図5に示す。まず、ステップ501に示す移動するエージェントの決定では、負荷分散の目的に応じて移動するエージェント120の決定が行われる。すなわち、前記図3に記載した稼働中のエージェント120のうち、移動の対象となるエージェントA120-1が決定される。
次に、ステップ502に示すように、前記移動の対象となるエージェントA120-1を、移動させる計算機100が決定される。次に、ステップ503に示すように、前記移動の対象となるエージェントA120-1の処理が記載されているエージェントプログラムファイルA121-1が選択される。
次に、504に示すように、前記移動の対象となるエージェントA120-1の処理が記載されているエージェントAプログラムファイル121-1を、前記移動先の計算機B100-2に移動させる。本実施例において、移動の対象となるエージェント及びプログラムファイルは、図3に示すエージェントA120-1及びエージェントAプログラムファイル121-1である。また、移動先となる計算機は、図3に示す計算機B100-2である。
負荷分散を実現するためのエージェントの移動において、エージェント120の移動後の、2つの計算機100において稼働する複数のエージェント120を図4に示す。計算機A100-1では、エージェント実行環境A110-1が稼働しており、前記エージェント実行環境A110-1において、エージェントC120-3と、エージェントA120-1と、エージェントワークプレースA130-1が稼働している。
また、計算機B100-2では、エージェント実行環境B110-2が稼働しており、前記エージェント実行環境B110-2において、エージェントB120-2と、エージェントD120-4が稼働している。
エージェントB120-2を移動させた後の図である図4において、図3と比べて、移動した後のエージェント及びプログラムファイルはエージェントB120-2及びエージェントBプログラムファイル121-2である。
このように本実施例の分散処理システムは、1つのアプリケーションを構成するエージェント群の処理を記載したファイルが独立していることで、複数の計算機におけるエージェントの配置方法が直観的となり、分散処理技術の非習熟者が簡便に、直感的に負荷を分散して分散処理(シミュレーション)を行うことができるという効果が得られる。
本発明に係る分散マルチエージェントシミュレーションの一例として、物流倉庫の一部を模擬したシミュレーションを実施例2に示す。シミュレーションの対象となる物流倉庫の一部について以下に詳細を示す。
シミュレーションの対象は2つのエリアから構成される。1つのエリアは棚搬送ロボットエリア、もう一つは搬送ロボットエリアである。棚搬送ロボットエリアは棚搬送ロボット、棚、ピッカー、およびピッキングステーションを有する。搬送ロボットエリアは搬送ロボット、前記ピッキングステーションの隣に設置された仕分けポイント、仕分けされた荷物を運んでいき他のロボットに受け渡す受け渡しポイントを有する。また、前記物流倉庫には物品管理システムが導入されている。
前記各エリアでのロボットと人の動きを説明する。物品管理システムからのオーダーをもとに、棚搬送エリアで棚がピッキングステーションへ搬送される。ピッカーは搬送された棚から商品をピッキングし、ピッキングした商品を仕分けポイントで仕分けする。搬送ロボットは仕分けポイントから、仕分けの終わった商品を、他のロボットに受け渡す受け渡しポイントへ搬送する。他のロボットへの受け渡しが終了すると、搬送ロボットは仕分けポイントに移動する。
本実施例に係る分散処理システムは図6に示すように、計算機A100-1と、計算機B100-2と、計算機C100-3を有し、前記計算機100がそれぞれ、エージェント実行環境A110-1と、エージェント実行環境B110-2と、エージェント実行環境C110-3を有し、前記エージェント実行環境110がそれぞれ、1つの分散マルチエージェントシミュレーションのアプリケーションであるシミュレーション1の処理を行うエージェント122を有する。
シミュレーション1を構成するエージェントは、例えばエージェントA1(122-1A)及びA2(122-1B)が棚搬送ロボットを模擬するエージェント、エージェントB(122-2)が物品管理システムを模擬するエージェント、エージェントC(122-3)がピッカーを模擬するエージェント、エージェントD(122-4)が搬送ロボットを模擬するエージェント、エージェントE(122-5)が前記2エリアのマップとタイムステップを管理する時空間情報エージェント、エージェントF(122-6)がネットワーク116を通して全エージェントの交換するメッセージを取得して記録するロギングエージェント、及びエージェントワークプレースA(132-1)である。
ロギングエージェントと時空間情報エージェント以外のエージェントはシミュレーションエージェントと呼ばれ、模擬する系によって数や種類が異なる。時空間情報エージェントおよびロギングエージェントは、模擬する系によって保持する情報や機能に違いが生じるが、マルチエージェントシミュレーションを構成するエージェントに含まれる。
シミュレーションエージェントはシミュレーションの対象となるロボットが複数いる場合、例えば、エージェントA1及びA2のように棚搬送ロボットを2機模擬する場合、棚搬送ロボットを模擬するエージェントは2つ稼働する。また前記棚搬送ロボットのように同一の処理を行うエージェントであっても、それぞれのエージェントの処理は独立したプログラムファイルに記載されている。
本実施例に示すシミュレーション1を実行する際に利用者が行うアクションを説明する。図11は、本処理の手順を示すフローチャートである。利用者はエージェントワークプレースA(132-1)を起動し(S31)、ロギングエージェントを起動する(S32)。次に前記シミュレーションエージェントを起動し(S33)、エージェント時空間情報エージェントを起動する(S34)。時空間情報が起動されるとシミュレーション1が開始され(S35)、シミュレーション1が終了するとシミュレーションエージェントと時空間情報エージェントが停止し(S37、S38)、その後ロギングエージェントがログを出力して停止する(S39)。利用者はログを見ることで、シミュレーション1の結果を知ることができる。なお、シミュレーション1は、所定の終了条件となるまで実行される(S36)。
シミュレーションエージェント起動後に、時空間情報エージェントが起動されると、時空間情報エージェントが管理するタイムステップにしたがってシミュレーションエージェントが各個の模擬の処理を開始する。時空間情報エージェントおよびシミュレーションエージェント群はネットワーク116を通してメッセージを用いて情報や命令を交換する。ロギングエージェントは時空間情報エージェントとシミュレーションエージェントが交換するすべてのメッセージを傍受し、シミュレーション1の結果をロギングする。
図7は、分散マルチエージェントシミュレーションを構成するエージェントとエージェントの処理を記述したプログラム実行ファイルとの対応を示す。
計算機A100-1上にホストされるエージェント実行環境A110-1は、分散マルチエージェントシミュレーションアプリケーションであるシミュレーション1を実現する、シミュレーション1のエージェントB122-2、シミュレーション1のエージェントA1(122-1A)、シミュレーション1のエージェントA2(122-1B)、シミュレーション1のエージェントワークプレースA132-1を有する。
前記エージェント実行環境A110-1にホストされるエージェント122は、それぞれ、エージェントBプログラム実行ファイル123-2と、エージェントA1プログラム実行ファイル123-1Aと、エージェントA2プログラム実行ファイル123-1Bと、エージェントワークプレースAプログラム実行ファイル133-1において処理がそれぞれ独立に記述されている。
このように本実施例の分散マルチエージェントシミュレーションシステムは、前記エージェント群の処理を記述したファイルのそれぞれが独立して実行可能なプログラム実行ファイルであることによって、負荷分散を目的としてエージェント及びファイルを移動する際、稼働中のエージェントを停止するなどの手間を削減する効果を得ることができる。
図8に、分散マルチエージェントシミュレーションにおいて、負荷分散を実現するためにエージェントを移動する前において、2つの計算機で稼働する複数のエージェントを示す。
計算機A100-1でホストされるエージェント実行環境A110-1では、シミュレーション1を構成するエージェント群、即ち、シミュレーション1のエージェントB122-2と、シミュレーション1のエージェントA1(122-1A)と、シミュレーション1のエージェントA2(122-1B)と、シミュレーション1のエージェントワークプレースA132-1が稼働している。
また、それぞれのエージェントの処理は、シミュレーション1のエージェントBプログラム実行ファイル123-2と、シミュレーション1のエージェントA1プログラム実行ファイル23-1Aと、シミュレーション1のエージェントA2プログラム実行ファイル123-1Bと、シミュレーション1のエージェントワークプレースAプログラム実行ファイル133-1において、それぞれ独立に記述されている。
また、計算機B100-2でホストされるエージェント実行環境B110-2では、シミュレーション1を構成するエージェントのうち、シミュレーション1のエージェントC122-3と、シミュレーション1のエージェントD122-4が稼働している。
前記シミュレーション1のエージェントC122-3の処理は、シミュレーション1のエージェントCプログラム実行ファイル123-3に記載され、前記シミュレーション1のエージェントD122-4の処理は、シミュレーション1のエージェントDプログラム実行ファイル123-4に記載され、各エージェントの処理は独立して記述されている。
負荷分散を実現するためのエージェントの移動の手順は前記実施例1の図5に示したとおりである。まず、ステップ501に示す移動するエージェントの決定では、負荷分散の目的に応じて移動するエージェント122の決定が行われる。すなわち、前記図8に記載した稼働中のエージェント122のうち、移動の対象となるエージェント122が決定される。
次に、ステップ502に示すように、前記移動の対象となるエージェント122を、移動させる計算機100が決定される。次に、ステップ503に示すように、前記移動の対象となるエージェント122の処理が記載されているエージェントプログラム実行ファイル123が選択される。
次に、ステップ504に示すように、前記移動の対象となるエージェント122の処理が記載されているエージェントプログラム実行ファイル123を、前記移動先の計算機100に移動させる。
本実施例において、移動の対象となるエージェント及びプログラム実行ファイルは、図8に示すシミュレーション1のエージェントA1(122-1A)及びシミュレーション1のエージェントA1プログラム実行ファイル123-1Aである。また、移動先は計算機B100-2である。
このように本発明の分散処理システムは、同一の処理を行うエージェント122の処理を複数のファイルに独立させておくことで、同一の処理を行うエージェントのうち幾つかのエージェントの負荷分散を前記幾つかのエージェント122のプログラム実行ファイル123の移動によって実現することができるという効果が得られる。
図9に、分散マルチエージェントシミュレーションにおいて、負荷分散を実現するためにエージェントを移動した後に、2つの計算機100で稼働する複数のエージェントを示す。
計算機A100-1でホストされるエージェント実行環境A110-1では、シミュレーション1を構成するエージェント群、即ち、シミュレーション1のエージェントB122-2と、シミュレーション1のエージェントA2(122-1B)と、シミュレーション1のエージェントワークプレースA132-1が稼働している。
また、それぞれのエージェント122の処理は、シミュレーション1のエージェントBプログラム実行ファイル123-2と、シミュレーション1のエージェントA2プログラム実行ファイル123-1Bと、シミュレーション1のエージェントワークプレースAプログラム実行ファイル133-1において、それぞれ独立して記述されている。
また、計算機B100-2でホストされるエージェント実行環境B110-2では、シミュレーション1を構成するエージェント122のうち、シミュレーション1のエージェントC123-3と、シミュレーション1のエージェントD123-4と、移動してきたシミュレーション1のエージェントA1(123-1A)が稼働している。
前記シミュレーション1のエージェントC122-3の処理は、シミュレーション1のエージェントCプログラム実行ファイル123-3に記載され、前記シミュレーション1のエージェントD122-4の処理は、シミュレーション1のエージェントDプログラム実行ファイル123-4に記載され、また、前記移動してきたシミュレーション1のエージェントA1(122-1A)の処理は、同じく移動してきたシミュレーション1のエージェントA1プログラム実行ファイル132-1Aに記載され、各エージェント122の処理は独立して記述されている。
図10は、本発明の実施例3を示し、エージェントの移動の手順を示すシーケンス図である。本実施例では、入力装置3としてマウス(図示省略)を利用し、ドラッグ&ドロップによってエージェントを他の計算機100へ移動させる例を示す。
まず、計算機A100-1の利用者は、入力装置3を操作してワークプレースAの起動を指示する(S1)。計算機A100-1は、指示されたエージェントワークプレースAプログラムファイル131-1を読み込んで実行し、エージェントワークプレースA130-1を稼働させる(S2)。
次に、利用者は入力装置3を操作してエージェントA120-1の起動を指示する(S3)。計算機A100-1は、指示されたエージェントA120-1のエージェントAプログラムファイル121-1を読み込んで実行し、エージェントA120-1を稼働させる(S4)。
同様に、利用者は、入力装置3を操作してエージェントB120-2の起動を指示する(S5)。計算機A100-1は、指示されたエージェントB120-2のエージェントBプログラムファイル121-2を読み込んで実行し、エージェントB120-2を稼働させる(S6)。
利用者は、入力装置3を操作して計算機B100-2でワークプレースBの起動を指示する(S7)。計算機A100-1は、指示された内容を計算機B100-2へ通知する。計算機B100-2はエージェントワークプレースBプログラムファイル131-2を読み込んで実行し、エージェントワークプレースB130-1を稼働させる(S8)。
利用者は、入力装置3を操作して移動対象のエージェント120を決定し(S9)、負荷分散のための移動先の計算機100を決定する(S10)。以下では、計算機A100-1のエージェントA120-1を計算機B100-2へ移動する場合について説明する。
利用者は、入力装置3を操作してエージェントA120-1の停止を支持する。(S11)。計算機A100-1は、エージェントA120-1を停止させる(S12)。利用者は、入力装置3を操作してファイラーやエクスプローラからエージェントAプログラムファイル121-1が格納されているフォルダを開く(S13)。
利用者は、入力装置3を操作してファイラーやエクスプローラから計算機B100-2の移動先となるフォルダを開く(S14)。計算機A100-1は、指示された計算機B100-2とセッションを確立する(S15)。
利用者は、入力装置3を操作してファイラーやエクスプローラからエージェントAプログラムファイル121-1を移動先のフォルダへドラッグ&ドロップによって移動を指示する(S16)。
計算機A100-1は、計算機A100-1のエージェントAプログラムファイル121-1を計算機B100-2へ転送する(S17)。利用者は、入力装置3を操作して計算機A100-1に対して、リモートで接続された計算機B100-2のエージェントA120-1の起動を指示する(S18)。計算機A100-1は、計算機B100-2にエージェントA120-1の起動を指令する(S19)。
計算機B100-2は、移動されたエージェントAプログラムファイル121-1を読み込んで実行し、エージェントA120-1を稼働させる(S20)。
上記処理により、エージェント120毎に独立して記述されたエージェントプログラムファイル121を移動させることで、計算機100間でエージェント120の移動を容易に実現することが可能となる。
なお、上記ステップS13、S14、S15のエクスプローラでフォルダを開き、エクスプローラによるコネクションを確立する処理は、エージェントA120-1を停止させる以前等の所望のタイミングで実施することができる。換言すれば、エージェントA120-1を計算機B100-2へ転送した後に計算機A100-1のエージェントA120-1を停止させてもよい。
<結び>
以上のように、上記実施例1~4の分散処理システムは以下のような構成とすることができる。
(1)プロセッサ(1)とメモリ(2)を有する複数の計算機(100)が複数のエージェント(120)の処理を実行する分散処理システムであって、前記複数の計算機(100)は、第1の計算機(100-1)と第2の計算機(100-2)を含み、前記複数のエージェント(120)は、1つのアプリケーション(シミュレーション1)を構成し、前記第1の計算機(100-1)は、第1のエージェント(120-1)の処理が記述された第1のファイル(エージェントAプログラムファイル121-1)と、第2のエージェント(120-2)の処理が記述された第2のファイル(エージェントBプログラムファイル121-2)と、を独立して有し、前記第1の計算機(120-1)は、前記第1のエージェント(120-1)の処理を実行する。
上記構成により、1つのアプリケーションを構成するエージェント群の処理を記載したファイルが独立していることで、複数の計算機におけるエージェントの配置方法が直観的となり、分散処理技術の非習熟者が簡便に、直感的に負荷を分散して分散処理(シミュレーション)を行うことができるという効果が得られる。
以上、本発明者によってなされた発明を発明の実施の形態に基づき具体的に説明したが、本発明は前記発明の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
(2)上記(1)に記載の分散処理システムであって、前記第1のエージェント(120-1)の処理は、前記第1のファイル(エージェントAプログラムファイル121-1)が格納された計算機(100)の計算資源を用いて実行される。
上記構成により、エージェントAプログラムファイル121-1を格納した計算機100の計算資源でエージェント120が実行される。
(3)上記(1)に記載の分散処理システムであって、前記第1のエージェントと前記第2のエージェントは、同一の処理を行う。
上記構成により、同一の処理を実行するエージェント120であっても、計算機100間で移動を容易に実現することが可能となる。
(4)上記(1)に記載の分散処理システムであって、前記第1のエージェントの処理が記述された第1のファイルと、前記第2のエージェントの処理が記述された第2のファイルは、それぞれが実行可能なプログラム実行ファイルである。
上記構成により、計算機100間でエージェント120の移動をする際、稼働中のエージェントを停止するなどの手間を削減することが可能となる。
(5)上記(2)に記載の分散処理システムであって、前記アプリケーションは、マルチエージェントシミュレーションである。
上記構成により、複数の計算機で独立して記述されたプログラム実行ファイルを実行することで、マルチエージェントシミュレーションを提供することが可能となる。
なお、本発明は前記の実施の形態に限定されるものではなく、様々な変形例が含まれる。前記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
100 計算機
110 エージェント実行環境
120、122 エージェント
121 エージェントプログラムファイル
121 エージェントプログラム実行ファイル
130 エージェントワークプレース
131 エージェントワークプレースプログラムファイル
116 コンピュータネットワーク

Claims (4)

  1. プロセッサとメモリを有する複数の計算機が複数のエージェントの処理を実行する分散処理システムであって、
    前記複数の計算機は、第1の計算機と第2の計算機を含み、
    前記複数のエージェントは、1つのマルチエージェントシミュレーションを構成し、
    前記第1の計算機は、第1のエージェントの処理が記述された第1のプログラム実行ファイルと、前記第1のエージェントの処理と同一の第2のエージェントの処理が記述された第2のプログラム実行ファイルと、前記複数の計算機における前記1つのマルチエージェントシミュレーションを実行する環境を提供するエージェントワークプレースの処理が記述されたエージェントワークプレースプログラム実行ファイルと、を独立して有し、
    前記第1の計算機は、
    前記第1の計算機の計算資源を用いて前記エージェントワークプレースの処理を実行し、
    前記第1の計算機の計算資源を用いて前記第1のエージェント及び前記第2のエージェントの処理を実行し、
    ユーザ指示に応じて、前記第2のエージェントの実行を停止し、
    ユーザ指示に応じて、前記第2のプログラム実行ファイルを前記第2の計算機に送信し、
    前記第2の計算機は、
    受信した前記第2のプログラム実行ファイルを格納し、
    ユーザ指示に応じて、前記第2のプログラム実行ファイルから前記第2のエージェントを起動して、前記第2の計算機の計算資源を用いて前記第2のエージェントの処理を実行する
    ことを特徴とする分散処理システム。
  2. 請求項1に記載の分散処理システムであって、
    前記1つのマルチエージェントシミュレーションは、
    ログを生成するロギングエージェントを実行する処理と、
    シミュレーションを実行するシミュレーションエージェントを複数実行する処理と、
    複数のシミュレーションエージェントを管理する時空間情報エージェントを実行する処理と、を含む分散処理システム。
  3. プロセッサとメモリを有する複数の計算機で複数のエージェントの処理を実行する分散処理方法であって、
    前記複数の計算機は、第1の計算機と第2の計算機を含み、
    前記複数のエージェントは、1つのマルチエージェントシミュレーションを構成し、
    前記第1の計算機は、第1のエージェントの処理が記述された第1のプログラム実行ファイルと、前記第1のエージェントの処理と同一の第2のエージェントの処理が記述された第2のプログラム実行ファイルと、前記複数の計算機における前記1つのマルチエージェントシミュレーションを実行する環境を提供するエージェントワークプレースの処理が記述されたエージェントワークプレースプログラム実行ファイルと、を独立して有し、
    前記第1の計算機が、
    前記第1の計算機の計算資源を用いて前記エージェントワークプレースの処理を実行し、
    前記第1の計算機の計算資源を用いて前記第1のエージェント及び前記第2のエージェントの処理を実行し、
    ユーザ指示に応じて、前記第2のエージェントの実行を停止し、
    ユーザ指示に応じて、前記第2のプログラム実行ファイルを前記第2の計算機に送信し、
    前記第2の計算機が、
    受信した前記第2のプログラム実行ファイルを格納し、
    ユーザ指示に応じて、前記第2のプログラム実行ファイルから前記第2のエージェントを起動して、前記第2の計算機の計算資源を用いて前記第2のエージェントの処理を実行する
    ことを特徴とする分散処理方法。
  4. 請求項3に記載の分散処理方法であって、
    前記1つのマルチエージェントシミュレーションは、
    ログを生成するロギングエージェントを実行する処理と、
    シミュレーションを実行するシミュレーションエージェントを複数実行する処理と、
    複数のシミュレーションエージェントを管理する時空間情報エージェントを実行する処理と、を含む分散処理方法。
JP2019146034A 2019-08-08 2019-08-08 分散処理システム及び分散処理方法 Active JP7353854B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019146034A JP7353854B2 (ja) 2019-08-08 2019-08-08 分散処理システム及び分散処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019146034A JP7353854B2 (ja) 2019-08-08 2019-08-08 分散処理システム及び分散処理方法

Publications (2)

Publication Number Publication Date
JP2021026646A JP2021026646A (ja) 2021-02-22
JP7353854B2 true JP7353854B2 (ja) 2023-10-02

Family

ID=74663093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019146034A Active JP7353854B2 (ja) 2019-08-08 2019-08-08 分散処理システム及び分散処理方法

Country Status (1)

Country Link
JP (1) JP7353854B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116382A (ja) 2007-11-01 2009-05-28 Hitachi Ltd 分散システム及び分散システムを有するコンピュータ
JP2012093842A (ja) 2010-10-25 2012-05-17 Sanken Electric Co Ltd 電源装置およびプログラム
JP2017134449A (ja) 2016-01-25 2017-08-03 株式会社エヌ・ティ・ティ・データ 分散処理装置、分散処理方法、及びプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0922348A (ja) * 1995-07-07 1997-01-21 Hitachi Ltd プログラム作成方法およびプログラム管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116382A (ja) 2007-11-01 2009-05-28 Hitachi Ltd 分散システム及び分散システムを有するコンピュータ
JP2012093842A (ja) 2010-10-25 2012-05-17 Sanken Electric Co Ltd 電源装置およびプログラム
JP2017134449A (ja) 2016-01-25 2017-08-03 株式会社エヌ・ティ・ティ・データ 分散処理装置、分散処理方法、及びプログラム

Also Published As

Publication number Publication date
JP2021026646A (ja) 2021-02-22

Similar Documents

Publication Publication Date Title
CN110520843B (zh) 集群环境中高度可用的有状态容器
CN104965757B (zh) 虚拟机热迁移的方法、虚拟机迁移管理装置及系统
Venkataraman et al. The power of choice in {Data-Aware} cluster scheduling
CN101582915B (zh) 存储系统以及使用管理装置的存储系统的管理方法
CN101506779B (zh) 生成存储系统命令
US10083057B1 (en) Migration of active virtual machines across multiple data centers
US20200028894A1 (en) Rebalancing storage i/o workloads by storage controller selection and redirection
CN112783018A (zh) 工业环境模拟下的机器人数字孪生控制
CN106528327B (zh) 一种数据处理方法以及备份服务器
CN108038201B (zh) 一种数据整合系统及其分布式数据整合系统
CN104239122A (zh) 一种虚拟机迁移方法和装置
CN104809124B (zh) 云虚拟文件系统及其输入/输出请求处理方法
WO2014184606A1 (en) Identifying workload and sizing of buffers for the purpose of volume replication
JP7353854B2 (ja) 分散処理システム及び分散処理方法
US10282176B2 (en) Management apparatus and management method
CN108153806A (zh) 数据迁移
CN103136043B (zh) 一种异步io的迁移方法、系统和网络节点
CN105653347A (zh) 一种服务器、资源管理方法及虚拟机管理器
CN104133929A (zh) 用于操纵三维场景中的组件的三维建模对象的计算机实现方法
Sauer et al. Towards intuitive robot programming using finite state automata
US20180052729A1 (en) Management computer and computer system management method
CN103631648B (zh) 一种任务处理方法及系统
Bouhouch et al. Data Migration: Cloudsim Extension
US20160004549A1 (en) Method and apparatus to conceal the configuration and processing of the replication by virtual storage
Lateș et al. Cyber Range Technology Stack Review

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230823

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230920

R150 Certificate of patent or registration of utility model

Ref document number: 7353854

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150