JP5434380B2 - 分散処理型シミュレータ - Google Patents

分散処理型シミュレータ Download PDF

Info

Publication number
JP5434380B2
JP5434380B2 JP2009198398A JP2009198398A JP5434380B2 JP 5434380 B2 JP5434380 B2 JP 5434380B2 JP 2009198398 A JP2009198398 A JP 2009198398A JP 2009198398 A JP2009198398 A JP 2009198398A JP 5434380 B2 JP5434380 B2 JP 5434380B2
Authority
JP
Japan
Prior art keywords
space
allocation
computer
communication
change
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.)
Expired - Fee Related
Application number
JP2009198398A
Other languages
English (en)
Other versions
JP2011048757A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009198398A priority Critical patent/JP5434380B2/ja
Priority to DE102010032300A priority patent/DE102010032300A1/de
Priority to US12/869,934 priority patent/US8280706B2/en
Priority to CN201010266468.7A priority patent/CN102004717B/zh
Publication of JP2011048757A publication Critical patent/JP2011048757A/ja
Application granted granted Critical
Publication of JP5434380B2 publication Critical patent/JP5434380B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Pure & Applied Mathematics (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Traffic Control Systems (AREA)

Description

本発明は、複数の計算機を用いた分散処理により実現する分散処理型シミュレータに関する。
従来、仮想環境上で個々のエージェントの挙動を模擬するシミュレータが考案されている。ここで、エージェントとして、例えば、車両やバイク、自転車、歩行者などの移動体が挙げられる。一例として、車両の挙動を模擬するシミュレータを用いて、交通量や渋滞の発生状況などを予測する技術が知られている。このような、交通流シミュレータは、道路整備やETCなどのインフラ設備の設置などの交通施策による交通の円滑化の効果を事前に評価することができるため、都市計画を行う場合の有効なツールとして活用されている。また、ドライバの認知ミス・判断ミスを模擬することで、事故の発生状況を予測することが可能な交通流シミュレータも存在する(例えば、特許文献1参照)。
交通流シミュレータは、コンピュータ内の仮想空間において、交通状況を再現する。交通流シミュレータの中でも、車両一台一台の挙動をモデル化するものは、ミクロ交通流シミュレータと呼ばれ、詳細な交通流を模擬することが可能である。大規模なシミュレーションを行うためには、複数の計算機リソースを用いて並列分散処理が行われる。
一般に、交通流シミュレータにおける分散処理では、シミュレーション対象の空間を分割して、複数の計算機リソースを割り当てた上で、各計算機リソースでは、自身に割り当てられた空間上に存在する車両の挙動を模擬する。現実世界の車両の挙動がその周辺の状況(他の車両、歩行者、信号、など)に応じて決定されるのと同様に、車両の挙動を模擬するためには、その周辺の状況(他車両情報等)を参照する必要があるが、隣接空間が別の計算機リソースに割り当てられている場合は通信によって取得しなければならない。
計算機リソース間で発生する通信量は、車両台数が増加するにつれて膨大になり、処理性能が低下してしまうという問題が存在する。そのため、並列分散処理における計算機リソース間の通信量を削減する技術として、特許文献2が存在する。
特開2007−47972号公報 特開2005−4676号公報
上記特許文献2は、複数の計算機リソースで処理されるプログラム同士が連携して動作する環境において、同じ計算機リソース内のプログラムとの通信量と、別の計算機リソース内のプログラムとの通信量を比較した結果に応じて、プログラムを処理する計算機リソースを変更するというものであり、プログラムごとに収集した通信履歴に基づいて、計算機間の通信量を削減しようとするものである。
しかしながら、交通流のシミュレーションでは、各エージェントの挙動が複雑であるため、非常に短い時間間隔(数ミリ秒)で頻繁に計算機リソース間の通信を行う必要がある。このため、通信履歴を収集するという処理負荷の高い処理を行った場合、シミュレータ全体の性能低下を招くという問題がある。また、大規模なシミュレーションを行った場合、車両台数の増加とともに通信量も増加するため、通信履歴を収集する処理負荷への影響はさらに顕著となるという問題がある。
本発明は、上記のような点に鑑みてなされたものであり、分散処理型シミュレータにおいて、計算機間の通信量を低減することを目的する。
上記の目的を達成するために、以下に開示するシミュレータは、仮想空間に存在する複数のエージェントの挙動の模擬を、互いに通信可能な複数の計算機を用いた分散処理により実現するシミュレータであって、前記計算機の少なくとも2つは、前記仮想空間の各分割空間についての分割範囲と、当該各分割空間に存在するエージェントにかかる処理が割り当てられている計算機とを空間割当情報として記憶する、空間割当記憶部にアクセス可能であり、前記空間割当記憶部を参照して、少なくとも1つの隣接空間が他の計算機に割り当てられている分割空間の中から、割当を変更する候補となる分割空間を割当変更候補空間として抽出する割当変更候補空間抽出部と、前記割当変更候補空間を割当対象となる計算機に割り当てた場合に、前記割当変更候補空間およびこれに隣接する分割空間に存在するエージェントの個数に基づいて、前記割当対象となる計算機とその他の計算機との間に生じる通信量または通信変化量を算出する通信量見積部と、前記通信量見積部において算出された通信量または通信変化量に基づいて、前記割当変更候補空間を前記割当対象となる計算機に割り当てるか否かを決定する空間割当変更判断部とを備える。
本願明細書の開示によれば、分散処理型シミュレータにおいて、計算機間の通信量を大幅に低減することが可能となる。
第1の実施形態における計算機を含む分散処理型シミュレータの構成の例を示す図である。 図1に示す各計算機に仮想空間内の所定領域を割り当て、複数のエージェントの挙動を模擬する場合を示す模式図の例を示す図である。 図2に示す所定領域における車両エージェントと道路地図との関係を示す模式図の例を示す図である。 図1に示す計算機Aの構成例を示す機能ブロック図の例を示す図である。 図1〜3に示した計算機をCPUを用いて実現したハードウェア構成の例を示す図である。 計算機PC1から計算機PC2へ割当変更候補空間の割当を変更する前後における通信状況を模式的に示す図である。 計算機のCPU23で実行されるシミュレーションプログラムに基づく処理を示すオペレーションチャートの一例を示す図である。 シミュレータを構成する一部の計算機(PC1〜3)に割り当てられている複数の分割空間の例を示す図である。 空間割当情報26bの一例を示す図である。 エージェント情報26cの一例を示す図である。 シミュレーションプログラムを実行する場合において、シミュレータにシミュレーション条件を与えるための管理画面の一例を示す図である。 計算機PC1から計算機PC2へ、割当変更候補空間の割当を変更する前後における通信状況を模式的に示す図である。 本実施形態にかかる計算機のCPU23で実行されるシミュレーションプログラムに基づく処理の一例を示すオペレーションチャートを示す図である。 本実施形態の変形例にかかる計算機のCPU23で実行されるシミュレーションプログラムに基づく処理の一例を示すオペレーションチャートを示す図である。 本実施形態にかかる分散処理型シミュレータの構成の例を示す図である。 計算機PC1(移動元)から計算機PC2(移動先)へ、割当変更候補空間の割当変更を要求する場合の一例を模式的に示す図である。 移動元となる計算機(例えば、PC1)のCPU23で実行されるシミュレーションプログラムに基づく処理の一例を示すオペレーションチャートを示す図である。 移動先の候補となる計算機(例えば、PC2)のCPU23で実行されるシミュレーションプログラムに基づく処理の一例を示すオペレーションチャートを示す図である。 計算機PC1から計算機PC2へ、割当変更候補空間の割当を変更する場合における状況の一例を模式的に示す図である。
以下においては、本発明の実施形態について図面を用いて具体的に説明する。
[1.第1の実施形態]
本実施形態にかかるシミュレータは、空間を分割して複数の計算機リソースに割り当てて分散処理を行う交通流シミュレータである。この場合、エージェントは、例えば車両や歩行者等の移動体とすることができるが、本実施形態においては、車両をエージェントとする場合について説明する。
本実施形態の交通シミュレーションは、ある空間内に存在する車両の挙動を計算する際には、隣接する空間内に存在する車両の情報を参照する。隣接する空間が別の計算機に割り当てられている場合には通信が発生する(参照による通信)。例えば、参照される車両情報のデータサイズは固定である場合、発生する通信量は隣接空間内に存在する車両台数に比例する。この場合、隣接する空間が別の計算機に割り当てられている空間iとその隣接空間に存在する車両数に基づいて、現在の通信量、及び、空間iの割当てを変更した場合に発生する通信量を算出することが可能である。なお、ここでいう通信量は、計算機リソース間において発生する通信量であり、バスを介したCPU間または、ネットワークを介したコンピュータ間の通信を含む概念である。
各計算機は、割り当てられたある分割空間における処理を、その隣接空間が割り当てられた別の計算機で行った場合の通信量の見積もりを、空間内の車両台数に基づいて行う。そして、見積もった各通信量を比較して、各計算機間における分割空間の割り当てを変更する。空間内に存在する車両台数から通信量の見積もりを行うため、通信履歴を必要としない。また、自計算機に割り当てられた複数の空間のうち、隣接する空間が別の計算機リソースに割り当てられている空間のみについて、上記の処理を行えばよいため、処理負荷を増大させることなく通信量を低減することが可能である。
[1−1.システム構成]
図1は、本実施形態における分散処理型の交通流シミュレータのシステム構成の例を示す図である。図1に示す例では、複数の計算機A〜DがネットワークNを介して接続されている。計算機A〜Dは、仮想空間に存在する複数のエージェントの挙動の模擬を、分散処理により実現する。計算機A〜Dは、それぞれ、プロセッサとメモリと通信インターフェースを少なくとも備える独立したハードウェアである。なお、分散処理を実現する複数の計算機は、必ずしも独立した計算機である必要はない。例えば、複数のCPUを備えるマルチプロセッサ型コンピュータにおいて、各CPUが、複数の計算機を連携して機能して分散処理を実現してもよい。すなわち、各計算機は、互いにデータ通信を行い、ぞれぞれでデータ処理を実行するためのリソースであればよく、特定の形態に限定されない。また、計算機の数は、図1に示す例に限られない。
各計算機A〜Dには、前記仮想空間における対象領域がそれぞれ割り当てられる。各計算機A〜Dは、割り当てられた対象領域におけるエージェントの挙動を模擬するシミュレータとなる。つまり、各計算機A〜Dは、仮想空間に存在する複数の車両エージェントの挙動の模擬を、複数の計算機を用いた分散処理により実現する交通流シミュレータとして機能する。
図2Aは、図1に示す各計算機に仮想空間内の所定領域を割り当て、複数のエージェントの挙動を模擬する場合を示す模式図の例を示す図である。図2Aに示す例では、計算機A〜Dを含む複数の計算機が相互に接続可能に構成されており、各計算機は自己に割り当てられた空間領域内の車両エージェントの挙動を模擬する処理を実行するとともに、車両エージェントの情報(位置、速度等)を他の計算機と相互に送受信する。例えば、計算機Aは、割り当てられた領域Aに存在する各車両エージェントの挙動を模擬する処理を実行するとともに、各車両エージェントの情報(位置、速度等)を他の計算機(計算機B等)と相互に交換する。
図2Bは、図2Aに示す所定領域(例えば領域A)におけるエージェントと道路地図との関係を示す模式図の例を示す図である。例えば、領域Aに存在する車両エージェントは、道路地図上の道路を移動する場合における挙動が模擬される。
計算機の少なくとも1つは、仮想空間の各分割空間についての分割範囲と、当該各分割空間に存在するエージェントにかかる処理が事前に割り当てられている計算機とを空間割当情報として記憶する、空間割当記憶部にアクセス可能である。また、この計算機は、空間割当記憶部を参照して、少なくとも1つの隣接空間が他の計算機に割り当てられている分割空間の中から、割当を変更する候補となる分割空間を割当変更候補空間として抽出する。この計算機は、割当変更候補空間を割当対象となる計算機に割り当てた場合に、割当変更候補空間およびこれに隣接する分割空間に存在するエージェントの個数に基づいて、割当対象となる計算機とその他の計算機との間に生じる通信量または通信変化量を算出する。この計算機は、算出された通信量または通信変化量に基づいて、割当変更候補空間を割当対象となる計算機に割り当てるか否かを決定する。この計算機は、空間割当記憶部に記憶された空間割当情報を更新する空間割当管理部を備える。この計算機は、上記決定にしたがって、空間割当管理部および前記割当対象となる計算機の前記空間割当管理部に対して空間割当情報の更新を要求する。
具体的には、この計算機は、割当変更候補空間と他の計算機の分割空間との間に現在発生している通信量を、割当変更前通信量として算出するとともに、前記割当変更候補空間を前記割当対象となる計算機に割り当てた場合に、前記割当変更候補空間と前記割当対象となる計算機以外の計算機の分割空間との間に発生すると予想される通信量を、割当変更後通信量として算出する。そして、この計算機は、割当変更後通信量が前記割当変更前通信量よりも小さい場合に、割当変更候補空間を割当対象となる計算機に割り当てることを決定する。
本発明の一実施形態にかかるシミュレータでは、隣接空間の間で発生する通信量を車両台数に基づいて算出するため、従来に比べて新たな処理負荷の増加を抑えられる。そのため、非常に高頻度で通信を行う交通流シミュレータにおいても、計算機リソース間の通信量(ネットワーク負荷)を低減することができる。
例えば、分散処理を行う交通流シミュレータにおいては、計算機リソース間の通信量を増大させないためには、車両が固まって存在する空間を同じ計算機リソースに割り当てる必要がある。しかしながら、都市レベルの広域を対象とした交通シミュレーションでは、人間が、車両が固まって存在する空間を見つけ出し、同じ計算機リソースに割り当てるのは、膨大なコストが必要であった。また、交通状況は時々刻々と変化するため、そのような作業を人手で行うのは、現実には不可能であった。
これに対し、本発明の一実施形態にかかるシミュレータにおいては、シミュレーション対象の空間の増加に対するスケーラビリティと、空間の割り当てを動的に行うことに起因する交通状況の変化に対するフレキシビリティを併せ持つことができる。
[1−2.機能ブロック図]
図3は、図1に示す計算機A(識別IDを「PC1」とする。)の機能ブロック図の例を示す図である。他の計算機B〜D等も、計算機Aと同様の構成にすることができる。なお、計算機Aと同様の構成にする他の計算機の個数は1以上であることが望ましい。また、計算機Aのみを以下に示す構成としてもよい。
図3に示す例では、計算機Aは、空間割当記憶部101、空間割当管理部102、エージェント情報記憶部103、シミュレーション実行部104、エージェント情報送信部105、エージェント情報受信部106、空間内エージェント数取得部107、割当変更候補空間抽出部108、通信量見積部109、空間割当変更判断部110および、空間割当変更実行部111を備える。
空間割当記憶部101は、仮想空間の各分割空間について、分割範囲と割り当てられた計算機を記述した空間割当情報を記憶する。空間割当管理部102は、空間割当管理部に記憶された空間割当情報を更新する。エージェント情報記憶部103は、エージェントの少なくとも位置に関する情報を含んだエージェント情報を記憶する。
シミュレーション実行部104は、仮想空間のうち計算機A(PC1)に割り当てられた対象領域の地図情報、エージェントの少なくとも位置に関する情報を含んだエージェント情報、及び他の計算機に割り当てられた領域を示す領域割当情報を参照して計算機Aの対象領域内における各エージェントの挙動を模擬し、前記各エージェントのエージェント情報を更新する処理を繰り返し実行する。エージェント情報送信部105は、他の計算機リソースにエージェント情報を送信する。エージェント情報受信部106は、他の計算機リソースからエージェント情報を受信する。
空間内エージェント数取得部107は、分割空間の範囲とエージェントの位置を参照して、各分割空間内に存在するエージェントの数を取得する。割当変更候補空間抽出部108は、隣接空間が別の計算機に割り当てられた分割空間の中から割当を変更する候補となる分割空間を抽出する。通信量見積部109は、エージェント数に基づき、ある分割空間と隣接空間との間の通信量を算出する。空間割当変更判断部110は、割り当て変更候補空間の割当変更時と現在の割り当てのそれぞれの通信量を比較して、割当変更後の方が小さければ、割り当て変更することを決定する。空間割当変更実行部111は、全ての計算機の空間割当管理部に対して空間割当の変更を要求するとともに、エージェント情報送信部105に対して割り当てを変更する空間内のエージェント情報を割り当て変更先の計算機に送信するように依頼する。
なお、図3の計算機Aにおいて示す各機能部は、プログラムによって実現されるCPUの機能を含む概念である。ここで、プログラムとは、CPUにより直接実行可能なプログラムだけでなく、ソース形式のプログラム、圧縮処理がされたプログラム、暗号化されたプログラム等を含む概念である。
[1−3.計算機のハードウェア構成]
図4は、図1〜3に示した計算機をCPUを用いて実現したハードウェア構成の例を示す図である。上記計算機は、ディスプレイ21、CPU23、メモリ24、キーボード/マウス25、ハードディスク26、光学式ドライブ27および通信回路28を備える。なお、ディスプレイ21、キーボード/マウス25または光学式ドライブ27は、シミュレータを構成するいずれか1つの計算機に存在するようにしてもよい。
ハードディスク26には、OS(オペレーティング・システム、図示せず。)、シミュレーションプログラム26a、空間割当情報26b、エージェント情報26c等が記録される。なお、メモリ25に、オペレーティング・システム(OS)(図示せず。)、シミュレーションプログラム26a、空間割当情報26b、エージェント情報26c等の全部または一部を記録する構成としてもよい。
シミュレーションプログラム26aは、光学式ドライブ27を介して、例えば、CD−ROM等の光学式ディスク27aに記録されたプログラムを読み出してインストールされたものである。なお、上記インストールは、通信回路28を用いてネットワークNを介してサーバ装置等に記録されたプログラムをダウンロードして行うようにしてもよい。CPU23は、OSおよびシミュレーションプログラム26a等に基づいた処理を実行する。なお、本実施形態では、シミュレーションの実行結果を保存していないが保存しておき、後で、シミュレーションの実行結果を表示するようにしてもよい。
図3に示した計算機Aを構成する空間割当記憶部101およびエージェント情報記憶部103は、ハードディスク26に記録される空間割当情報26bおよびエージェント情報26cにそれぞれ該当する。図3に示した計算機Aを構成する空間割当管理部102、シミュレーション実行部104、エージェント情報送信部105、エージェント情報受信部106、空間内エージェント数取得部107、割当変更候補空間抽出部108、通信量見積部109、空間割当変更判断部110および、空間割当変更実行部111は、CPU23上においてシミュレーションプログラム26aを実行することによって実現される。
[1−4.処理の概要]
図5は、計算機PC1から計算機PC2へ割当変更候補空間の割当を変更する前後における通信状況を模式的に示す図である。図5の左側(a)に示すように、割当変更前におけるPC1の割当変更候補空間Siは、PC2の分割空間Srと通信している。このため、計算機PC1と計算機PC2と間における割当変更前通信量は、例えば、以下の式で表すことができる。
割当変更前通信量=(分割空間(Si、Sr)内に存在する車両の台数) × Du
ここで、Duは、車両1台あたりに通信するデータ量である。
PC1の割当変更候補空間Siが、PC2に移動すると、図5の右側(b)に示すように、割当変更後におけるPC2の割当変更候補空間Siは、PC1の分割空間Su、Sl、Sdと通信している。このため、計算機PC1と計算機PC2と間における割当変更後通信量は、以下の式で表される。
割当変更後通信量=(分割空間(Si、Su、Sd、Sl)内に存在する車両の台数) × Du
よって、PC1の割当変更候補空間SiをPC2に移動させた場合において、割当変更候補空間Siにかかる計算機PC1と計算機PC2と間における通信量である割当変更後通信量が、PC1の割当変更候補空間SiをPC2に移動させる前の、割当変更候補空間Siにかかる計算機PC1と計算機PC2と間における通信量である割当変更前通信量よりも小さくなる場合には、計算機PC1と計算機PC2と間における通信量を削減することができると予想できる。
[1−5.シミュレーションプログラムの処理内容]
図6〜図10を用いて、上記計算機におけるシミュレーションプログラムの処理内容を説明する。図6は、計算機のCPU23で実行されるシミュレーションプログラムに基づく処理を示すオペレーションチャートの一例を示す図である。図7は、本実施形態にかかる交通流シミュレータを構成する一部の計算機(PC1〜3)に割り当てられている複数の分割空間の例を示す図である。図8は、空間割当情報26bの一例を示す図である。図9は、エージェント情報26cの一例を示す図である。図10は、シミュレーションプログラムを実行する場合において、シミュレータにシミュレーション条件を与えるための管理画面の一例である。
なお、図10に示す管理画面1000は、ネットワークN上のいずれか1つの計算機のディスプレイ21上に表示され、いずれか1つの計算機のキーボード/マウス25を用いて入力できればよい。管理画面に入力されたシミュレーション条件は、各計算機のシミュレーションプログラムに参照可能に構成される。
ここでは、図7に示すPC1、PC2およびPC3の各計算機に割り当てられた各分割空間が、他の計算機の分割空間と隣接する場合において、計算機間の通信量を削減させる処理について説明する。図10に示す管理画面1000に示すように、本実施形態の交通流シミュレーションの条件として、シミュレーションを実行する時間を示すシミュレーション時間1001を「600min」、計算機の個数を示すプロセッサ数1002を「1000台」、道路地図に対応する領域の大きさを示す分割空間の一辺の長さ1003を「100m」、車両の移動に伴う通信量の増加度合いを示す移動ペナルティ算出係数1004を「1000」としている。なお、移動ペナルティ算出係数1004については、別の実施形態で説明する。
シミュレーションプログラムを実行する計算機PC1のCPU23は、ハードディスク26の空間割当情報26b(図8)およびエージェント情報26c(図9)を参照して、各分割空間内に存在する車両エージェントの数を取得する(オペレーションS600)。例えば、図7に示すように、本実施形態では一例として、各分割空間を略矩形形状としている。このため、図8に示すように、分割空間ID801で識別される分割空間を特定するための分割範囲802は、矩形形状における2つの対角座標(例えば、地図上の南西座標と北東座標)を用いて表現している。
CPU23は、エージェント情報26c(図9)を参照してエージェントID901で識別される各車両エージェントの位置座標902が、各分割空間の分割範囲802(図8)にあるか否かに基づいて、各分割空間内に存在する車両エージェントの数を取得する。
CPU23は、ハードディスク26の空間割当情報26bを参照し、割当変更候補空間iが存在するか否かを判断する(オペレーションS601)。例えば、図8に示す空間割当情報26bにおいて、CPU23は、担当計算機803が自己の計算機ID「PC1」である分割空間ID「Su」、「Sl」、「Si」を抽出する。続いて、CPU23は、抽出した各分割空間(以下、分割空間Su、分割空間Sl、分割空間Si等と表記する。)について、上述した分割範囲802における座標の一部が一致するか否か基づいて、隣接空間が他の計算機(PC2またはPC3)に割り当てられている分割空間IDを抽出する。例えば、図7において、分割空間Si701の隣接空間として、分割空間Sr702およびSd703を抽出する。
ここで、一例として、CPU23は、抽出した各分割空間内の車両エージェントの数が所定閾値以上であるか否かに基づいて、抽出した分割空間を割当変更候補空間iとするか否かを判断する。なぜなら、車両エージェントの数が多いほど通信量が多く発生している可能性が高く、分割空間の割当て変更により、計算機間の通信量を低減する効果が期待できるからである。
例えば、分割空間Si内の車両エージェント数が所定閾値以上である場合に、分割空間Siを割当変更候補空間iとすることができる。また、隣接空間Sr内の車両エージェント数が所定閾値以上である場合に、分割空間Siを割当変更候補空間iとしてもよい。さらに、分割空間Siと隣接空間Sr内の車両エージェント数の和が所定閾値以上である場合に、分割空間Siを割当変更候補空間iとしてもよい。さらに加えて、分割空間Siと隣接空間Sr内の車両エージェント数の和が所定閾値以上であり、かつ、分割空間Siの方が隣接空間Srよりも車両エージェント数が少ない場合に、分割空間Siを割当変更候補空間iとしてもよい。なお、抽出した各分割空間内の車両エージェントの数に基づいて割当変更候補空間iを判断する条件は、上記に限られず、エージェントの挙動傾向やシミュレーション条件等によって適宜決定すればよい。
CPU23は、割当変更候補空間iと隣接空間との間の現在の通信量を算出する(オペレーションS602)。通信量を算出する場合の一例を以下に示す。例えば、Nxを「分割空間Sxに存在する車両台数」、Drを「車両データ量(参照)」、Duを「Dr×単位時間当たりの参照頻度」とする。なお、ここでいう「参照」とは、他の計算機に割り当てられた分割空間に存在する車両エージェントにかかる情報(位置、速度等)を通信することをいい、この通信は各計算機間において常時行われる。
現在の通信量として、PC1で分割空間Siを処理する場合の通信量D1は、例えば、下記の式により算出できる。
D1 = (Ni×2+Nr+Nd) × Du
なお、ここで、「Ni×2」としているのは、PC1からPC2への通信と、PC1からPC3への通信があることを考慮したものである。
CPU23は、割当変更候補空間iを別の計算機に割り当てた場合における、割当変更候補空間iと隣接空間との間の通信量を算出する(オペレーションS603)。
現在PC1にある割当変更候補空間iを別の計算機PC2に割り当てて分割空間Siを処理する場合の通信量D2は、下記の式により算出できる。
D2 = (Ni×2+Nu+Nl+Nd) × Du
なお、ここで、「Ni×2」としているのは、PC2からPC1への通信と、PC2からPC3への通信があることを考慮したものである。
同様に、割当変更候補空間iを別の計算機PC3に割り当てて分割空間Siを処理する場合の通信量D3は、下記の式により算出できる。
D3 = (Ni×2+Nu+Nl+Nr) × Du
なお、ここで、「Ni×2」としているのは、PC3からPC1への通信と、PC3からPC1への通信があることを考慮したものである。
CPU23は、割当変更後の通信量が現在の通信量(割当変更前の通信量)よりも小さくなるか否かを判断する(オペレーションS604)。例えば、上記式において、Ni=20,Nu=1,Nl=1,Nr=10,Nd=5とすると、D1、D2、D3は下記の式によりそれぞれ算出できる。
D1=55×Du 、 D2=47×Du 、 D3=52×Du
この場合、Duは固定値であるので、D2が最小の通信量と判断でき、割当変更後の通信量D2が現在の通信量(割当変更前の通信量)D1よりも小さくなる。
一方、Ni=20,Nu=8,Nl=7,Nr=10,Nd=5とすると、D1、D2、D3は下記の式によりそれぞれ算出できる。
D1=55×Du 、 D2=60×Du 、 D3=65×Du
この場合、Duは固定値であるので、D1が最小の通信量と判断でき、割当変更後の通信量D2,D3は現在の通信量(割当変更前の通信量)D1よりも小さくならない。
CPU23は、割当変更後の通信量が現在の通信量(割当変更前の通信量)よりも小さくなる場合があると判断すれば(オペレーションS604、Yes)、割当変更候補空間iの割当てを変更する(オペレーションS605)。具体的には、空間割当情報26b(図8)において、割当変更候補空間iの担当計算機を、割当て先の対象となった計算機のIDに更新する。また、割当て先の対象となった計算機を含む全ての計算機に対して、空間割当情報26bの割当変更候補空間iの担当計算機を、割当て先の対象となった計算機のIDに更新するように要求する。
例えば、割当変更候補空間Siについて、PC1からPC2に割当てを変更する場合には、空間割当情報26b(図8)において、割当変更候補空間Siの担当計算機「PC1」を、割当て先の対象となった計算機のID「PC2」に更新し、同様の更新をネットワークN上の全ての計算機(PC2、PC3、…)に要求する。
CPU23は、割当変更候補空間Siに存在する車両エージェントのデータを移動させる(オペレーションS606)。具体的には、割当変更候補空間Siに存在する車両エージェントの各データをエージェント情報26c(図9)から抽出して、割当変更候補空間Siの割当て先の対象となった計算機に送信する。例えば、割当変更候補空間Siに、エージェントID901が「A2」の車両エージェントが存在している場合、エージェント情報26cに記録されているエージェントID901「A2」のデータ(位置座標902、速度903、車種情報904、操作量905、走行距離906、走行時間907、目的地情報908、ドライバ特性909等)を、計算機PC2に送信する。
送信を受けて、割当変更先の計算機PC2は、エージェントID901が「A2」のデータを、計算機PC2のハードディスク26上に記録されているエージェント情報26cに記録する。これにより、割当変更候補空間Siに存在する車両エージェントの挙動の模擬を、計算機PC1から計算機PC2に割当てを変更して処理させることができる。そして、計算機PC1と計算機PC2との間における割当変更候補空間Siの割当変更後の通信量は、割当変更前の通信量に比べて小さいため、割当変更候補空間Siにかかる通信量を削減することができる。
図3の機能ブロック図において示した「割当変更候補空間抽出部」は、一例として、図6のオペレーションS600,S601の処理機能を含む。また、「通信量見積部」は、一例として、図6のオペレーションS602,S603の処理機能を含む。さらに、「空間割当変更判断部」は、一例として、図6のオペレーションS604の処理機能を含む。さらに、「空間割当管理部」は、一例として、図6のオペレーションS605の処理機能を含む。さらに、「空間割当変更実行部」は、一例として、図6のオペレーションS606の処理機能を含む。
[2.第2の実施形態]
本実施形態にかかるシミュレータの計算機は、割当変更候補空間の隣接空間であって自己の計算機に割り当てられている隣接空間と、割当対象となる計算機の各分割空間との間に現在発生している通信量を考慮して、割当変更候補空間を割当対象となる計算機に移動させた場合の通信変化量を算出し、計算機間全体において通信量が削減できるか否かを判断する。これにより、割当変更候補空間だけでなく、隣接空間がどの計算機と通信しているかまで考慮することによって、全体の通信量が削減するように空間割当を変更することが可能となる。つまり、隣接空間の間で発生する通信量を車両台数に基づいて算出して通信量の削減の可否を判断する場合に、計算機間で発生する通信量の実質的な変動を考慮することができる。
[2−1.処理の概要]
本実施形態にかかる分散処理型シミュレータの構成、本実施形態の各計算機に仮想空間内の所定領域を割り当て、複数のエージェントの挙動を模擬する場合を示す模式図、本実施形態の所定領域における車両エージェントと道路地図との関係を示す模式図、本実施形態の計算機の構成例を示す機能ブロック図および、この計算機をCPUを用いて実現したハードウェア構成は、それぞれ第1の実施形態において示した図1〜4と同様である。本実施形態では、第1の実施形態と同様、計算機A(PC1)、計算機B(PC2)および、計算機C(PC3)を用いて分散処理を行う例を説明する。シミュレーション対象とする分割空間の初期割り当て状況は第1の実施形態と同じとする。
図11は、計算機PC1から計算機PC2へ、割当変更候補空間の割当を変更する前後における通信状況を模式的に示す図である。図11に示すように、PC1における割当変更候補空間Siの隣接空間SuおよびSdは、割当変更前後において、PC2の分割空間SaおよびSbとそれぞれ通信している。よって、PC1の割当変更候補空間SiをPC2に移動させたとしても、PC1の分割空間SuおよびSdと、PC2の各分割空間との通信量に変動はない。すなわち、割当変更候補空間SiをPC2に移動させた後において、PC2の割当変更候補空間SiとPC1の分割空間SuおよびSdとの通信が発生したとしても、この通信によってPC1とPC2との間において通信量が増加するものではない。
[2−2.シミュレーションプログラムの処理内容]
図12は、本実施形態にかかる計算機のCPU23で実行されるシミュレーションプログラムに基づく処理を示すオペレーションチャートの一例を示す図である。また、本実施形態にかかる交通流シミュレータを構成する一部の計算機(PC1〜3)に割り当てられている複数の分割空間、空間割当情報26b、エージェント情報26cは、それぞれ第1の実施形態において示した図7〜9と同様である。本実施形態においては、第1の実施形態と同様に、図7に示すように、PC1、PC2およびPC3の各計算機間における通信量を削減させる処理について説明する。
図12におけるオペレーションS1200、S1201、S1204およびS1205の各処理は、第1の実施形態で説明したオペレーションS600、S601、S605および、S606の各処理と同様である。よって、図12のオペレーションS1202およびS1203について説明する。
CPU23は、割当変更候補空間iを別の計算機に割り当てた場合の通信変化量を算出する(オペレーションS1202)。通信量を算出する場合の一例を以下に示す。第1の実施形態と同様に、例えば、Nxを「分割空間Sxに存在する車両台数」、Drを「車両データ量(参照)」、Duを「Dr×単位時間当たりの参照頻度」とする。なお、ここでいう「参照」とは、他の計算機に割り当てられた分割空間に存在する車両エージェントにかかる情報(位置、速度等)を通信することをいい、この通信は各計算機間において常時行われる。
PC1で分割空間Siを処理する場合の通信変化量R1は、割当変更候補空間iの割当先に変更がないので、通信変化量R1は0である。
また、割当変更候補空間iを別の計算機PC2に割り当てて分割空間Siを処理する場合の通信変化量R2は、下記の式により算出できる。
R2 = (+Nl−Nr) × Du
さらに、割当変更候補空間iを別の計算機PC3に割り当てて分割空間Siを処理する場合の通信変化量R3は、下記の式により算出できる。
R3 = (+Nl−Nd) × Du
例えば、上記式において、Ni=20,Nu=1,Nl=1,Nr=10,Nd=5とすると、R1、R2、R3は下記の式によりそれぞれ算出できる。
R1=0 、 R2=−9×Du 、 R3=−4×Du
この場合、Duは固定値であるので、R2が最小の通信変化量と判断でき、PC2への割当変更後の通信量が現在の通信量(割当変更前の通信量)よりも小さくなると予想できる。
一方、Ni=20,Nu=8,Nl=7,Nr=10,Nd=5とすると、R1、R2、R3は下記の式によりそれぞれ算出できる。
R1=0 、 R2=−3×Du 、 R3=+3×Du
この場合、Duは固定値であるので、R2が最小の通信変化量と判断でき、PC2への割当変更後の通信量が現在の通信量(割当変更前の通信量)よりも小さくなると予想できる。
CPU23は、割当変更後の通信量が現在の通信量(割当変更前の通信量)よりも小さくなると判断すれば(オペレーションS1203、Yes)、割当変更候補空間iの割当てを変更する(オペレーションS1204)。
以上により、隣接空間の間で発生する通信量を車両台数に基づいて算出して通信量の削減の可否を判断する場合に、計算機間で発生する通信量の実質的な変動を考慮することができる。
[2−3.変形例]
割当変更候補空間iを別の計算機に割り当てる場合、割り当て変更に伴う処理が必要となる。例えば、割当変更候補空間iに存在するすべての車両エージェントのデータを、移動先の計算機に送信する処理が必要となる。そこで、このような処理コストをペナルティとして表現し、このペナルティと通信削減量との比較を行い、通信削減量がペナルティよりも大きい場合に割当を変更するように構成してもよい。なお、この場合、車両数に比例したペナルティを設定するのが妥当である。
これにより、割当変更に伴う割当変更候補空間内の車両データの移動により、逆に通信量が増加してしまうことを防止して、割当変更による通信量の削減効果を高めることができる。
図13は、本実施形態の変形例にかかる計算機のCPU23で実行されるシミュレーションプログラムに基づく処理を示すオペレーションチャートの一例を示す図である。
図13におけるオペレーションS1200〜S1203、S1204〜S1205の各処理は、図12で説明した各処理と同様である。図13では、オペレーションS1203に続いて、オペレーションS1203aを実行する。S1203では、算出した通信変化量のうち最も削減効果の大きい移動先の計算機に割当変更候補空間iを移動させた場合における通信削減量が、所定の割当変更ペナルティより大きくなる場合に、S1204を実行して空間割当を変更する構成としている。割当変更ペナルティを算出する場合の一例を以下に示す。例えば、Pxを「空間Sxに割り当てを変更する場合のペナルティ」、Nxを「空間Sxに存在する車両台数」、Aを「比例定数」とする。なお、Nxは、車両台数の他に、車両の移動に伴うデータ量や通信回線の負荷状況、計算機の処理能力等に基づく値であってもよい。Aには、図10に示す管理画面1000により入力された移動ペナルティ算出係数1004を用いる。
PC1で分割空間Siを処理する場合のペナルティP1は、割当変更候補空間iの割当先に変更がないので、0である。
また、割当変更候補空間iを別の計算機PC2に割り当てて分割空間Siを処理する場合のペナルティP1は、下記の式により算出できる。
P2 = Ni × A
さらに、割当変更候補空間iを別の計算機PC3に割り当てて分割空間Siを処理する場合のペナルティP3は、下記の式により算出できる。
P3 = Ni × A
CPU23は、ペナルティを考慮しても割当変更後の通信量が現在の通信量(割当変更前の通信量)よりも小さくなると判断すれば(オペレーションS1203a、Yes)、割当変更候補空間iの割当てを変更する(オペレーションS1204)。
以上により、割当変更に伴う割当変更候補空間内の車両データの移動により、逆に通信量が増加してしまうことを防止して、割当変更による通信量の削減効果を高めることができる。
[3.第3の実施形態]
本実施形態にかかるシミュレータの計算機において、空間割当てを変更するのは、変更先の計算機リソースの処理負荷が許容範囲であるときに限る。そのために、変更元の計算機リソースの空間割当変更部は、変更先の計算機リソースが割当て変更を許諾するかを問い合わせる。交通シミュレーションでは、処理負荷はシミュレーション対象の車両数にほぼ比例すると考えられるので、変更先の計算機は、車両数が上限値を越えない場合に許諾するようにすればよい。
本実施形態にかかるシミュレータの計算機は、自己の処理負荷を算出して監視する。この計算機は、算出した処理負荷が所定閾値以下であるときに、他の計算機からの空間割当の変更の要求を許可する。特に、この計算機は、自己に割り当てられた分割空間に存在するエージェントの個数に基づいて、自己の処理負荷を算出する。これにより、所定の計算機に、割当変更候補空間の割当変更の処理が特定の計算機に集中して、この計算機の処理負荷が許容範囲を超えてしまうことを防止することができる。
[3−1.処理の概要]
本実施形態にかかる分散処理型シミュレータの構成、本実施形態の各計算機に仮想空間内の所定領域を割り当て、複数のエージェントの挙動を模擬する場合を示す模式図、本実施形態の所定領域における車両エージェントと道路地図との関係を示す模式図、本実施形態の計算機をCPUを用いて実現したハードウェア構成は、それぞれ第1の実施形態において示した図1〜4と同様である。
図14は、本実施形態にかかる分散処理型シミュレータを構成する計算機Aの機能ブロック図の例を示す図である。図14の構成では、図3において示した計算機Aの各機能部に加えて、処理負荷監視部140をさらに備える。
本実施形態では、第1の実施形態と同様、計算機A(PC1)、計算機B(PC2)および、計算機C(PC3)を用いて分散処理を行う例を説明する。シミュレーション対象とする分割空間の初期割り当て状況は第1の実施形態と同じとする。
図15は、計算機PC1(移動元)から計算機PC2(移動先)へ、割当変更候補空間の割当変更を要求する場合を模式的に示す図である。PC1の空間割当変更実行部は、割当変更候補空間SiをPC2へ割当て変更により移動させた方が全体の通信量を削減できると判断した場合、PC2に対して空間割当変更要求を行う。
PC1からの空間割当変更要求を受けて、PC2の空間割当変更実行部は、PC2における処理負荷を適宜監視している処理負荷監視部から処理負荷を取得し、処理負荷が所定閾値以下である場合にPC1からの空間割当変更要求を許可する。この場合、割当変更候補空間Siは、PC1およびPC2のそれぞれの空間割当管理部によって、PC2で処理されるように空間割当記憶部を更新する。一方、処理負荷が所定閾値を超えている場合にはPC1からの空間割当変更要求を却下する。この場合、割当変更候補空間Siの割当は変更されない。
[3−2.シミュレーションプログラムの処理内容]
図16は、移動元となる計算機(例えば、PC1)のCPU23で実行されるシミュレーションプログラムに基づく処理を示すオペレーションチャートの一例を示す図である。図17は、移動先の候補となる計算機(例えば、PC2)のCPU23で実行されるシミュレーションプログラムに基づく処理を示すオペレーションチャートの一例を示す図である。また、本実施形態にかかる交通流シミュレータを構成する一部の計算機(PC1〜3)に割り当てられている複数の分割空間、空間割当情報26b、エージェント情報26cは、それぞれ第1の実施形態において示した図7〜9と同様である。本実施形態においては、第2の実施形態と同様に、図7に示すように、PC1、PC2およびPC3の各計算機間における通信量を削減させる処理について説明する。
図16におけるオペレーションS1600〜S1603、1606および、S1607の各処理は、第2の実施形態で説明したオペレーションS1200〜S1205の各処理と同様である。よって、図16のオペレーションS1604およびS1605について説明する。
CPU23は、割当変更候補空間iを別の計算機に割り当てた場合の通信変化量を算出し(オペレーションS1602)、割当変更候補空間iを割り当てる別の計算機を決定すると(オペレーションS1603、Yes)、決定した別の計算機に対して、割当変更候補空間iの割当ての変更依頼を行う(オペレーションS1604)。
例えば、PC1のCPU23は、自己に割り当てられている割当変更候補空間SiをPC2に移動させた方が全体の通信量を削減できると判断した場合、PC2に対して、割当ての変更依頼を行う。割当ての変更依頼を受けると、PC2のシミュレーションプログラムは、図17のオペレーションチャートにしたがって、空間割当変更の許可または却下をPC1に通知する。
具体的には、PC2のCPU23は、空間割当変更要求を受けると(オペレーションS1700,Yes)、PC2においてシミュレーション中の車両数を取得する(オペレーションS1701)。例えば、ハードディスク26の空間割当情報26b(図8)およびエージェント情報26c(図9)を参照して、PC2に割り当てられた各分割空間内に存在する車両エージェントの数をすべて取得する。次に、PC2のCPU23は、車両台数が閾値以下である場合に(オペレーションS1702,Yes)、空間割当変更の許可を通知する。一方、車両台数が閾値を超えている場合に(オペレーションS1702,No)、空間割当変更の却下を通知する。
PC2からの空間割当変更の許可または却下の通知受けると、PC1のCPU23は、変更依頼が許可された場合には、割当変更候補空間Siに存在する車両エージェントのデータをPC2に移動させる(オペレーションS1607)。
なお、上記オペレーションS1702においては、PC2のCPU23は、変更依頼の可否を決定するための処理負荷の例として、車両台数を用いているが処理負荷の判断要素はこれに限定されない。例えば、CPU使用率やメモリ使用率などに基づいて判断してもよい。
以上により、所定の計算機に、割当変更候補空間の割当変更の処理が特定の計算機に集中して、この計算機の処理負荷が許容範囲を超えてしまうことを防止することができる。
図14の機能ブロック図において示した「処理負荷監視部」は、一例として、図17のオペレーションS1701の処理機能を含む。
[4.第4の実施形態]
本実施形態にかかるシミュレータの計算機は、割当変更候補空間に存在するエージェントが、前記割当対象となる計算機に割り当てられている分割空間に移動する場合に発生する通信量をさらに考慮して、前記割当変更後通信量を算出する。特に、過去の一定時間において移動したエージェントの個数に基づいて、前記割当対象となる計算機に割り当てられている分割空間に移動する場合に発生する通信量を算出する。これにより、エージェントが分割空間をまたいで移動する場合の通信量を考慮して、通信量を有効に削減できるように空間割当を変更することが可能となる。また、過去の一定時間において移動したエージェントの個数を考慮するため、未来の一定時間に発生が予測される空間間移動の発生数を予測して、空間割当の変更を判断することができる。
[4−1.処理の概要]
本実施形態にかかる分散処理型シミュレータの構成、本実施形態の各計算機に仮想空間内の所定領域を割り当て、複数のエージェントの挙動を模擬する場合を示す模式図、本実施形態の所定領域における車両エージェントと道路地図との関係を示す模式図、本実施形態の計算機の構成例を示す機能ブロック図および、この計算機をCPUを用いて実現したハードウェア構成は、それぞれ第1の実施形態において示した図1〜4と同様である。本実施形態では、第1の実施形態と同様、計算機A(PC1)、計算機B(PC2)および、計算機C(PC3)を用いて分散処理を行う例を説明する。シミュレーション対象とする分割空間の初期割り当て状況は第1の実施形態と同じとする。
図18は、計算機PC1に割り当てられた分割空間から、計算機PC2に割り当てられた分割空間へ車両が移動する場合における状況を模式的に示す図である。交通シミュレータにおいて、車両aは分割された空間の境界を越えて移動する(空間間移動)ため、この移動に伴い、例えば車両aの存在する空間が分割空間Siから分割空間Srへと変わっていく。よって、移動先PC2の分割空間Srが別の計算機リソースであるPC2に割り当てられている場合には通信が発生する(空間間移動による通信)。なぜなら、車両aをPC2において模擬するために必要なエージェント情報をPC2に記憶させるためである。
空間の境界を越えて移動する際に、送受信される車両のエージェント情報のデータサイズは固定であるため、発生する通信量は空間間移動の発生頻度に比例する。そこで、上記構成に、空間間移動の発生頻度を推定する構成を加え、通信量見積部は、割当変更後通信量の見積もり時において、空間間移動時に発生すると予測される通信量を見積もりに加算または減算する。なお、過去の一定時間に発生した車両移動数等に基づいて、単位時間当たりの空間間移動の発生数を算出することが可能である。
[4−2.シミュレーションプログラムの処理内容]
本実施形態にかかる交通流シミュレータを構成する一部の計算機(PC1〜3)に割り当てられている複数の分割空間、空間割当情報26b、エージェント情報26cは、それぞれ第1の実施形態において示した図7〜9と同様である。本実施形態においては、第1の実施形態と同様に、図7に示すように、PC1、PC2およびPC3の各計算機間における通信量を削減させる処理について説明する。
本実施形態にかかる計算機のCPU23で実行されるシミュレーションプログラムは、第1の実施形態において示した図6と基本的に同様である。但し、オペレーションチャートにおけるオペレーションS602およびS603の具体的処理内容が異なる。よって、図6のオペレーションS602およびS603について説明する。
CPU23は、割当変更候補空間iと隣接空間との間の現在の通信量を算出する(オペレーションS602)。通信量を算出する場合の一例を以下に示す。例えば、第1の実施形態と同様に、Nxを「分割空間Sxに存在する車両台数」、Drを「車両データ量(参照)」、Duを「Dr×単位時間当たりの参照頻度」とする。本実施形態では、さらに、Dmを「移動時の車両データ量」、T[x,y]を「単位時間当たりの空間xと空間yとの間の車両移動回数の期待値」、Dt[x,y]を「Dm × T[x,y]」とする。なお、ここでいう「参照」とは、他の計算機に割り当てられた分割空間に存在する車両エージェントにかかる情報(位置、速度等)を通信することをいい、この通信は各計算機間において常時行われる。これに対して、別の計算機に割り当てられた空間への移動時においては、移動先の計算機でシミュレーションを継続するための全てのエージェント情報を通信する。
T[x,y]を示す「単位時間当たりの空間xと空間yとの間の車両移動回数の期待値」における期待値は、過去の一定時間において移動したエージェントの個数に基づく値である。例えば、過去1時間における移動数に基づいて期待値を算出すればよい。なお、期待値は、車両エージェントが移動する道路状況(道路の大きさ、車線数、幹線道路か否か、交差点の有無)等に基づいて決定してもよい。
現在の通信量として、PC1で分割空間Siを処理する場合の通信量D1は、下記の式により算出できる。
D1 = (Ni×2+Nr+Nd) × Du + Dt[i,r] + Dt[i,d]
CPU23は、割当変更候補空間iを別の計算機に割り当てた場合における、割当変更候補空間iと隣接空間との間の通信量を算出する(オペレーションS603)。
現在PC1にある割当変更候補空間iを別の計算機PC2に割り当てて分割空間Siを処理する場合の通信量D2は、下記の式により算出できる。
D2 = (Ni×2+Nu+Nl+Nd) × Du + Dt[i,u] + Dt[i,l] + Dt[i,d]
同様に、割当変更候補空間iを別の計算機PC3に割り当てて分割空間Siを処理する場合の通信量D3は、下記の式により算出できる。
D3 = (Ni×2+Nu+Nl+Nr) × Du + Dt[i,u] + Dt[i,r] + Dt[i,l]
第1の実施形態と同様に、CPU23は、割当変更後の通信量が現在の通信量(割当変更前の通信量)よりも小さくなるか否かを判断し(オペレーションS604)、割当変更後の通信量が現在の通信量(割当変更前の通信量)よりも小さくなる場合があると判断すれば、割当変更候補空間iの割当てを変更する(オペレーションS605)。
以上により、エージェントが分割空間をまたいで移動する場合の通信量を考慮して、通信量を有効に削減できるように空間割当を変更することが可能となる。また、過去の一定時間において移動したエージェントの個数を考慮するため、未来の一定時間に発生が予測される空間間移動の発生数を予測して、空間割当の変更を判断することができる。
[5.その他の実施形態]
[5−1.2つ以上の割当変更候補空間を変更]
隣接空間に存在する車両台数との関係によっては、空間1つの割り当てを変更すると通信量が増加するが、隣接空間と2つ同時に変更すると、通信量が削減することもある。そこで、空間割当変更部は、2つ以上の割当変更候補空間を同時に変更した場合の通信量も比較して、割り当てを変更する空間を決定するようしてもよい。
[5−2.空間割当の記憶]
また、交通状況は、時間毎、曜日毎に再現性がある。例えば、同じ曜日の同じ時間帯に混雑する、等である。そこで、空間割り当てを記録し、再利用することが考えられる。そのため、上記構成に、空間の割り当てを記憶しておき、シミュレーション時刻に応じて空間割当てを読み込む構成としてもよい。この場合、シミュレーション開始時から通信量が低い状態を保つことが可能になる。
[5−3.実施形態の組み合わせ]
上記実施形態1〜4において説明した構成の一部または全部を、2以上組み合わせた構成としてもよい。
[5−4.各機能ブロックの実現方法]
上記実施形態においては、図3に示す各機能ブロックを、ソフトウェアを実行するCPUの処理によって実現している。しかし、その一部もしくは全てを、ロジック回路等のハードウェアによって実現してもよい。なお、プログラムの一部の処理をさらに、オペレーティング・システム(OS)にさせるようにしてもよい。
101 空間割当管理部
102 空間割当記憶部
103 エージェント情報記憶部
104 シミュレーション実行部
105 エージェント情報送信部
106 エージェント情報受信部
107 空間内エージェント数取得部
108 割当変更候補空間抽出部
109 通信量見積部
110 空間割当変更判断部
111 空間割当変更実行部

Claims (12)

  1. 仮想空間に存在する複数のエージェントの挙動の模擬を、互いに通信可能な複数の計算機を用いた分散処理により実現するシミュレータであって、
    前記計算機の少なくとも2つは、
    前記仮想空間の各分割空間についての分割範囲と、当該各分割空間に存在するエージェントにかかる処理が割り当てられている計算機とを空間割当情報として記憶する、空間割当記憶部にアクセス可能であり、
    前記空間割当記憶部を参照して、少なくとも1つの隣接空間が他の計算機に割り当てられている分割空間の中から、割当を変更する候補となる分割空間を割当変更候補空間として抽出する割当変更候補空間抽出部と、
    前記割当変更候補空間を割当対象となる計算機に割り当てた場合に、前記割当変更候補空間およびこれに隣接する分割空間に存在するエージェントの個数に基づいて、前記割当対象となる計算機とその他の計算機との間に生じる通信量または通信変化量を算出する通信量見積部と、
    前記通信量見積部において算出された通信量または通信変化量に基づいて、前記割当変更候補空間を前記割当対象となる計算機に割り当てるか否かを決定する空間割当変更判断部と
    を備える、シミュレータ。
  2. 前記計算機の少なくとも2つは、
    前記空間割当記憶部に記憶された空間割当情報を更新する空間割当管理部と、
    前記空間割当変更判断部の決定にしたがって、前記空間割当管理部および前記割当対象となる計算機の前記空間割当管理部に対して空間割当情報の更新を要求する空間割当変更実行部と
    をさらに備える、請求項1に記載のシミュレータ。
  3. 前記通信量見積部は、
    前記割当変更候補空間と他の計算機の分割空間との間に現在発生している通信量を、割当変更前通信量として算出するとともに、前記割当変更候補空間を前記割当対象となる計算機に割り当てた場合に、前記割当変更候補空間と前記割当対象となる計算機以外の計算機の分割空間との間に発生すると予想される通信量を、割当変更後通信量として算出し、
    前記空間割当変更判断部は、
    前記割当変更後通信量が前記割当変更前通信量よりも小さい場合に、前記割当変更候補空間を前記割当対象となる計算機に割り当てることを決定する、
    請求項1または2に記載のシミュレータ。
  4. 前記通信量見積部は、
    前記割当変更候補空間の隣接空間であって自己の計算機に割り当てられている隣接空間と、前記割当対象となる計算機の分割空間との間に現在発生している通信量を考慮して、前記割当対象となる計算機とその他の計算機との間に生じる通信変化量を算出し、
    前記空間割当変更判断部は、
    通信量の削減量が最大となる前記通信変化量に基づいて、前記割当変更候補空間を前記割当対象となる計算機に割り当てるか否かを決定する、
    請求項1または2に記載のシミュレータ。
  5. 前記空間割当変更判断部は、
    前記割当変更候補空間に存在するエージェントを、前記割当対象となる計算機に移動させたときに発生する、前記エージェントの個数に基づくペナルティを考慮して、
    前記割当変更候補空間を前記割当対象となる計算機に割り当てるか否かを決定する、
    請求項1〜4のいずれか一項に記載のシミュレータ。
  6. 前記計算機の少なくとも2つは、
    自己の処理負荷を算出して監視する処理負荷監視部をさらに備え、
    前記空間割当変更実行部は、前記処理負荷監視部から取得した処理負荷が所定閾値以下であるときに、他の計算機からの空間割当の変更の要求を許可する、
    請求項に記載のシミュレータ。
  7. 前記処理負荷監視部は、
    少なくとも自己に割り当てられた分割空間に存在するエージェントの個数に基づいて、自己の処理負荷を算出する、
    請求項6に記載のシミュレータ。
  8. 前記通信量見積部は、
    前記割当変更候補空間に存在するエージェントが、前記割当対象となる計算機に割り当てられている分割空間に移動する場合に発生する通信量をさらに考慮して、前記割当変更後通信量を算出する、
    請求項3に記載のシミュレータ。
  9. 前記通信量見積部は、
    過去の一定時間において移動したエージェントの個数に基づいて、前記割当対象となる計算機に割り当てられている分割空間に移動する場合に発生する通信量を算出する、
    請求項8に記載のシミュレータ。
  10. 仮想空間に存在する複数のエージェントの挙動の模擬を、互いに通信可能な複数の計算機を用いた分散処理により実現するシミュレーションに用いられる計算機であって、
    前記仮想空間の各分割空間についての分割範囲と、当該各分割空間に存在するエージェントにかかる処理が割り当てられている計算機とを空間割当情報として記憶する空間割当記憶部と、
    前記空間割当記憶部を参照して、少なくとも1つの隣接空間が他の計算機に割り当てられている分割空間の中から、割当を変更する候補となる分割空間を割当変更候補空間として抽出する割当変更候補空間抽出部と、
    前記割当変更候補空間を割当対象となる計算機に割り当てた場合に、前記割当変更候補空間およびこれに隣接する分割空間に存在するエージェントの個数に基づいて、前記割当対象となる計算機とその他の計算機との間に生じる通信量または通信変化量を算出する通信量見積部と、
    前記通信量見積部において算出された通信量または通信変化量に基づいて、前記割当変更候補空間を前記割当対象となる計算機に割り当てるか否かを決定する空間割当変更判断部と
    を備える、計算機。
  11. 仮想空間に存在する複数のエージェントの挙動の模擬を、互いに通信可能な複数の計算機を用いた分散処理により実現するシミュレータを、コンピュータを用いて実現するためのシミュレーションプログラムであって、
    前記シミュレーションプログラムは、少なくとも2つの前記計算機のコンピュータに、
    前記仮想空間の各分割空間についての分割範囲と、当該各分割空間に存在するエージェントにかかる処理が割り当てられている計算機とを空間割当情報として記憶する、空間割当記憶部にアクセスする処理と、
    前記空間割当記憶部を参照して、少なくとも1つの隣接空間が他の計算機に割り当てられている分割空間の中から、割当を変更する候補となる分割空間を割当変更候補空間として抽出する割当変更候補空間抽出処理と、
    前記割当変更候補空間を割当対象となる計算機に割り当てた場合に、前記割当変更候補空間およびこれに隣接する分割空間に存在するエージェントの個数に基づいて、前記割当対象となる計算機とその他の計算機との間に生じる通信量または通信変化量を算出する通信量見積処理と、
    前記通信量見積処理において算出された通信量または通信変化量に基づいて、前記割当変更候補空間を前記割当対象となる計算機に割り当てるか否かを決定する空間割当変更判断処理と
    を実行させる、シミュレーションプログラム。
  12. 仮想空間に存在する複数のエージェントの挙動の模擬を、互いに通信可能な複数の計算機を用いた分散処理により実現する分散処理型シミュレーションを、前記計算機が実行するシミュレーション方法であって、
    前記計算機は、
    前記仮想空間の各分割空間についての分割範囲と、当該各分割空間に存在するエージェントにかかる処理が割り当てられている計算機とを空間割当情報として記憶する、空間割当記憶部にアクセスする工程と、
    前記空間割当記憶部を参照して、少なくとも1つの隣接空間が他の計算機に割り当てられている分割空間の中から、割当を変更する候補となる分割空間を割当変更候補空間として抽出する割当変更候補空間抽出工程と、
    前記割当変更候補空間を割当対象となる計算機に割り当てた場合に、前記割当変更候補空間およびこれに隣接する分割空間に存在するエージェントの個数に基づいて、前記割当対象となる計算機とその他の計算機との間に生じる通信量または通信変化量を算出する通信量見積工程と、
    前記通信量見積工程において算出された通信量または通信変化量に基づいて、前記割当変更候補空間を前記割当対象となる計算機に割り当てるか否かを決定する空間割当変更判断工程と
    を実行する、シミュレーション方法。
JP2009198398A 2009-08-28 2009-08-28 分散処理型シミュレータ Expired - Fee Related JP5434380B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009198398A JP5434380B2 (ja) 2009-08-28 2009-08-28 分散処理型シミュレータ
DE102010032300A DE102010032300A1 (de) 2009-08-28 2010-07-26 Simulator des Typs mit verteilter Verarbeitung
US12/869,934 US8280706B2 (en) 2009-08-28 2010-08-27 Distributed processing-type simulator
CN201010266468.7A CN102004717B (zh) 2009-08-28 2010-08-27 分布处理型模拟器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009198398A JP5434380B2 (ja) 2009-08-28 2009-08-28 分散処理型シミュレータ

Publications (2)

Publication Number Publication Date
JP2011048757A JP2011048757A (ja) 2011-03-10
JP5434380B2 true JP5434380B2 (ja) 2014-03-05

Family

ID=43626143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009198398A Expired - Fee Related JP5434380B2 (ja) 2009-08-28 2009-08-28 分散処理型シミュレータ

Country Status (4)

Country Link
US (1) US8280706B2 (ja)
JP (1) JP5434380B2 (ja)
CN (1) CN102004717B (ja)
DE (1) DE102010032300A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5310859B2 (ja) * 2009-08-13 2013-10-09 富士通株式会社 シミュレータ
KR20130081354A (ko) * 2012-01-09 2013-07-17 삼성전자주식회사 분산 병렬 시뮬레이션에서의 통신 방법
US10013513B2 (en) 2014-10-31 2018-07-03 International Business Machines Corporation Accelerating particle-swarm algorithms
US9646493B2 (en) * 2015-06-19 2017-05-09 International Business Machines Corporation Management of moving objects
WO2017099061A1 (ja) * 2015-12-08 2017-06-15 日本電気株式会社 仮想マシンの配置を計画するための計画システム、計画方法、及び、計画用プログラムを記録する記録媒体
US10474790B2 (en) * 2017-06-02 2019-11-12 TuSimple Large scale distributed simulation for realistic multiple-agent interactive environments
JP7314864B2 (ja) * 2020-06-09 2023-07-26 トヨタ自動車株式会社 情報提供システム、情報提供装置および情報提供プログラム
JP7298646B2 (ja) * 2021-05-19 2023-06-27 横河電機株式会社 ネットワークシミュレータ、ネットワークシミュレーション方法およびネットワークシミュレーションプログラム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292830B1 (en) * 1997-08-08 2001-09-18 Iterations Llc System for optimizing interaction among agents acting on multiple levels
JPH11232583A (ja) * 1998-02-12 1999-08-27 Mitsubishi Electric Corp 交通シミュレーション・システム
JP2000163685A (ja) 1998-11-30 2000-06-16 Fuji Electric Co Ltd 交通流監視システム
US6536037B1 (en) * 1999-05-27 2003-03-18 Accenture Llp Identification of redundancies and omissions among components of a web based architecture
US6571282B1 (en) * 1999-08-31 2003-05-27 Accenture Llp Block-based communication in a communication services patterns environment
US7389214B1 (en) * 2000-05-01 2008-06-17 Accenture, Llp Category analysis in a market management
US7395193B1 (en) * 2000-05-01 2008-07-01 Accenture, Llp Manufacture for a market management framework
JP2002251129A (ja) 2001-02-23 2002-09-06 Mitsubishi Electric Corp シミュレーション表示方法および装置
JP2002358293A (ja) * 2001-05-31 2002-12-13 Nec Corp 実行時負荷分散システム及び実行時負荷分散方法並びにプログラム
US7860639B2 (en) * 2003-02-27 2010-12-28 Shaoping Yang Road traffic control method and traffic facilities
JP2006521564A (ja) * 2003-03-28 2006-09-21 エムティエス・システムズ・コーポレーション 動的運動シミュレーションを有する車両衝突シミュレータ
JP2004348462A (ja) 2003-05-22 2004-12-09 Mitsubishi Electric Corp 分散シミュレーションシステム
JP2005004676A (ja) 2003-06-16 2005-01-06 Fujitsu Ltd 適応型分散処理システム
JP2007047972A (ja) 2005-08-09 2007-02-22 Ast J:Kk 交通流シミュレーション装置
WO2007024016A1 (en) * 2005-08-25 2007-03-01 Ns Solutions Corporation Scheduling apparatus, scheduling method and recording medium
JP5109250B2 (ja) * 2005-11-08 2012-12-26 横河電機株式会社 分散システム
US8023423B2 (en) * 2006-07-10 2011-09-20 Telcordia Licensing Company, Llc Automated policy generation for mobile communication networks
JP5373295B2 (ja) * 2008-02-04 2013-12-18 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチノード・サーバシステム、負荷分散方法、リソース管理サーバ、およびプログラム
GB2457242A (en) * 2008-02-05 2009-08-12 Nec Corp Resource allocation in a communication system

Also Published As

Publication number Publication date
US20110054874A1 (en) 2011-03-03
CN102004717B (zh) 2014-01-01
DE102010032300A1 (de) 2011-06-22
CN102004717A (zh) 2011-04-06
JP2011048757A (ja) 2011-03-10
US8280706B2 (en) 2012-10-02

Similar Documents

Publication Publication Date Title
JP5434380B2 (ja) 分散処理型シミュレータ
US11816402B2 (en) Simulation systems and methods
US10613908B2 (en) Managing hydrocarbon energy production while proactively maintaining a balanced workload
JP2018514018A (ja) リソース配置を最適化するための適時性リソース移行
US8849625B2 (en) Distributed process simulator
JP5672386B2 (ja) 計算機およびリソース検索方法
CN111443870B (zh) 一种数据处理的方法、设备及存储介质
US20120095740A1 (en) Simulation device, simulation method, and recording medium storing simulation program
CN114625500A (zh) 云环境下拓扑感知的微服务应用调度的方法及应用
CN102904919A (zh) 流处理方法和实现流处理的分布式系统
CN111506414A (zh) 资源调度方法、装置、设备、系统及可读存储介质
JP2014167713A (ja) 情報処理装置、情報処理システム、情報処理装置管理プログラム及び情報処理装置管理方法
US11381468B1 (en) Identifying correlated resource behaviors for resource allocation
Zakarya et al. ApMove: A service migration technique for connected and autonomous vehicles
CN111143995A (zh) 一种基于信息物理系统的交通污染排放移动边缘计算调度方法
JP2007293761A (ja) エージェントの配置プログラム、方法、および装置
KR102583957B1 (ko) 데이터베이스 서버 할당 방법 및 장치
Wijerathne et al. Parallel scalability enhancements of seismic response and evacuation simulations of Integrated Earthquake Simulator
JP2019118059A (ja) 通信システム、通信制御装置、及び通信制御方法
JP2023082385A (ja) 列車運行管理システム、パラメータ作成システム、及びパラメータ作成方法
KR20140013291A (ko) 그리드 컴퓨팅에서 동적 유효자원 재배치 기반 작업 할당 장치 및 방법
Li Assessing the feasibility of using hardware-in-the-loop real time simulation in the signal timing design process
CN117499495A (zh) 云化集成软件授权分发方法及系统
CN118502956A (zh) 基于云存储系统的资源调度方法、装置、电子设备、存储介质和程序产品
CN114996351A (zh) 数据库弹性方法、数据库弹性装置及数据库弹性服务系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120510

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20130701

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130702

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131024

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: 20131112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131125

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5434380

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees