aws premier night #1
TRANSCRIPT
AWS Premier Night #1, 29th June, 2016
Parallel image processing for fluid mechanics with Lambda
株式会社サーバーワークス
技術 2 課白鳥 貴久
AWS Lambdaによる流体画像処理の並列化
About Me
略歴
2015 年 4 月 サーバーワークスに新卒入社
2016 年 3 月 技術 2 課に配属
白鳥 貴久 , Takahisa Shiratoriサーバーワークス 技術 2 課
About Me
略歴2015 年 3 月 博士(工学)を取得 研究分野:流体力学
2015 年 4 月 サーバーワークスに新卒入社
2016 年 3 月 技術 2 課に配属
白鳥 貴久 , Takahisa Shiratoriサーバーワークス 技術 2 課
流体力学 Fluid Mechanics
流体(液体 , 気体など)がどのように流れるのかを探る
http://www.mdte.jp/laboratory/l_train.html
http://guncanon.web.fc2.com/text/kuriki-01.htm https://www.sbd.jp/case/category/industry/electronics.shtml
PIV とはなにか
粒子画像流速測定法 (Particle Image Velocimetry, PIV)
PIV
どのように PIV は流れを計算するか
どのように PIV は流れを計算するか
どのように PIV は流れを計算するか
どのように PIV は流れを計算するか
PIV の弱点• 計算時間が長い
夜始めた計算が翌朝終わっていないなど
N
i
N
j
N
i
N
jmjimji
N
i
N
jmjimji
fg
gYYXXgfYXf
gYYXXgfYXfYXR
1 1 1 1
22
1 1
,,
,,,
似ている ? 似ていない ?→ 相互相関を使って評価する
並列にすると何がよいのか ?
時間・・・
1 枚目と
2 枚目
直列処理 並列処理
( N: 画像の枚数)
2 枚目と
3 枚目
3 枚目と
4 枚目 今回の構成のねらい• 画像処理を並列化し計算時間を短縮する• 計算時間が 1/(N-1) になるはず
AWS Lambda とは ?
Lambda function
AWS Lambda とは ?
Lambda function
S3API Gatewaycronetc…
AWS Lambda とは ?
Lambda function
S3API Gatewaycronetc…
リクエスト
AWS Lambda とは ?
Lambda function
S3API Gatewaycronetc…
リクエスト
単発処理時の構成
準備PIV のコードを Lambda function として保存しておく
処理の流れ1. S3 に画像ファイルを保存
2. 入力 CSV ファイルを S3 に保存
3. Lambda function が発火
4. 流れ分布を CSV として出力
5. 出力 CSV を S3 に保存
1 2
3
4
5
PIV algorithm on Lambda
並列処理時の構成
処理の流れ
1. 画像ファイルを全て S3 に保存
2. 親 CSV を S3 に保存
3. Lambda function が発火
4. 子 CSV が生成される
12
34
5 6
7
5. 子 CSV が S3 に保存される6. 子 CSV それぞれが Lambda function
を発火させる7. 結果が CSV として S3 に保存される
見た目良さそうな感じ
エラーっぽいベクトルは後処理で取り除くことも可能
単発 並列
1, 2 枚目 2, 3 枚目 3, 4 枚目メモリサイズ [MB] 1536
タイムアウト [sec] 300
計算時間 [sec] 112 235 234 111
最大使用メモリ [MB] 28 22 23 28
まとめ
AWS Lambda を使うと , リクエストに応じて処理を起動させる構成を簡単に組むことができる
流体画像処理のような重めの計算でもなんとか AWS Lambda で並列化することができた