-- Views
June 29, 16
スライド概要
Presentation material used in AWS Premier Night #1, June 29th, 2016
Cloud Computing, Fluid Dynamics, Mechanical Engineering | PhD | Consulting Director at SUPWAT
AWS Lambdaによる 流体画像処理の並列化 Parallel image processing for fluid mechanics with Lambda 株式会社サーバーワークス 技術2課 白鳥 貴久 AWS Premier Night #1, 29th June, 2016
About Me 白鳥 貴久, Takahisa Shiratori サーバーワークス 技術2課 略歴 2015年4月 サーバーワークスに新卒入社 2016年3月 技術2課に配属
About Me 白鳥 貴久, Takahisa Shiratori サーバーワークス 技術2課 略歴 2015年3月 博士(工学)を取得 研究分野:流体力学 2015年4月 サーバーワークスに新卒入社 2016年3月 技術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 は流れを計算するか 似ている? 似ていない? → 相互相関を使って評価する R fg = (X , Y ) = f (X , Y ) − f g (X + X , Y + Y ) − g N • i i =1 j =1 j m i j m f (X , Y ) − f g (X + X , Y + Y ) − g N N i =1 j =1 PIV の弱点 N 2 i j m N N i =1 j =1 2 i 計算時間が長い 夜始めた計算が翌朝終わっていないなど j m
並列にすると何がよいのか? 直列処理 並列処理 1枚目 と 2枚目 2枚目 と 3枚目 3枚目 と 4枚目 ・・・ 時間 今回の構成のねらい • • 画像処理を並列化し計算時間を短縮する 計算時間が 1/(N-1) になるはず (N: 画像の枚数)
AWS Lambdaとは? Lambda function
AWS Lambdaとは? S3 API Gateway cron etc… Lambda function
AWS Lambdaとは? S3 API Gateway cron etc… リクエスト Lambda function
AWS Lambdaとは? S3 API Gateway cron etc… リクエスト Lambda function
単発処理時の構成 1 2 準備 PIV のコードを Lambda function と して保存しておく 処理の流れ 5 3 1. S3 に画像ファイルを保存 2. 入力 CSV ファイルを S3 に保存 3. Lambda function が発火 4. 流れ分布を CSV として出力 4 PIV algorithm on Lambda 5. 出力 CSV を S3 に保存
並列処理時の構成 1 2 5 4 6 3 7 処理の流れ 1. 画像ファイルを全て S3 に保存 5. 子 CSV が S3 に保存される 2. 親 CSV を S3 に保存 6. 3. Lambda function が発火 子 CSV それぞれが Lambda function を 発火させる 4. 子 CSV が生成される 7. 結果が CSV として S3 に保存される
見た目良さそうな感じ エラーっぽいベクトルは後処理で取り除くことも 可能
単発 1, 2枚目 メモリサイズ タイムアウト 計算時間 最大使用メモリ [MB] [sec] [sec] [MB] 112 28 1536 300 235 22 並列 2, 3枚目 234 23 3, 4枚目 111 28
まとめ AWS Lambda を使うと, リクエス トに応じて処理を起動させる構 成を簡単に組むことができる 流体画像処理のような重めの計 算でもなんとか AWS Lambda で 並列化することができた