【レポート】クラウドを利用した製造業におけるデザインとパフォーマンスの最適化 #reinvent #AMF304

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

本記事はAWS re:Invent 2017のセッション「AMF304 - Optimizing Design and Engineering Performance in the Cloud for Manufacturing」のレポートです。

セッション概要

Manufacturing companies in all sectors—including automotive, aerospace, semiconductor, and industrial manufacturing—rely on design and engineering software in their product development processes. These computationally-intensive applications—such as computer-aided design and engineering (CAD and CAE), electronic design automation (EDA), other performance-critical applications—require immense scale and orchestration to meet the demands of today’s manufacturing requirements. In this session, you learn how to achieve the maximum possible performance and throughput from design and engineering workloads running on Amazon EC2, elastic GPUs, and managed services such as AWS Batch and Amazon AppStream 2.0. We demonstrate specific optimization techniques and share samples on how to accelerate batch and interactive workloads on AWS. We also demonstrate how to extend and migrate on-premises, high performance compute workloads with AWS, and use a combination of On-Demand Instances, Reserved Instances, and Spot Instances to minimize costs.

登壇者は以下の2名です。

  • David Pellerin - Worldwide Business Development Leader, Infotech, AWS
  • Hiroshi Kobayashi - Senior Solution Architect, Western Digital

レポート

アジェンダ

  • なぜクラウドでやるのか?
  • CAD/CAE/EDAアプリケーションにおけるデプロイをどうやるか
  • ストレージとコンピューティングの最適化
  • クラウド上のソフトウェアをどう管理するか?
  • リモートでの可視化について
  • 顧客からの声(Western Digital) - AWSでのHPC

なぜクラウドでやるのか?

  • 早く製品化したい
  • 柔軟性が欲しい。 ITによる制約のリスクを減らしたい
  • クオリティーの高い製品を素早く市場に提供したい
  • システムによってビジネスのリスクを減らしたい

どうやってクラウドはデザインと技術を最適化するのか?

  • 必要に応じてスケール可能なコンピューティングとストレージへのアクセス
  • オンデマンドでの作業のための仮想デザインとワークステーションのデプロイ
  • 新しいやり方でのデータの集約と分析
    • "ビッグデータとデータレイク" methodの適用
    • 予測分析のための機械学習の利用

CAD/CAE/EDAの場合、どんなことをしたいか?

  • 3D/CADのモデリングとレンダリング
  • 半導体の検査
  • 構造分析
  • 流体力学
  • 材料分析 etcetc...

今まで一般的だったCAD/CAE/EDAのスタック

  • 柔軟性がない
  • 年単位でライフサイクルを管理する必要がある

AWSによって最適化されたCAD/CAE/EDAのスタック

  • 作ったり消したり、その他の管理が数分で可能

EC2インスタンスの最適化

  • T2,M4 - 一般的な利用
  • コンピューティング最適化
  • ストレージとIO最適化
  • メモリ最適化
  • GPUとFPGA

インスタンスタイプ - Amazon EC2 (仮想サーバー) | AWS

並行実行の最適化

  • 結合の強くレイテンシーに厳しいアプリケーション
    • 拡張ネットワーキング、プレイスメントグループを適用したコンピューティング最適化されたEC2
  • ゆるく結合した並行実行しやすいアプリケーション
    • 様々なインスタンスタイプのEC2を組み合わせる
    • マルチAZ
    • スポットインスタンス
    • オートスケール
    • SQS
    • AWS Batch
  • 高いスループットを得るため、Grid Strategyを構築
    • 並列実行と、クラスターで独立したジョブの実行

ストレージの最適化

  • EFS
    • 高可用性、マルチAZ、フルマネージドで伸縮可能なネットワークにアタッチされたファイルシステム
    • 頻繁に参照する一時的なワーキングストレージとしての利用
  • EC2+EBS
    • シングルAZのファイルシステム
    • 高いIOPSを必要とする一時的なワーキングストレージとしての利用
  • Amazon S3
    • セキュアで冗長性があり、スケール可能なストレージ
    • 大切なデータの一次保存先としての利用
  • Amazon Glacier
    • セキュアで冗長性があり、スケール可能なストレージ
    • 頻繁に使用しないデータ用
    • 安価に利用できる大切なデータの長期保存用アーカイブとしての利用

ストレージのデータフローの最適化

  • インターフェースの選択
  • ストレージの選択

EC2価格モデルの最適化

  • オンデマンド
    • スパイクしうる場合
  • リザーブド
    • 決まった量の利用
  • スポット
    • スケールが必要で、時間には柔軟なワークロード

