クラウド環境構築システムVCPによるOpen OnDemand環境の簡易構築
2023年10月11日
大江 和一
国立情報学研究所

クラウト基盤研究開発センター

PCCC Open OnDemandワークショップ© 2023 National Institute of Informatics

1

はじめに
初心者がHPCクラスタの前提知識なしでアプリケーション実行が可能なOpen OnDemandの利用が進んでいる。しかしながら、その構築・運用は初心者にとって容易ではない。
NIIでは、SINETとクラウドを活用して再現性のある研究教育用アプリケーション環境の構築・運用を支援する学認クラウドオンデマンド構築サービス（OCS）を提供しており，複数の学術機関に利用頂いている．VCP (Virtual Cloud Provider) は，OCS を実現するための中核となるシステムである．
本講演では，VCPを用いることでOpenHPC環境とOpenOnDemand環境を容易に構築できることを紹介する。
2

Outline
1. 基盤ソフトウエアVCP、及び学認クラウドオンデマンド構築サービス（OCS）の概要
2. VCPを用いたOpenHPC環境構築/Open OnDemand環境構築のご紹介
3. 操作例（ハンズオンセミナーのビデオ（約３分））
4. アプリケーションテンプレートのご紹介
5. まとめ3

VCP(Virtual Cloud Provider)とはテンプ
レート

NII Datacenter
VC
コントローラon-premise
University orResearch Institute

SINET VPN

Public/AcademicCloud

CloudC

Cloud
Cloud BA
VirtualSegment

VPNで接続された１つ以上のクラウドとオンプレミスシステム（仮想クラウド）でアプリ環境構築を支援 クラウドの異なる制御APIの差異を吸収するVCコントローラを提供
 アプリケーションテンプレートによるアプリケーション環境構築支援

 アプリケーションの構築・運用手順を記述したJupyterNotebook形式のファイル
4

VCPの概要
On-premise
ProviderテンプレートJupyter
Notebook
VCP SDK(Python)

VirtualCloud Provider(overlay cloud)Real Cloud
Provider A

Real Cloud
Provider B

Real CloudProvider C

Application-1
VM, BM,or Server

VM orBM

VM orBM

VM orBM

VCコントローラappbins/libs

Container

appbins/libs

Container

VCP Base Container

Application-2
VM orBM

アプリケーション利用者

OS (kernel)

VM or BMw/ GPU

Hardware / VM
Application-3
VM or BM

Academic Hi-Speed Backbone Network, SINET (L2VPN)
5

VCPの概要
On-premise
ProviderテンプレートJupyter
Notebook
VCP SDK(Python)

VirtualCloud Provider(overlay cloud)Real Cloud
Provider A

Real Cloud
Provider B

Real Cloud
Provider C

Application-1
VM, BM,or Server

VM orBM

VM orBM

VM orBM

VCコントローラappbins/libs

Container

appbins/libs

Container

VCP Base Container

Application-2
VM orBM

アプリケーション利用者

OS (kernel)

VM or BMw/ GPU

Hardware / VM
Application-3
VM or BM

クライアント側からのアクセス方法
Academic
Hi-Speed Backbone Network, SINET (L2VPN)に関して説明6

クライアント側からのアクセス方法
VC利用者

 アプリケーションテンプレート*からVCP
SDKを利用してVCP REST APIを操作

VCコントローラ

 VCP REST API（プロバイダIFを抽象化）からTerraformを介して各クラウドを操作

Jupyter Notebook
VCP SDK (Python)
各クラウド固有設定
VCコントローラ

VCP REST API
Terraform..

各クラウドへ*: JupyterNotebook（+NII拡張）で記述

7

アプリケーションテンプレート

他者が作ったテンプレートの流用も可能

図表を組み合わせた説明を挿入できるスクリプトを組み込むことができ、ここから実行できる。実行結果を残すことも出来る。
8VCPの概要
On-premise
ProviderテンプレートJupyter
Notebook
VCP SDK(Python)

VirtualCloud Provider(overlay cloud)Real Cloud
Provider A

Real Cloud
Provider B

Real Cloud
Provider C

Application-1
VM, BM,or Server

VM orBM

VM orBM

VM orBM

VCコントローラappbins/libs

Containerappbins/libs

Container

VCP Base Container

Application-2
VM orBM

アプリケーション利用者

OS (kernel)

VM or BMw/ GPU

Hardware / VM
Applicatio
n-3

VCノードの構成を説明

VM or BM

Academic Hi-Speed Backbone Network, SINET (L2VPN)
9

VCノード構成
Docker in Docker構成 ベースコンテナ
死活監視やメトリクス収集などシステムの基本機能
 アプリケーションコンテナ
アプリケーションと関連ソフトウェアをベースコンテナ上に起動

ユーザのアプリケーションコンテナ

appbins/libs

Container
VCP のベースコンテナ

appbins/libs

Container

