こんにちは、SBクラウドのKSです。 皆さんはHPCという言葉をご存知でしょうか。 HPCは「High-Performance Computing 」の略で、科学技術計算などに使うスーパーコンピューターのことです。
科学技術の研究に使われる計算や保険数理の計算などの複雑な計算処理を実現しようとすると、高いネットワークパフォーマンス、高速ストレージ、大容量メモリ、非常に高いコンピューティング性能が必要になります。また、1台のサーバーでは計算処理速度に限界があるので、複数台サーバーによる分散処理が必要になります。もし、オンプレミスでこの様な環境を構築すると、莫大なコストがかかってしまいます。
Alibaba CloudではE-HPC(Elastic High Performance Computing)というプロダクト名でHPCサービスがリリースされました。 Alibaba CloudのE-HPCを活用することで、簡単な操作で複数台のサーバーで並列タスクを実行し、計算結果を取得するまでの時間を短縮することができます。また、不要になったノードをシャットダウンすることでコストを最適化することもできます。
E-HPCとは
オールインワンの高性能コンピューティングサービスを可能にするクラウドプラットフォームサービスです。 E-HPCを購入すると標準構成ではログインノード、計算ノード、ジョブスケジューリング(管理ノード)、ドメインアカウント管理(管理ノード)の4つのECSが作成されます。それぞれ役割が異なり、ユーザーは唯一EIP(グローバルIP)が付与されるログインノードにログインしてE-HPCを操作します。 E-HPC購入時に管理ノードの2つをそれぞれ2個ずつの高可用性(HA)システムにすることができて、自動スケール設定で計算ノードを自動的にスケールイン・アウトができます。
E-HPCを触ってみる
構成としては下記のようになります。
VPC、NAS作成
まずはVPCを作成します。もちろん既存のVPCをつかうこともできます。 2018年4月現在、E-HPCは中国の5リージョンでしか購入できないので、今回は杭州リージョンに作成しました。
VPCに関してはこちら
次にE-HPCの共有ストレージとしてNASを準備します。 (ファイルシステムの作成とマウントポイントの追加)
NASに関してはこちら
クラスタ作成(E-HPC購入)
ここからは実際にE-HPCを購入していきます。 E-HPCのクラスタ作成に関しての詳細はこちら
プロダクトから「E-HPC」を選択して、左ペインの「クラスタ」から、画面上部のリージョン一覧よりリージョンを選択(今回は杭州リージョン)して「クラスタ作成」をクリックします。
クラスタ作成画面に変わるので、必要項目を入力・選択します。 ハードウェア構成画面での押さえておくべきポイントはノードに関する部分です。 尚、選択できるインスタンスタイプはリージョン毎に異なりますが、GPUインスタンスを選択できるリージョンもあります。
下の画像の赤線で囲んだ計算ノードは数量を選択できます。最小数は「1」ですが、あとから手動で増やすことも、自動スケーリングで必要に応じて増減させることもできます。 そして、青枠で囲んだ管理ノードは「4(HA)」を選択することで、4インスタンスになります。これで管理ノードであるジョブスケジューリング、ドメインアカウント管理をそれぞれマスター・スレーブのHA(ハイアベイラビリティ)構成にすることができます。
次はソフトウェア構成の画面です。 E-HPCでは現在7種類のHPC 用アプリケーションソフトウェアを利用することができます。分子動力学シミュレーション用・数値流体力学を含む連続体力学の処理用など、用途に沿って選択してください。選択したアプリケーションをクラスタ作成時にプリインストールします。
・GROMACS ・GROMACS-GPU ・LAMMPS ・OpenFOAM ・RELION-GPU ・TensorFlow ・TensorFlow-GPU
最後に基本構成の画面です。 クラスタ名、パスワードを入力して利用規約にチェックを入れて「OK」をクリックします。
今回の設定では10分ほどで作成が完了しました。
ECSのコンソール画面で確認しても合計6台のECSが作成されていることがわかります。 そしてログインノードの1台のみEIP(グローバルIP)が割り当てられています。
※注意点 ECSのコンソールでノードを操作すると、ノードの切断、システムのスケジューリングの失敗などが発生することがあります。そのため、トラブルシューティングの目的以外でECS コンソールを使用して E-HPCクラスタノードを操作しないでください。 リソース解放に関してはE-HPCのコンソールからリリースすることでECS、EIPをリリースできます。
ユーザー作成
クラスタを作成したら次はroot以外のユーザーを作成します。 rootユーザーはクラスタ作成時にウィザードで入力したパスワードでログインできますが、管理者と一般ユーザーで分ける場合に実施してください。
左ペイン「ユーザー」から「ユーザーを追加」をクリックします。
必要項目を入力します。(ユーザー名、ユーザーグループ、パスワード) ユーザーグループは以下から選択できます。
・デフォルト承認グループ:Sudo権限のない通常の E-HPC クラスタユーザー ・sudo対応グループ:Sudo権限がある root 以外のE-HPC クラスタ管理者
これでユーザーが作成できたので、ログインノードに作成したユーザーでログインできます。コンソールからユーザー権限やパスワードの変更、削除なども可能です。
E-HPC管理画面(ノード、共有ストレージ)
ここではE-HPCの管理画面の機能をいくつか紹介します。
まずは「ノード」の管理画面です。赤枠で囲んだ箇所からノードタイプを選択(管理ノード、計算ノード、ログインノード)すると、そのノードに属するECSの情報が表示されます。
次は「ストレージ」画面です。 マウントしたNASの情報が確認できます。
他にはジョブの管理やログを確認できます。
データインポート
OSSを使ってジョブ関連のデータをインポートすることができるので、試してみました。 E-HPCを作成した杭州リージョンにOSSのバケット「ehpc-oss」を作成して、その中にあるテストファイル「test.py」をインポートします。
OSSのコンソールで「test.py」の編集をクリックします。
ファイルURLのコピーをクリックします。
E-HPCのログインノードにログインしてOSSからインポートします。
[test.user@login0 ~]$ wget https://ehpc-oss.oss-cn-hangzhou.aliyuncs.com/test.py --2018-04-10 13:02:18-- https://ehpc-oss.oss-cn-hangzhou.aliyuncs.com/test.py Resolving ehpc-oss.oss-cn-hangzhou.aliyuncs.com (ehpc-oss.oss-cn-hangzhou.aliyuncs.com)... 116.62.99.172, 116.62.99.183 Connecting to ehpc-oss.oss-cn-hangzhou.aliyuncs.com (ehpc-oss.oss-cn-hangzhou.aliyuncs.com)|116.62.99.172|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 2 [text/x-python-script] Saving to: ‘test.py’ 100%[======================================>] 2 --.-K/s in 0s 2018-04-10 13:02:18 (508 KB/s) - ‘test.py’ saved [2/2] [test.user@login0 ~]$ ls test.py
自動スケーリング
自動スケーリング機能は設定したポリシーに基づき、クラスタのリアルタイム負荷に応じてクラウドリソース(計算ノード)を動的に割り当てることができます。設定方法をご説明します。
左ペインの「自動スケール」から変更をクリックします。
注意:この機能はデフォルトでは無効になっています。
画面左側がスケールアウト、右側がスケールインの設定です。 スケールアウトは間隔や最大数、バッファを持たせるように設定できます。 スケールインは設定することによって、アイドル状態のノードを解放することができます。
さいごに
今回はE-HPCの簡単な触りの部分、クラスターの組み方についてのお話でした。自動スケーリングを用いてHPC 用アプリケーションソフトウェアを実行できることがE-HPCの利点の1つになります。 このようなジョブスケジュールの部分についてはまた別の記事でご紹介させていただきます。