セキュアなグラフィックとコラボレーション

  • クラウドをHPCのようにpre/post-processingに使う
  • クラウドでリモートでのレンダリングやリモートデスクトップのためにGPUを使う
  • クラウドはコラボレーションをさらにセキュアにする
    • 利用中、保存済みデータの暗号化
    • キーとクレデンシャルの管理
    • 共同作業者に実データではなく描画用のデータののみを送る

DCVについて

  • 3Dアプリケーションに最適化されたリモートデスクトップのストリーミングプロトコル
  • アプリケーションのグラフィックアクセラレーションのためのelasticなGPUをサポート
  • 単一のHTTPSポートを利用
  • WindowsとLinuxをサポート
  • 応答速度を維持するための自動的な画質の変更
  • HTML5ベースでネイティブアプリのように使える
  • オーディオの出力、入力をサポート
  • GPUあり、なしをそれぞれサポート
  • リアルタイムな複数ユーザーの利用をサポート
  • GPU acceleratedなリモートデスクトップ、アプリケーションのストリーミングが可能

(参考)DCV - Remote OpenGL - 3D in the Cloud - NICE

EC2 + Elastic GPU = graphics flexibility

  • EBSのようにインスタンスのローンチ時にGPUをアタッチできる

AppStream2.0

  • セキュアなデスクトップアプリケーションのWebブラウザへの配信
  • 使った分だけ課金
  • アプリとデータをセキュアに保つ
  • グローバルなスケール

グラフィックのサポート

  • 3つのインスタンスタイプ(参考)
    • Graphic desktop
    • Graphic pro
    • Graphics Design
  • OpenGL,DirectX,OpenCL,CUDAのサポート

ソフトウェアマネジメントの最適化

  • ISV managed
    • ベンダーからAWSのマーケットプレイス経由で提供されるマネジメントサービス
      • ベンダーによって支払い、セキュリティ、パフォーマンスが管理される
      • 製品評価やトレーニング、もしくは本番での利用に向いている
  • Supported
    • VPCで顧客がソフトウェアを実行できる
      • 顧客が自分で管理、 ベンダーはサポートを提供
      • ベンダーのサポートを受けつつ自分でコントロールできる。バランスが良い
  • Self-mangaed
    • 自分のITポリシーを使って自分でVPCにデプロイ
    • 必要なものは全て自分で管理
    • ベンダーは (たぶん))AWSを使っていること自体に気づかない
    • 今時の一般的なデプロイ方法
  • Hybrid
    • オンプレのレガシーなインフラを維持するためにワークロードの一部だけAWSにデプロイ
      • コンプライアンスやライセンス、システムのライフサイクルによる制約のため
  • Cadence cloud productsの例 Customer managed or Cadence managed

顧客からの声(Western Digital) - AWSでのHPC

Western Digitalとは?

  • データストレージソリューションのリーダー
    • ストレージ製品のシミュレーションなどにAWSを活用しているとのこと

あらゆるデータを保存 | Western Digital(WD)

ユースケース1:ハイパースケールするCPUクラスター

  • プロダクトデザインの最適化のために大量のデザインパターンを検証した
  • 数百万スケールのスケールのHDD headのシミュレーション
    • ピークで80k以上のコア
    • 30日->9時間まで時間を削減
  • HDD head disk interfaceのシミュレーション
    • さらに動的に
    • サブナノ秒レベルでのシミュレーション
    • クラスター内での数千個のCPUコアを要素の様々なくみあわせにおけるシミュレーション

ユースケース2:GPUクラスター

  • HPC/機械学習のワークロードのアクセラレーション
  • ハードディスクの磁化のシミュレーション
    • CPUより40-100倍早くなった
    • P2からP3インスタンスにすることで最大5.5倍早くなった
  • 製造のためのディープラーニング/機械学習
    • AWS上のデータレイク
    • HadoopクラスターにGPUサーバをデプロイ
    • CPUよりも25倍早くなった

ユースケース3:Docker HPC

  • 大量の母数の調査
  • SSDの振る舞いのシミュレーション
    • Docker × Pyhon
    • 10分で終わるシミュレーションはスポットインスタンスが合う
  • NFSをS3にしてさらなるスケーラビリティを
    • NFSは2k-4kの並行実行が限界

ワークロードに合わせてコンピューティングを選ぶ

  • 全てのワークロードが同じではない
    • CPU重視、メモリ重視、 IO重視...
    • スパイクする、安定している
    • などなど
  • クラウドの利点を色々な角度から検証する
    • コスト
    • パフォーマンス
    • ワークフロー
    • ライセンス

まとめ

EC2のインスタンスタイプや価格モデル、ストレージの最適化についてはあらゆるプロジェクトで同様の考え方ができると思います。 最適化のためには、「何を軸に考えるか」の定義をしっかりとすることが大切だと改めて感じました。

個人的にはAppStream 2.0が気になったので、もう少し深掘りしてみようと思います。

私からは以上です。