VCP Base Container
OS (kernel)
Hardware / VM
10

VCPとOCSの関係
学認クラウドオンデマンド構築サービス（OCS）
 あらかじめ用意されたテンプレートを指定して実行するだけで、 大学・研究機関が契約しているSINETと連携したクラウドに計算資源を確保し、 その上で動作するアプリケーション環境のインストールや設定までを自動的に行うことが可能となるNIIのサービス。
 その中核となるソフトウエアがVCP

https://cloud.gakunin.jp/ocs/

11

Open OnDemand環境の構築

初期状態

VCコントローラ

VC
利用者

クライアント環境
HPCテンプ
レート v2

12

Open OnDemand環境の構築

マスタノード、NFSサーバ起動
VCコントローラ

VC
利用者

クライアント環境
HPCテンプ
レート v2slurmctld

マスタノード

NFS

13

Open OnDemand環境の構築

計算ノード起動

VCコントローラ

VC
利用者

計算ノード

計算ノード

計算ノード

アプリ
ケーション

アプリ
ケーション

アプリ
ケーション

slurmdslurmdslurmdクライアント環境
HPCテンプ
レート v2slurmctld

マスタノード

NFS

14

Open OnDemand環境の構築

環境設定後にOpenHPC環境の利用が可能に
VCコントローラ

VC
利用者

計算ノード

計算ノード

計算ノード

アプリ
ケーション

アプリ
ケーション

アプリ
ケーション

slurmdslurmdslurmdクライアント環境
HPCテンプ
レート v2slurmctld

NFS

Open HPC環境
マスタノード15

Open OnDemand環境の構築

Open OnDemandテンプレートを用いて、Open OnDemand環境を構築
VCコントローラ

VC
利用者

計算ノード

計算ノード

計算ノード

アプリ
ケーション

アプリ
ケーション

アプリ
ケーション

slurmdslurmdslurmdクライアント環境
OpenOnDemand
テンプレートNFS

slurmctld

Open HPC環境

OpenOnDemand

マスタノードユーザ

16操作例（ハンズオンセミナーのビデオ（約３分））
HPCテンプレートv2を用いたOpenHPC環境構築
Open OnDemandのインストール
Open OnDemand フロントエンド構築とアクセス確認
Open OnDemand ジョブ実行
Open OnDemand JupyterNotebookサーバ起動
Open OnDemand Linpack起動

17

アプリケーションテンプレート
HPCテンプレート v2 (VCP SDK v21.04対応 (AWS、Azure、Oracle Cloud、mdx で動作確認済み)) OpenHPC v2.xで配布されているパッケージを利用して、クラウド上にHPC環境を構築するテンプレート。v1 の機能に加え、GPUノードの利用とNVIDIA社のNGCカタログのコンテナの実行が可能

Open OnDemand構築テンプレート (VCP SDK v21.04以降対応 (mdxで動作確認済み)) HPCテンプレートv2で構築したOpenHPC環境上にOpen OnDemand環境を構築する

18

アプリケーションテンプレート（続）手書き文字認識システム構築テンプレート (VCP SDK v21.04以降対応 (AWS、Azureで動作確認済み)) Open HPC v2テンプレートをベースにGPU ベースの学習システム（Tensorflowを使用）の構築とCPUベースの認識システム（独自仕様）の構築を行い、フロントエンドとしてJupyterNotebook上に手書き数字認識システムを動作させる

計算資源補完テンプレート (VCP SDK v20.04以降対応 (AWS、Azureで動作確認済み)) オンプレミスのバッチ型計算機システムの計算ノード不足時に、クラウド上に同じソフトウェア構成を持つ計算ノードを自動的に立ち上げ、バッチシステムに組み込むクラウドバースト機能を提供。Torque等クラウドに対応していないバッチシステムでも、簡単なプラグインを作成することでクラウドバーストが可能。なお、本テンプレートはipynb形式ではなく、Pythonならびにbashスクリプトで記述されている
19

アプリケーションテンプレート（続）LMS (Learning Management System), JupyterHubなどのアプリケーションテンプレートも公開中です。

URL: https://github.com/nii-gakunin-cloud/ocstemplates/

20

まとめ
VCP (Virtual Cloud Provider) を用いることで、OpenHPC環境とOpen OnDemand環境を容易に構築することをご紹介
学認クラウドオンデマンド構築サービス（OCS）にお申込みいただければ、VCPを利用することができます！

https://cloud.gakunin.jp/ocs/
各種お問い合わせはいかにお願いいたします。

NIIクラウド支援室 cld-office-support@nii.ac.jp
21

よろしければ、OCSユーザ登録をお願い致します！
https://reg.nii.ac.jp/m/ocs_user_registration

 ご登録頂ければ、OCSに関する各種情報（OCSハンズオンセミナー、ユーザーズミーティング、など）をお送りさせていただきます！
 OCSの利用を検討中の状態でも登録頂けます！

22

Thank You.

23