この記事は OpenFOAM Advent Calendar 2017 Day20の記事です
OpenFOAMは、主に流体解析に利用できるオープンソースのソフトウェアです。ライセンスの制限を気にせずに計算環境をスケールできる点や、クラウドのAPIを実行する連携ツールが自由に開発できることから、クラウドとの相性がよいと言えます。
よくOpenFOAMを使っている方から
「AWS上でOpenFOAMを使ってみたいけど、AWSは設定項目が多くて取り掛かりづらいです。どこからはじめるのがよいでしょう?」
という相談をいただきます。そこで本記事では、AWS上でOpenFOAMを動かすうえで便利なツールやサービスを4つ、チュートリアルと合わせて紹介します。目的別に大きく「バッチ処理」「デスクトップ」に分けると、それぞれ以下のような分類になります
- バッチ処理: 「処理の流れは自動化できているので、あとは大量の解析を実行するだけ」な人向け
- CfnCluster
- AWS Batch
- Rescale
- デスクトップ: 「CADやparaFoamを確認しながら解析したい」という人向け
- CFD DirectのAMI
では詳しく見ていきましょう
CfnCluster
CfnClusterは、AWS上でのHPCクラスタ構築・管理ツールです。コマンドラインツールをインストールして使用することで、クラスタを簡単に作成したり削除したりできます。作成されたクラスタはマスターノードと計算ノードで構成され、マスターノードにはジョブスケジューラがインストールされています。ジョブの投入状況によって計算ノードが自動的に増減します。
おすすめの始め方
インストールから、
1 $ cfncluster create mycluster
2
を初めて実行するまでの流れは、公式のGetting startedを追うのが良いです。次に、ジョブの投入はこちらのQiitaが参考になります。AWSが用意しているこちらのチュートリアルでは、OpenFOAMのMPIジョブを投入することができます。
AWS Batch
AWS Batchは、AWSが提供しているバッチ処理サービスです。コンテナ仮想化技術であるDockerを利用して、バッチジョブをEC2に流し込みます。その都合上、MPIを使ったジョブを実装するのが難しいです。よってMPIを使うならCfnCluster、多ケースの同時実行ならAWS Batchと使い分けるのがよいです。ジョブを実行するEC2の料金だけで利用でき、スケジューラが動作する環境の管理や費用は不要です
おすすめの始め方
AWS BatchでOpenFOAMのジョブを実行するチュートリアルを書きましたので、お試しください。
Rescale
Rescaleは、ジョブの投入に応じて動的にクラスタを生成できる、クラウドHPCプラットフォームです。主要なCAEソフトウェア(OpenFOAM含む)のインストール済みクラスタを立ち上げられる点と、複数のクラウド上(AWS, Azureなど)で稼働している点が特長です。CLIやREST APIを備えているので、各種オープンCAEのツールと連携も可能です
おすすめの始め方
公式にOpenFOAMのジョブを投入するチュートリアルが提供されているので、これがおすすめです。Rescaleの中の方によるQiitaの日本語記事もあります。
CFD DirectのAMI
CFD Directより、GUIで使えるLinux(Ubuntu)ベースのAMIが提供されています。FreeCADでのモデルの確認や、paraFoamによる可視化もクラウド上で行いたい場合に便利です
おすすめの始め方
CFD Directのこちらのページに記載されている "4. Remote Desktop" までを行うと、OpenFOAMが入ったデスクトップサーバに対して接続するところまで体験できます。
おわりに
最近EC2が秒単位の請求になり、短時間で終わるジョブも高いコスト効率で処理できるようになりました。「オンプレミスのリソースが足りない」「CAE研修で一時的に環境が必要」「趣味で週末に解析してるけどさすがに個人でスパコンは申し込めない」などなど、困った場合はうまく使っていきましょう。