PCCC22（第22回PCクラスタシンポジウム）「HPCシステム技術の最前線」

AI/HPC時代を実現するためのソフトウエア「HPC向けコンテナSingularity開発動向」

2022年12月5日 富士ソフト アキバプラザ
Pacific Teck Japan

Senior Engineer

森本賢治

Pacific Teck Japan ポートフォリオ◼ ジョブスケジューラ◼ HPC向けコンテナ◼ S3互換クラウドストレージ◼ ルール指向高機能ストレージ構築ミドルウエア◼ クラスター構築・管理ツール◼ ストレージソフトウエア◼ 並列ファイルシステム
Subheading Sample HPC & Machine Learning Experts Subheading Sample◼ 開発及びプロファイリングツール
YYYY MM DD Pacific Teck / Event name – Tokyo, Japan◼ オブジェクトストレージ
随時拡大していきます©︎2022 - Pacific Teck Japan G.K.

Singularityの種類

SingularityCE▪ コミュニティ主導のオープンソース。有償サポートなし。
▪ 新機能は最初に実装されるが、セキュリティ対応や修正は最新版にのみ適用。

SingularityPRO▪ Sylabs社による検証・署名済みバイナリパッケージを提供。
▪ 長期サポート（リリースから2年）・機能追加・プラグイン開発を依頼可能。
▪ 脆弱性の公開前に対応済みバイナリが提供され、バックポートにも対応。
Subheading Sample
HPC & Machine Learning Experts Subheading Sample

Singularity Enterprise▪YYYY
コンテナランタイムとしてはSingularityPROを提供。
MM DD Pacific Teck / Event name – Tokyo, Japan▪ イメージ作成のオンデマンド環境RemoteBuilder, 電子署名の公開鍵管理
KeyStore, イメージのリポジトリLibraryの３機能をKubernetes上で実現。
EKS, GKEもサポート。ただし、Kubernetesの運用はユーザーマター。

©︎2022 - Pacific Teck Japan G.K.

SingularityとApptainerの関係
2.x.y

・・・

3.5.x

3.7.4

・・・・ー総括ー

3.7.3

・・・

3.8.0

3.7.4

3.7.x

・・・・

3.8.0

・・・

3.9.0

・・・・

3.9.x

・・・・

3.8.4

・・・

3.10.0・・・・

EOL

Subheading Sample HPC & Machine Learning Experts Subheading Sample
1.0.0
•

・・・・

1.1.0

元々、主要開発者は殆どがSylabs所属、技術の根幹を成すSIF規格YYYY MM DD Pacific Teck / Event name– Tokyo, Japan
Sylabsからの支援を失ってプロジェクトごとLinuxFoundation（ファイルフォーマット及びAPI）もSylabsがメンテナンスを継続。
••

HPCngへのリソース提供、リリースコントロールもSylabsが担っていたへ移管。その際Apptainerに改称。公開されるSingularityCEからが、方向性で折り合いつかず、プロジェクトをCEとしてフォークした。

セキュリティ対応及びバグ修正の多くを取り込んでいるが、Sylabs

Sylabsとしては、Singularityからの派生ソフトウエアについては、SIF依存する仕様の削除が進んだ模様。に準拠している限りは互換性を排除しない。
©︎2022 - Pacific Teck Japan G.K.

SingularityとSIF
Singularityは、コンテナランタイムのみを指すのではなく・・・・
コンテナイメージの規格としてのSIF形式を含む概念。
一般的にSingularityの利点と言われる特徴の中には、SIFの優位性が多数ある。

コンテナランタイム• コンテナを起動、その中でアプリケーションを動かすソフトウエア。
• High/Low level の2階層で構成される。
• OCI寄り実装• High Level : Docker, Containerd, K8s, podman• Low Level ： runc, runnc, gVisor, Kata Container• Singularity: High/Low 同居。HPC特化で独自に進化

コンテナイメージ

