オラクルへのクラウド移行検討 第3回  〜クラウドHPCって最近どうなのよ？〜

OCLS（[Oracle Cloud Lift Service](https://www.oracle.com/jp/cloud/cloud-lift/)) を利用してクラウドの検討、PoC を実施したケースを、お伝えできる範囲で提供していきます！

# 今回のユースケースは・・・
『**オンプレミスで解析環境として利用している HPC 環境を Oracle Cloud Infrastructure(以後 OCI と表記) での実現を検討し、PoC を実施したケース**』のご紹介です。

クラウド黎明期は 『**クラウドで HPC は向いていない**』と言われてきましたが、それが**近年どう変わったのか？**、**メリットはなんなのか？** というのをこのケースから感じて頂ければと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/4ca48df3-828f-8764-2f1a-ff47a74ff1c1.png)



# 検討ポイント！！
「**HPC 環境をクラウドで利用したい！、試したい！**」と考えるお客様の多くに共通しているポイントに以下があります。

- **性能計測**
- **コスト**
- **クラウドへのアクセス**

これらについて、『**今回のケース**』と、OCI に限らず『**クラウド全般の傾向**』を踏まえて掘り下げていきたいと思います。

# 1. そもそもクラウドで HPC 利用の検討背景とは？
クラウドで HPC を利用したいというお客様の多くはすでにオンプレミスに HPC 環境をお持ちです。
今回のケースでもオンプレミスに HPC 環境があり、そこには十分なリソースもあるということでしたが、<font color="Red">他組織との共同研究で利用できる環境が必要</font>という背景がありました。

共同研究する際、自社の環境に他社をログインさせるというのは、会社のポリシーとしてかなり難しいことになります。 

その点、クラウドであれば双方にとって、以下の点でとても利用しやすい環境といえます。
- **インターネットさえ接続できればよい**
- **都度、新たに環境を構成できるので、既存のデータなどが存在しないクリーンな環境**

# 2. OCLS 利用の背景
HPC 環境は会社の IT 部門ではなく研究部門や開発部門自身で管理をされているケースが多いです。
そのような場合、 IT インフラ知識やクラウドの構築構築ノウハウが不足していて自部門だけではクラウドを利用するのはハードルがあり、OCLS のようにベンダーによる技術支援が重要となります。


# 3. 性能計測
オンプレミスの HPC 環境は物理サーバと高速インターコネクトである Infiniband で構成されることがほとんどです。
そういった環境を長年利用されている方からすると、クラウドはどうなのか？っという懸念が生まれます。

以前のクラウドは VM に Ethernet でしたが、近年、各社の HPC 向けの構成が充実してきました。
- **HPC に向いた高クロックなベアメタルインスタンスの登場**
- **高速インターコネクトのサポート(Infiniband, RoCE, 独自I/F)**

もちろんクラウドベンダー間で構成の差はありますが、こららにより<font color="Red">概ねオンプレミスと遜色のないレベルの性能が出せる</font>ようになってきました。また、クラウドは定期的に最新の CPU や GPU のインスタンスがリリースされるので、常に最新の技術を手軽に利用できるのもメリットです。

今回のケースでもアプリケーションと実データを用いてベンチマークを実施しました。

結果、性能はオンプレミスよりかなり向上し、想定していたコア数(インスタンス数)より少なく済む(=想定よりコストを減らせる)ことが分かりました。

オンプレミスでは固定のノード数で計算することになりますが、クラウドではノードを増やすことで計算時間の短縮をすることが可能です。アプリケーションのライセンス形態で並列数が無制限のものやオープンソースについてはこのような恩恵を得やすいと言えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/f864e613-80fa-7a75-674a-ac6882f7fbe7.png)

:::note info
性能計測について OCLS の支援内容:
・ クラウド上のインフラ構築、ジョブスケジューラなど実行環境のセットアップ
・ アプリケーションのインストール
:::

# 4. コスト
クラウドのメリットである「<font color="Red">使ったリソースの分だけの支払いをしたい</font>」、つまりオンデマンド利用を HPC 観点でどう実現できるか、がポイントになります。利用のピークに合わせてサイジングをするオンプレミスとは考え方が大きく異なる点になります。

