Computer simulations create the future

OACIS講習会(session1)
村瀬洋介，内種岳詞
理化学研究所 計算科学研究機構

2016/05/11 OACIS公開ソフト講習会
1

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

session構成• session1– 13:00 - 13:20 概要説明
– 13:20 - 13:50 シミュレーション実行ハンズオン• session2– 14:00 – 14:30 simulator,analyzer,host登録方法の説明とハンズオン• session3– 14:40 - 15:00 各自の環境に合わせたOACISのセットアップ（希望者）
RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

2

Session1の流れ• 概要説明(13:00 - 13:20)– 講師紹介– OACIS概要– 仮想環境について• シミュレーション実行ハンズオン(13:20 - 13:50)– 事前準備の状況確認– シミュレーション実行• OACIS起動• Simulator選択• ParameterSetとRun作成• 結果確認– 出力ファイル
– plot– plotのURLにアクセス– OACIS停止
RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

3

概要説明(13:00 - 13:20)

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

4

講師紹介
• 村瀬洋介- 専門：統計物理(複雑ネットワーク、計算社会科学)- 2010年3月、東大物理工学専攻で学位取得- 2013年4月よりAICS離散事象シミュレーションチーム

• 内種岳詞– 都市規模の自動車交通シミュレーション
因子分析

神戸三宮周辺の道路地図© OpenStreetMap contributors

分散共分散行列の因子によるソート

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

5

OACIS概要• 計算科学の研究プロセスにおいて、様々なパラメータで系統的にシミュレーションを実行することが多いobserve phenomena()
consider a model()write a source code()
write a script for analysis()

essential in research activities

while ( necessary ) {select a suitable parameter sets()
execute simulation run using the parameters()
take a note to remember what I am doing()
wait for completion of the simulation run()transfer the output files to suitable folders()
keep a note to remember what is done()analyze data()
create a graph()}
write a paper()present in a meeting()

多数の試行錯誤を求められることが多い- 実行時の記録が手間になる、情報が不完全- リモートホストのジョブの監視- 数ヶ月後、結果を見ても思い出せない

いくら計算リソースがあっても活用しきることが難しいOACISRIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

6

OACISとは• OACIS (Organizing Assistant forComprehensive and Interactive Simulations)– ジョブの実行や結果の管理をするツール• AICSの離散事象シミュレーション研究チーム(Discrete Event Simulation Research Team)で2013年より開発– 2014年にversion1をMITライセンスで公開。いくつかのプロジェクトで実運用– 2016年3月時点でバージョン(v2.4.0)を公開
RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

7

実運用例
複雑ネットワーク

自動車交通流、人流シミュレーション

神戸三宮周辺の地図© OpenStreetMap contributors

株式市場シミュレーション

金沢大徳地区周辺の地図© GoogleMap

粉体分子動力学シミュレーション

Mizuta, Izumi et al.

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

8

System Overview
Remote hosts executes
simulation jobs.

2
Workers creates shell scripts
and submit jobs via SSH.

Workers downloads results.

3

Results are stored in filestorage and DB.

1

4
You can submit jobs via
web-browser front end.
You can access simulation results.

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCEData structure• データベース内に階層的に保存される– Simulator, ParameterSet, Run

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

仮想環境について• Dockerを利用した仮想環境イメージを配布– MongoDBやRubyなどをユーザーがインストールしな
くてもよい– Windowsユーザーでも使うことができる

https://docs.docker.com/installation/windows/

https://www.docker.com/

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

11

参考文献

• OACIS: MITライセンスなので自由に使ってもらって構わないですが、もし研究発表をした場合には謝辞にOACISを利用したことを加えてもらえると幸いです。
[1] Y. Murase, T. Uchitane and N. Ito, “A toolfor parameter-space explorations”, Physics
Procedia, 57, p73-76 (2014)

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

12

OACISまとめ• OACIS機能– DBへの実験データ自動保存。実験結果のトレーサビリティーを確保– Webインターフェースによる実験管理と結果の閲覧– 複数のリモートホストの利用（デスクトップ、HPC,「京」コンピュータ）• 利点– 創造的な作業に集中可能– 統一インターフェースによる研究者間の情報共有• 対象分野– 計算科学分野全般• モデルパラメータ数が多い• 試行錯誤的にパラメータやモデルを変えてみたい

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

シミュレーション実行ハンズオン(13:20 - 13:50)

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

14

事前準備の状況確認
1. 仮想環境(docker-engine)のインストールインストール作業docker infoコマンドの動作
2. イメージのダウンロードとOACIS実行
dockerコマンドの実行
OACIS起動確認• インターネット接続の確認

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

15

シミュレーション実行"velocity":0.566316666666667,"flow":0.16989499999999955