Subheading Sample HPC & Machine Learning Experts Subheading Sample• アプリケーションとそれに必要なランタイムを含んだもの。
• 特定のイメージフォーマット（形式）に従って保存されるSingularityコンテナランタイムが、• Docker Image manifest V2 Schema2
SIF以外のイメージからコンテナをYYYY MM DD Pacific Teck / Event name – Tokyo, Japan• Docker Image をベースに標準規格として策定された、OCI他のコンテナランタイムが、SIFから（Open Container Initiative）Image 形式
コンテナを起動してもよい。
• Singularityの標準、イメージを1ファイルにカプセルする
SIF(Singularity Image Format)
標準規格OCIへの対応を進める。
©︎2022 - Pacific Teck Japan G.K.

SIF利用による優位性

可搬性

フットプリント

パフォーマンス• シングルファイルで保存するため、持ち運びが用意。
• 通常のNASでの管理も可能。
• 電子署名による同一性を保証。

• 内部はSquashFS。tar+gzipを直接マウントしているイメージ。
• オンメモリでアクセスでき、事前に展開する必要がない。メモリやCPU負荷も極めて小さい。

• ファイルアクセスはローカルのオンメモリで行われ、共有ファイルシス
テムへの、メタデータアクセス負荷を極小化できる。
通信負荷も下げられる。

Subheading Sample HPC & Machine Learning Experts Subheading Sample「共有ファイルシステムは常に高負荷。
特に昨今、AIのワークロードがPython
ありがとうPython。
ベースで実行されるため、様々な環境がもうAnacondaは禁止したい。」
ユーザーのホームディレクトリに展開され、YYYY MM DD Pacific Teck / Event name – Tokyo,
Japan @ BeeGFS BoF SC22
大きな問題となっている。
Dr. Stanzione

参考：弊社ブログ
Singularity利用による共有ファイルシステムの負荷軽減©︎2022 - Pacific Teck Japan G.K.

標準規格のOCI対応を目指す背景

Singularity

共有・統合

リソース隔離・制限

OCI

Singularity• コンテナをホスト環境の一部として捉え、各リソースを共有して使えることを目指した。
• シェルからのHPCアプリケーションの起動に特化した使い勝手。
• イメージをシングルファイル内で固定して再現性を担保。

OCI(Docker)• ホストとコンテナを別システムとして隔離することを求めた。特にマルチテナント環境では必須要件。
Subheading Sample HPC & Machine Learning Experts Subheading Sample• 複数コンテナを組み合わせて、特定用途向けサービスのシステム構築に用いられることが多い。
• レイヤーを重ねることで、差分アップデートを容易にしたイメージ配布形態。
YYYY MM DD Pacific Teck / Event name – Tokyo, Japan••

イメージの更新や世代管理は容易だが、高性能を得にくいDockerでAIワークロードを動かすことが標準的になった結果、それらをHPC環境で動かすことが求められた。
その一方、オーケストレーション環境でHPCアプリケーションを使ったり、逆にSIFの高速性を活かしてAIワークロードを運用したい等、相互利用を意識したりする必要が出て来た。
©︎2022 - Pacific Teck Japan G.K.

OCI規格を通じた他実装との連携のイメージ

Singularityにはオーケストレータがない

OCIにはKubernetesという強力なデファクトスタンダードSIFの利用はパフォーマンス面で高い優位性がある。

（サンプルイメージ：例えばこのようなものが実現できるかもしれない）
Kubernetes

オーケストレータ

containerd＋Singularity＋runc
ランタイム Sample HPC & Machine
Subheading
Learning Experts Subheading Sample

イメージ

OCI
Image

SIF-OCIImage

SIFImageYYYY MM DD Pacific Teck / Event name – Tokyo, Japan

Encapsulated
OCI ImageSingularity本来の利便性や使い方はそのままに、コンテナの業界標準に自然に組み込まれることで、分野や用途を問わず、相互にメリットを享受。
©︎2022 - Pacific Teck Japan G.K.