オンデマンド利用をすることで以下のように需要に合わせたリソースを利用することが可能になり、余計なリソースにかけるコスト削減が可能となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/e309d099-551b-45c4-2c6a-b23cd2585b0b.png)

クラウドで HPC を構成する場合、概ね以下のような構成になります。<font color="Red">オンデマンドで利用するのは計算ノード</font>となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/85255178-04eb-7daa-79e2-720ce8dd0c3c.png)

まずこのような構成をクラウドに構築することになるのですが、<font color="Red">クラウド各社環境を作成できるテンプレートのようなものを整備しており、簡単に構築することが可能</font>です。そこで構成される<font color="Red">ジョブスケジューラにはジョブと連動して計算ノードの作成・削除をするスクリプトなどの仕組みも含まれており、オンデマンド利用もすぐに始めること可能</font>です。

これらの仕組みにより、<font color="Red">最小限のコストで計算を行うことが可能</font>です。

商用ジョブスケジューラにはクラウドのオンデマンド利用をサポートした製品が登場しています。オンプレミスで同じ商用ジョブスケジューラを利用されているのであればこういった選択肢が有力になります。
参考: https://altair.com.es/resource/cloud-bursting

また共有ストレージについても、各社従量課金制のフルマネージドなファイルストレージがあります。

:::note info
コストについて OCLS の支援内容:
・ オンデマンド利用の設定
:::

# 5. クラウドへのアクセス
クラウドの利用で避けて通れない一つのポイントがネットワーク接続です。

オンプレミス(会社)とクラウドの接続方法としては大きく以下の選択肢があります。
- **インターネット接続**
- **インターネット VPN 接続**
- **閉域網接続**

今回のケースでは、PoC ということもあり『**インターネット接続**』で試みることになりました。

クラウド HPC 環境にインターネット接続する場合、アクセス先は大きく以下の2つが考えられます。
- **ログインノードへの SSH 接続**
- **プリポストノードへのリモートデスクトップ接続**

ただし、<font color="Red">これらのアクセスは多くの会社や組織においては許可されていません</font>。通常社内からインターネット接続は Proxy を経由するため、直接インターネットに出ることはできません。
つまり、<font color="Red">インターネットに出れる https(443ポート) でクラウド HPC 環境にログイン</font>しなくてはなりませんでした。

今回の環境ではプリポストノードとして Windows Server がありましたので、これをうまく活用する方針としました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/ece5c6b4-6a34-05ad-8a7b-0637332f8193.png)

通常、Windows Server へはリモートデスクトッププロトコルでアクセスすることになりますが、[リモートデスクトップゲートウェイ](https://learn.microsoft.com/ja-jp/windows-server/remote/remote-desktop-services/rds-plan-access-from-anywhere)を構成することで https 経由で Windows に接続することが可能となりました。

:::note info
「クラウドへのアクセス」について OCLS の支援内容:
・ 要件のヒアリングと実現手段の検討
・ RD ゲートウェイの提案と構築
:::


# 6. 最後に
これまで HPC 環境を準備するには、ファシリティの準備からサーバ、スイッチ、ストレージなど様々な機材の購入、セットアップを行う必要がありました。
ここまでご紹介したとおり、クラウドの登場、 HPC 周辺サービスの充実により大規模な計算環境の導入のハードルはかなり下がったのではないでしょうか。

とはいえ、実務で利用できる環境を整備に向けては、アプリケーションベンチマークによる性能確認、机上・実機による実現性の評価が必要となってきます。また規模感によってはシステムインテグレータの支援が必要になるかもしれません。

この記事が HPC 環境を必要とされる方の参考となれば幸いです。

# 7. 参考情報

- クラウド HPC で OCLS を活用されたお客様事例: [SUBARUが直面したHPC環境の電力やスペース不足「OCI」を移行環境に選んだ理由を訊いた](https://enterprisezine.jp/article/detail/16584)
- [OCI HPC Solution](https://www.oracle.com/jp/cloud/hpc/)
- [HPC向けOracle Cloud Infrastructure(OCI)最前線](https://www.pccluster.org/ja/event/pccc22/data/PCCC22_5_11_oracle.pdf)