時間• 目的：OACISによるシミュレーション実行を体験• 作業：– Simulator登録済みのOACISをダウンロード
位置– OACIS起動– ParameterSet作成– Runの作成_output.json– 結果の確認{• 出力ファイル}• plot• plotのURLにアクセス

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

赤：渋滞層
緑：自然流
16

OACIS起動• Docker Quickstart Terminalの実行• OACISの起動
docker start oacis_tutorial(講習会準備が完了していない場合は下記コマンド)
docker run --name oacis_tutorial -p 3000:3000 -dt oacis/oacis_tutorial• OACIS web インターフェースの確認– http://192.168.99.100:3000 へアクセス

OACIS web インターフェース
RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

17

Nagel-Schreckenberg model• Nagel-Schreckenbergは1990年代に提案された交通流モデル• 単純なセルラーオートマトンでありながら自然渋滞を再現• 詳細は[Wikipedia](https://en.wikipedia.org/wiki/Nagel%E2%80%93Schreckenberg_model)を参照

Key

http://www.civil.iitb.ac.in/tvm/1111_nptel/544_TrCA/plain/plain.html

Descriptionl

Road lengthv

Maximum velocityrho

Car densitypdeceleration
probability

t_initthermalization steps

t_measuremeasurement steps

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

18• ソースコード– https://github.com/yohm/na
gel_schreckenberg_model• パラメータを引数で渡すとシミュレーションが実行される• 平均速度、流量とシミュレー
ションのスナップショットのpngファイルが出力される

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

19

Simulator選択• Simulator選択
クリック• Simulator情報確認クリック
モデルパラメータ＆シミュレーション設定
パラメータがDBに保存される[Name, Type, Default value, description]

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

20

ParameterSetとRun作成• Simulator選択
クリック• ParameterSetの画面へ

クリック

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

21

ParameterSetとRun作成•ParameterSetとRunの作成– パラメータの値をコンマ区切りで入力• v = [1,3,5]• rho = [0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5]– Target # of Runs に `1` を選択– Createボタンを押す① 値を指定② 1を選択③ クリックRIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

22

ParameterSetとRun作成
作成成功メッセージ

ParameterSet一覧表示

指定した値はDBに登録

Runの実行状況はプログレスバー表示
RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

23

ParameterSetとRun作成

プログレス
緑：正常終了
橙：実行中
青：準備中
赤：異常終了RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

24

結果確認

クリック
（緑色のプログレスバー）（IDは環境時間で異なる）

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

25

結果確認
ParameterSetのページ

パラメータ値の表示

ParameterSetに紐づいた
Runの一覧

クリック
RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

26

結果確認
Runのページ_output.jsonの内容はDBに保存される
結果ファイル一覧（クリックすると内容を表示）
画像ファイルを確認可能
結果ファイル一覧をダウンロード可能

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

27

結果確認
ファイルシステムでのパス

結果ファイルは一意のURLでアクセス可能(例)画像ファイルのURL:
http://192.168.99.100:3000/Result_development/56
1cdf093135350450000000/561dfaad356339008d260
000/561dfaad356339008d530000/traffic.png
ノートにURLを貼り付ければ結果をまとめるのに有用
RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

28

結果確認
クリック
（ParameterSetへのリンク）
クリック（Plot機能を表示）

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

29

結果確認
line plotを選択
X-Axis: rho
Y-Axis:flowクリック
DBに保存されたデータがプロットされる

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

30

結果確認
figure viewerを選択
X-Axis: rho
Y-Axis: v
Result: .traffic.png

クリック

画像データがプロットされる（マウスオーバーで拡大）

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

31

結果確認
scatter plotを選択

X-Axis: rho
Y-Axis:v
Result: .flow

クリック
DBに保存されたデータがプロットされる

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

32

結果確認
PlotにURLがつく（ノートにRULをはる）

画像のダウンロード可
データ点をダブルクリックで詳細を確認
RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

33

そのほか
• Documentを開く– バックアップ、データ共有など• rho=0.0でシミュレーションをしてみる– Simulatorはエラーを返す• 100個以上のParameterSetをCLIで作ってみる– oacis_cliコマンドを実行(コンテナ内で作業)

RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

34

OACIS停止• Docker Quickstart Tarminalの実行– OACIS停止
docker stop oacis_tutorial=================================================– OACIS再実行
docker start oacis_tutorial– コンテナ(仮想環境)へログイン# rootdocker exec –it oacis_tutorial bash
# userdocker exec –it –u oacis oacis_tutorial bash -l– コンテナ削除
docker stop oacis_tutorial; docker rm -v oacis_tutorial
RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

35

まとめ• 仮想環境(docker-engine)のインストール• OACIS起動• OACISを利用したシミュレーション実行体験– Simulator選択– ParameterSetとRun作成– 結果確認• 出力ファイル
• Plot• OACIS停止⇒ Session 2: simulator,analyzer,host登録方法の説明とハンズオン
RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE

36