オープンデータと連携した簡易シミュレーションに よる地域環境の実時間予測(事例研究)
著者 日吉 莉菜, 田中 涼, 周 睿, 福間 慎治, 森 眞一 郎
雑誌名 福井大学地域環境研究教育センター研究紀要 「日
本海地域の自然と環境」
巻 24
ページ 47‑53
発行年 2017‑11‑01
URL http://hdl.handle.net/10098/10291
(キーワード:IoT,OpenData,計算機シミュレーション,CyberPhysicalSimulation,実時間予測)
+ RinaHiyoshi ++ RyoTanaka
(DivisionofInformationScience,FacultyofEngineering,UniversityofFukui,Fukui,910-8507)
# ZhouRui
(UFSEPVisitingStudentfromLanzhouJiaotongUniversity,Lanzhou,730070,China)
* ShinjiFukuma ** Shin-ichiroMori
(DepartmentofInformationScience,GraduateSchoolofEngineering,UniversityofFukui,Fukui,910-8507)
1.はじめに
地域の観測機器で計測される各種のセンサデータがオープンデータとしてリアルタイムに入手可能 となってきた.我々は,これらの動的オープンデータと , 我々が開発してきた実時間シミュレーショ ン技術を連携し , これまで実時間性が障害となり実現が困難であった地域レベルでの実時間環境予測 を可能にするベストエフォート型のシミュレーションフレームワークの構築に関する研究を行ってい る.近年,我々がこれまで経験してきた環境変化の速度とは異質の極めて短時間に発生する環境変化 による災害が多発しており,これらの環境変化をリアルタイムに予測する技術への需要が今後益々増 加すると考えられる.
福井県は行政データのオープン化においてこれまで先導的な役割を果たしてきた.しかしながら , 時々刻々と変化する観測データなどのダイナミックオープンデータの活用については十分な実績を 有しているとはいえない.一方で , 県民衛星計画や IoT 技術を活用した各種センサ網の普及など今後 ダイナミックオープンデータの爆発的な増加が目前に迫っている.このような地域で生産され , 地域 でこそ活用の意義がある大量のデータの利活用を目的として , 時間制約下でのベストエフォートのシ ミュレーションを行ない , 防災・減災への応用の可能性を検討するのが我々の研究の目的である.
現在我々はリアルタイムシミュレーション技術の応用事例として,1)国土交通省の雨量情報から 河川の水位を予測する試み[1],2)気象庁の高解像度ナウキャストの雨量予測データから地域の太 陽光発電量を予測し発電量の変化が電力系統へあたえる影響を解析するシステムの構築,3)国土交 通省の河川データを用いた九頭竜川河口付近での風と水流を考慮した拡散シミュレーションシステム の開発[2,3],5)複数の地域毎の局所的な環境シミュレーションをリアルタイムに広域連携させる ことで実時間応答性を保ちつつ計算精度の向上を図る技術の開発[4],4)リアルタイムシミュレー ションへの環境データ入力のための大規模センサネットワークからのリアルタイム情報収集に関する 研究[5]などを行っている.本論文では,それらのなかから,動的オープンデータを用いた流体・
拡散連成シミュレータについて紹介する.
No. 24, 47 - 53, 2017
Case studies: Real-time Forecasting of Regional Environment based on Light-Weight Simulation interactively fed with Dynamic Open Data
オープンデータと連携した簡易シミュレーションによる 地域環境の実時間予測(事例研究)
日吉 莉菜
+田中 涼
++(福井大学工学部情報・メディア工学科)
周 睿
#(短期留学プログラム学生[蘭州交通大学])
福間 慎治
*森 眞一郎
**(福井大学工学系部門情報・メディア工学分野)
2.研究の背景
2.1 インタラクティブ・スーパーコンピューテイング
我々の研究室では,対話性を重視した次世代スーパーコンピュータに関する研究を行っており,そ の研究の一環として妥当な計算精度で実時間性を保証するベストエフォート型のシミュレーションシ ステムの開発を行ってきた.実時間性を保証することで,実行中のシミュレーションに対してユーザ が任意のタイミングで自由に介入することが可能となり様々な試行実験が可能となった.そこで,こ れまでに開発した拡散現象のシミュレータ[6]と格子ボルツマン法[7]を用いた流体シミュレータ
[8,9]を連成させた流体・拡散連成シミュレータの開発を行った.
2.2 対話型拡散シミュレータ
本研究で使用する拡散シミュレーションシステムは,2 次元の拡散方程式を離散化し陽解法で解く 簡易な手法を採用しており,時間方向のシミュレーションの 1 タイムステップごとに計算結果を可視 化することで拡散の様子を確認することが可能である.シミュレーションの初期条件はシミュレー ション空間全域で初期値 0 からスタートし,グラフィカルに表示されたシミュレーション結果提示 ウィンドウ上で,任意のタイミングで任意の場所に拡散源を配置することが可能である.
また,異方性媒質中での拡散などの非均質な拡散に対応す るため,離散化された計算格子上のすべての点において,2 次元ベクトルとしての拡散係数を定義することが可能であ る.さらに,この係数を 1 タイムステップ毎に時間変化させ ることも可能にしている.一方で,拡散を抑制(吸収)する 格子点を設けることで,特定領域への拡散を禁止することが 可能である.図1は海上のみで拡散を行った拡散シミュレー ションの実行例である.
本研究では後述の流体シミュレーション結果を,この拡散 係数の時空間変化として拡散シミュレータに与えることで流 体・拡散連成シミュレーションを行っている.本来ならば,
流れをともなう拡散現象のシミュレーションでは拡散方程式 に流れの速度に関する移流項を加えた移流拡散方程式を解く 必要があるが,移流項の離散化において中心差分を用いて式
を整理すると物理パラメータの補正が必要ではあるが非均質拡散の場合の式と等価な式が得られるた め,非均質拡散の特殊ケースとして拡散シミュレータをそのまま利用している.
2.3 対話型流体シミュレータ
流体シミュレーションは計算量が非常に多い計算の 1 つとしてスーパーコンピュータの重要応用分 野の 1 つである.また,シミュレーションの初期条件や境界条件,計算格子の形状がシミュレーショ ン結果やシミュレーションの安定性等に大きく影響をあたえることが知られている.そのため,安定 かつ効率よく計算を行うための手法が研究されてきた.特に複雑な形状をもった物体を含む流体シ ミュレーションに必要な計算格子の作成は専門家にとっても非常に困難な作業である.近年,計算量 の増加を許容することで,このような計算格子の問題を回避する計算手法に注目があつまっている.
そのような手法の一つに格子ボルツマン法がある.密度,流速などマクロな量に対する方程式を解く 代わりに,分子気体力学で用いられるボルツマン方程式に類似した方程式を用いることで流れを解析 する[7].格子ボルツマン法では計算量はふえるものの規則的な計算格子をもちいることが可能なた め,複雑な境界条件の設定が必要な条件下(例えば,海岸線にそった複雑形状)でも,容易にシミュ レーションを行うことが可能である.
図 1.拡散シミュレータ実行の様子
(福井沖に拡散源を配置.周期的に変 化する北東~南東寄りの異方拡散)
日吉 莉菜・田中 涼・周 睿・福間 慎治・森 眞一郎
格子ボルツマン法でも,計算効率や計算の安定性 を考慮した様々な改良が行われているが,我々は 最もシンプルな等温非圧縮を想定した D2Q9 モデ ル(3 次元の場合は D3Q15 モデル)を用いてシミュ レータを開発した.格子ボルツマン法はプログラム が非常に規則的でありプログラムの並列化が容易で あるため,スーパーコンピュータや多くの計算資源
(Core)を持つアクセラレータ(GPU 等)との親和 性が非常に高い.我々も 10 年以上前にこの性質を 利用したシミュレータを開発していた[9].当時は 専用のプログラミング言語を用いてシミュレータを 開発したが,今回は近年注目されている GPU 向け
の簡易プログラミング言語 OpenACC[11]を用いて,流体計算に関する知識をほとんどもたない情 報・メディア工学科の学部学生がプログラムの高速化を行った.
この流体シミュレータも拡散シミュレータと同様に計算結果をリアルタイムに可視化しながら流れ の時系列を解析することが可能である.また,シミュレーションの安定性の点で制約はあるもののシ ミュレーションの実行中に流れ場の中に障害物を配置することも可能である.
3.動的オープンデータと連携した流体・拡散連成シミュレータの開発
コンピュータシミュレーションのプログラミングにおいては,解くべき問題の支配方程式が同じで あれば,方程式中に現れる各種物理パラメータや計算の初期条件ならびに境界条件の解釈をかえるだ けで様々な応用問題に応用することが可能である.本研究では,水域の表面上を拡散する軽い物質の 拡散現象を解析するシミュレータを構築する.この際,水域としては九頭竜川の河口付近の日本海を 想定し,九頭竜川からの水流と海上の風の影響を考慮した拡散をシミュレートするために流体シミュ レータと拡散シミュレータの連成を行った.厳密には,物質の拡散自体が水流に変化をあたえるため 混相流として流体計算を行う必要があるが,簡単のため物質の拡散が流体計算に影響を与えない単方 向の作用のみを考慮した連成を扱っている.
それぞれのシミュレーションで必要となる計算条件は,動的オープンデータ[10]をシミュレーショ ンの実行中にリアルタイムに取得し随時適用させている.特定の現象を再現させたい場合には,時系 列のシナリオファイルを用意して入力することも可能である.
3.1 動的オープンデータを用いた流体シミュレーション
流体シミュレーションは川から海へ水が流れていく過程をシミュレートしており川の流入端での流 速値が必須となる . 本研究では実環境に則したシミュレーションを目指しているため , 河川の実時間 の流速情報が必要である.しかしながら現時点で流速情報は公開されていないため,河川の水位と流 速が比例すると仮定して流入速度を設定している.この時,オープンデータは 10 分ごとに更新され るため,更新時刻にあわせてデータを取得するプログラムを作成した.オープンデータの定時取得に は Unix 系 OS に備えられているコマンド crontab を使用して,福井県の河川・砂防総合情報サイト[10]
で動的に生成されるダイナミック HTML ファイルを取得した.さらに,Web スクレイピングプログ ラムを作成し HTML ファイルの中に埋め込まれている水位情報を抽出した.
オープンデータの更新間隔が 10 分であるのにたいして,我々の流体シミュレーションの 1 タイムス テップの計算時間は 1 秒以下(ミリ秒のオーダ)である.そのため,取得したデータをそのまま流入 速度として更新してしまうと流入速度の急激な変化が起き連続的な環境変化を前提としているシミュ レーションの前提条件が崩れシミュレーションの継続ができなくなってしまう.そこで,取得したデー
図2 流体シミュレータ実行の様子
(3 つの構造物に加えて、中心付近に小規模構 造物が点在)
タと現在計算に用いている流入速度との差を求め , その変化量に応じて次の更新間隔までのタイムス テップをつかって緩やかに流入速度を更新することでシミュレーションの安定化を図っている.
流体シミュレーションに必要な陸地と水面の境界に関する形状情報も,国土交通省国土地理院等が 発行する電子地図情報を元に画像処理を行い,計算格子点ごとに陸と水域を判定しその結果を 0 ある いは 1 で表現するビットマップ情報として作成する.ビットマップ情報を編集することで,実際の地 形とは異なる地形でシミュレーションを実行することも可能である.
なお,流体シミュレーションの下流に相当する海上に存在する境界領域では自由流出を仮定してシ ミュレーションを行っている.将来的には,海流の影響を考慮した境界条件の設定も検討する予定で ある.
3.2 流体計算結果を考慮した拡散シミュレーション
拡散シミュレータでは,海上の風と九頭竜川からの水流の影響を一定の比率で合成し,計算格子上 での移流速度を算出し,拡散シミュレーションを行っている.前述のとおり,拡散係数を移流速度に 比例する値で補正した非均質拡散とみなして拡散シミュレーションを行っている.
シミュレータ自体は,すべての計算格子点ごとに風速と流速を設定可能であるが,現時点では風速 は計算領域全体で一定とみなし,流速のみを流体シミュレーション結果を用いて毎タイムステップ更 新している.風速情報に関しても 10 分ごとに更新される福井空港における風速情報はオープンデータ として利用可能であるが,今回はプログラム内で三角関数を用いて風向と風速を時間変化させている.
3.3 流体計算と拡散計算の高速化
本研究で開発した連成シミュレーションでは,格子ボルツマン法や拡散計算など計算量が多くシ ミュレーションに時間がかかってしまう.そこで,計算の並列化やアクセラレータ(GPU)を用い た高速化,さらには並列処理に伴うデータ通信量の削減によるプログラムの高速化を行った.図 3 は 今回実装した連成シミュレーションシステムの計算機構成である.使用した CPU はいずれも内部に 4つの計算コアをもったマルチコア CPU である.
(1)GraphicsProcessingUnit(GPU)を用いた高速化
開発したシミュレーションプログラムは,まず最初にマルチコア CPU を用いた高速化のために OpenMP を用いた並列化を行った.次に,OpenMP で指定した並列化のための指示文を GPU 向け
図 3.連成シミュレータを構成する計算機システムの構成 日吉 莉菜・田中 涼・周 睿・福間 慎治・森 眞一郎
並列プログラミング言語 OpenACC[11]の指示文に置き換えることで,高性能な GPU を利用可 能なプログラムに変換した.
実行速度を比較したところ,理論最大性能は CPU をはるかに上回る高性能 GPU を使用したに もかかわらず,4 コア CPU の方が高速であった.そこで,単なる指示文の置き換えに加えて,デー タ配置の最適化を行う実行制御を行ったところ,約 24 倍の高速化を達成できた.なお,使用した CPU は IntelCorei74790(3.6GHz)であり,GPU としては NvidiaGeForceGTX780Ti を用い,
OpenACC のコンパイルには PGIACC コンパイラ Ver.13.6 を使用した.
(2) 計算領域分割による並列化
GPU を用いた高速化により CPU 単体での計算速度に比べた高速化は達成できたが,将来におけ る計算領域の拡大,高精度化,シミュレーションの 3 次元化による計算速度の低下を防ぐため,ネッ トワーク接続された複数の計算ノードに処理を分割して実時間性を保証するマルチノード構成のシ ステム拡張を行った.2つの計算ノードに流体計算と拡散計算を機能分割するとプログラム構成は 非常に簡単となるが,流体計算の計算量が拡散計算に比べてはるかに大きいため効率的な負荷分散 とはならない.また,このような機能分散を行うと,流体計算結果を拡散計算に反映させるため領 域全体の速度情報を計算ノード間で情報交換する必要があり多大な通信時間を要する.そこで,シ ミュレーション空間を分割しそれぞれの計算ノードに担当領域を割り当て,分割境界線上のデータ のみの交換でシミュレーションを行う領域分割方式により並列化を行った.計算ノード間の通信に は並列コンピューティングのための標準化ライブラリである MPI を利用した.
今回の実装では,2 次元のシミュレーションを用いており計算ノード 1 台でも十分に高速実行が 可能な計算量であったため,計算ノード 2 台を利用することによる性能向上は得られなかったが,
シミュレーションの 3 次元化など計算負荷が増大した場合にも対応可能な計算環境が構築できた.
3.4 シミュレーション結果の例
九頭竜川河口域(図 4 参照)での流体・拡散連成シミュレーションを行った結果の例を図 5 および 図 6 に示す.今回の実験では簡便のため,GoogleMap の地図画像(1600x1024 ピクセル)を利用し ている.なお,シミュレーション空間内に多数の微小凹凸が存在すると今回作成した簡易シミュレー タでは計算結果が不安定となるため雄島付近に存在する海中の島を削除している.また,九頭竜川に 対して川幅の狭い兵庫川の効果を同時に評価すると九頭竜川から兵庫川への逆流等,不安定な現象が 発生する条件下では,兵庫川の効果を無視して(せき止めて)計算を行った.
九頭竜川からの水流を考慮しない場合,北西~南西に向けて周期的に時間変化する風の影響をうけ て拡散の主成分は西向きとなるが,九頭竜川からの水流を考慮すると拡散方向が南西方向に偏向して いる様子がわかる.
今回開発したシミュレータでは,前述のとおりそれぞれのシミュレーションで必要となる水域と陸 との境界に関する情報は画像データから入力している.そのため,画像編集ソフトを利用することで,
異なった形状の境界条件が与えられた場合の影響を直ちにシミュレーションで確認することが可能で ある.図 7 は河口の北側にある三国突堤の形状が河口付近の流速にあたえる影響を調べた結果である.
現在の三国突堤は 1970 年に 927m まで延長工事が行われたもので,それ以前は 511 mの長さであっ た[12].図 7(a)にくらべて,突堤延長前の図 7(b)や,1876 年以前の状態である突堤がない図 7(c)
では,突堤先端から回り込む水流によってサンセットビーチ~荒磯にかけての水陸境界部分の流速が 上がっており,延長工事がおこなわれなかった場合には,この周辺の景観は現在と大分異なっている 可能性が推測できる.また,図 7(a)のケースでは,流速の時間変化を観測すると河口からの水流 が福井新港内に流入し,港内で反射をくり返す発振現象のような現象が観測できた.
4.まとめ
本稿では,実時間シミュレータによる地域環境の実時間予測に関する事例研究として,動的オープ ンデータと連携した流体・拡散連成シミュレータについて紹介し,国土交通省の河川に関する観測デー タと連動した九頭竜川河口付近での流速分布を考慮した拡散シミュレーションを行った結果を紹介し た.今回の事例研究では,計算機の高性能化により簡易モデルではあるが地域環境の実時間シミュレー
図4.九頭竜川河口付近の航空写真 図5.九頭竜川河口付近の流速分布
画像 @2017DataSIO,NOAA,US.Navy,NGA,GEBCO,Google, 地図データ @2017ZENRIN
(a)水流を考慮しない場合 (b)水流を考慮した場合 図6.南西~北西の範囲で時間変動する風速と河口付近の水流による拡散現象
(a)現在の三国突堤 (b)三国突堤の拡張前 (c)三国突堤がない場合 図7.三国突堤の形状の違いによる九頭竜川河口付近の流速分布の違い(対数スケールで可視化)
(カラー版URLhttp://sylph.fuis.u-fukui.ac.jp/research/HPC/DataScience/EnvSim.html)
日吉 莉菜・田中 涼・周 睿・福間 慎治・森 眞一郎
ションが可能であることを紹介した.
時間をかけて厳密なシミュレーションモデルを構築し,さらに時間をかけてシミュレーションを行 う従来のスーパーコンピュータ利用型のシミュレーションスタイルとは異なる,ラピッドモデリング,
ベストエフォート型シミュレーション,そして対話的なシミュレーションのステアリング(パラメー タ変更等)が可能なシミュレーションスタイルがあらたなシミュレーションスタイルとして様々な分 野で活用されることを期待したい.
また,得られた計算結果の妥当性の検証には,実際の環境計測や厳密なシミュレーションモデルに よるシミュレーションが必要であり,関連分野の読者との共同研究や情報提供の機会がえられれば幸 いである.
謝 辞
本研究の一部は,JSPS 科学研究費補助金基盤研究 25280042ならびに H28 年度地域環境センター 研究費支援を受けて実施した.
参考文献
1 .XiaomeiGuo,ShinijiFukuma,Shin-ichiroMori,2016,“ACasestudyoftheEstimationof WaterLevelinRiverusingDynamicOpenData”,電気関係学会北陸支部連合大会論文集,F-1-3,
2016.09.13.
2.日吉莉菜,2017,“動的オープンデータと連携した流体・拡散シミュレータの開発”,福井大学工 学部情報・メディア工学科卒業論文
3.田中涼,日吉莉菜,福間慎治,森眞一郎,2017,“動的オープンデータと連携した流体・拡散シミュ レータの開発”,電気関係学会北陸支部連合大会論文集,F-1-4,2017.09.12.
4.山本優,熊田佳孝,張家超,福間慎治,森眞一郎,2016,“対話型シミュレーションの実時間遠 隔共有のためのシミュレーションキャッシングフレームワーク”,ハイパフォーマンスコンピュー ティングと計算科学シンポジウム論文集,Vol.2016,pp.101-110(June.7)
5.Rui Zhou,Jiachao Zhang,Shinji Fukuma,Shin-ichiro Mori,2017,“A Case study:
Developmentofatime-criticalIoTsystemforenvironmentsensing”,電気関係学会北陸支部連合 大会論文集,F-1-11,2017.09.12.
6.山田航平,2016,“広域分散型協調シミュレーションのためのシミュレーションキャッシングフ レームワークの実装と双方向一貫性制御方式の検討”,福井大学工学部情報・メディア工学科卒業 論文
7.蔦原道久,2011,“格子ボルツマン法の基礎と応用”,日本機械学会論文集(B 編),第 77 巻 784 号,
pp.2367-2378.
8.山口明徳,2007,“インタラクティブ流体シミュレーションにおける力覚提示の実装”,京都大学 工学部情報学科卒業論文
9.小松原誠,森眞一郎,中島康彦,富田眞治,2005,“汎用グラフィクスカードを用いた格子ボル ツマン法による流体シミュレーション”,情報処理学会研究報告,ARC-163-7,pp.37-42.
10.福井県河川・砂防総合情報,http://ame.pref.fukui.jp(2017/2/6 確認)
11.OpenACCProgramming,https://www.softek.co.jp(2017/2/9 確認)
12.三国港突堤,坂井市ホームページ(2017/9/14 確認)
http://www.city.fukui-sakai.lg.jp/bunka/kanko-bunka/kanko/rekishi/tottei.html