コンテナの抱えるセキュリティ課題とSingularityの対応
透明性の確立• コンテナに脆弱性や問題のあるアプリケーションが含められてしまうと発見が困難。
• SBOMにより、コンテナがどのようなソフトウエアで構成されているのか把握できるようにする。
• 米政府機関では、この対策がないブラックボックス状態のイメージの実行を禁じる動き。
• SIFはシングルファイルでイメージを構成するため、ファイル差し替えや選択ミスを防ぐ仕組みが必要。

電子署名の正当性• OpenPGPのクリアテキスト形式がイメージ署名に用いられてきたが、鍵の正当性を保証する方法がない。
• PEM形式を使う方法もあるが、既に実績が多いDSSE形式をCEで検証開始。

Subheading Sample HPC & Machine Learning Experts Subheading Sample

リソース制限の有効性• cgroups v2やseccomp等により、コンテナが無制限にリソースにアクセスできない仕組みの実装と運用。

特権の排除

YYYY MM DD Pacific Teck / Event name – Tokyo, Japan• rootlessやunprivilegedというキーワード。root権限を全く必要としないコンテナ利用の一般化。
• 実現には様々な方法があり、CEをベースに模索。（fakeroot, proot等のサブコマンド、FUSEによるマウント）©︎2022 - Pacific Teck Japan G.K.

Singularityの仕様と実装

過去
3.9以前

ー過去・現在・未来ー• OCI互換ランタイムは独自実装で、メンテナンス工数がかかる上、追従も困難だった。
• ホスト側の/etc/sub{u,g}idを用いた、ユーザー名前空間のみ対応。
• Encryption対応, OpenPGPによる電子署名など。
• GPU利用は/devを直接叩き、ランタイムライブラリはbindしていた。

• OCIランタイム実装を削除し、OCI標準のruncを使うように変更。
• SBOM作成とセキュリティスキャンをSyft及びGrypeを用いて可能に。
• SquashFUSE, unprivileged cgroups v2 等に対応し、権限レス動作を向上。
現在• 電子署名の強化を検討開始。DSSEの実装等。
3.10 – 3.11 • NVIDIA GPUのリソース・ランタイム共有に関してnvidia-container-cli対応。
Subheading Sample HPC & Machine Learning Experts Subheading Sample

未来4.0～• SIF規格を拡張し、OCIイメージをSIFにカプセル化。OCIがSIFの恩恵を享受可能。
YYYY MM DD Pacific Teck / Event name – Tokyo, Japan• 逆にSingularityがOCIのエコシステムをシームレスに利用可能に。
• remote/key コマンド群を見直し、個別実装されていたリポジトリ対応等を統合。
• GPUデバイスを/devの共有ではなく、CDI経由で行うように。

©︎2022 - Pacific Teck Japan G.K.

まとめ

• Singularityの開発は、コミュニティ主導のCEを舞台に、ますます活発なチャレンジが行われている。その成果は数か月の検証とQAを経て、有償サポート付きのPROに反映されていく。
• Singularityの優位性は、利便性の高いランタイムとしてだけでなく、高パフォーマンスを実現可能なSIF形式によるところが大である。
• コンテナの標準規格であるOCIに対応することで、SIFの他ランタイムからの利用を可能とし、Subheading Sample HPC & Machine Learning Experts Subheading Sample
それに求められるセキュリティ対策について、趨勢に基づき順調に対応が進んでいる。
• 様々なコンテナイメージやランタイムが標準規格に準拠することで、シームレスに連携することがYYYY MM DD Pacific Teck / Event name – Tokyo, Japan可能になると、容易に多様なワークロードをセキュアに展開できるようになると考えられる。

©︎2022 - Pacific Teck Japan G.K.

Thank yousales@pacificteck.com©︎2022 - Pacific Teck Japan G.K.