Singularityは、世界で著名なHPCクラスターの多くで採用しているオープンソースのLinuxコンテナで、ホスト計算環境、アプリケーションに変更があっても同じアプリケーションを使い続けることができるプラットフォームです。
各ユーザーが独自の計算環境を再現、保持することが可能です。昨今ではクラウドや計算センターでの利用が増えてきており、独自の計算環境の大規模環境への移行も容易に行うことができます。独自のセキュリティモデルを実装してルート権限の配布リスクを軽減し、完全なアプリケーション環境を単一ファイルにキャプチャする形式です。
Singularityは、ハイパフォーマンスコンピューティング(HPC)およびエンタープライズパフォーマンスコンピューティング(EPC)といった最先端科学向けに最適化されたコンテナプラットフォームです。 他のコンテナソリューションと比較して、GPUの活用、MPIの使いやすさ、非ルートユーザーアクセスのセキュリティ保護、スケジューラおよびファイルシステムの利便性が特長です。
NEWS | SingularityPRO開発元のSylabsが「Cybersecurity Stewardship Awards 2024」において民間部門のイノベーター・オブ・ザ・イヤーを受賞
従来のHypervisor型仮想化ではHypervisorがホストのCPU,メモリ資源の一部を占有するだけはなく、ネットワークインターフェイスも管理することからレイテンシーが多くHPC/AIといった高速計算機用途には適しませんでした。そこでホストのプロセスとして仮想環境を動作させるコンテナ型の仮想環境としてDockerが開発されました。しかし、Dockerでは、コンテナの実行にルート権限が必要になるため多くのHPCセンターでは利用が難しくまたHPCコンポーネントであるInterconnectやコンテナ間のMPI通信も困難でした。そこで世界中の多くの科学者からHPC/AI分野にでも利用可能なコンテナ型の仮想環境の要望が大きくなり、それに答えるべく開発されたのがSingularityです。Singularityではコンテナの実行にルート権限は必要なく一般ユーザで実施することが可能で、MPI通信、Interconnectとの親和性も高いHPC/AIといった最先端大規模計算向けのコンテナ仮想環境です。
機能 | Docker | Singularity |
---|---|---|
ジョブスケジューラの操作 | △ (Altair Grid Engineを用いると可能) | ◎ |
MPIのネイティブサポート | △ (実行には非常に複雑な設定が必要) | ◎ |
InfiniBandのネイティブサポート | △ (実行には非常に複雑な設定が必要) | ◎ |
GPUのネイティブサポート | X (別途nvidia-dockerのインスト-ルが必要) | ◎ (基本オプションを付けるだけで使用できる) |
ルート権限を持つデーモンプロセス | 必要 | 必要なし (各ユーザがコンテナを立ち上げられる) |
Singularityはその開発元であるSylabs社から、無償でオープンソースのCommunity Editionと呼ばれる”SingularityCE”、そして有償版の”SingularityPRO”が提供されています。さらにSingularityPROが高い利便性を発揮できるようなエコシステムを構築する”Singularity Enterprise“があります。
SingularityPROユーザーは安定したセキュアなSingularityを利用することが可能で、開発元からのエンタープライズ向けのサポート、希望機能を次期開発用にリクエストする権限、緊急な追加モジュール提供の依頼とpluginによる機能強化を行うことが可能です。
また、セキュリティ問題が発生した際にSingularityPROユーザーは、SingularityCEユーザーよりいち早く障害通知およびバイナリパッチでのセキュリティ強化版が提供されます。このバイナリパッチにより、システム停止時間を可能な限り短くして高セキュアな環境を提供することが可能です。SingularityCEに対しては、PRO版のバイナリパッチが提供された後の提供となり、過去のバージョンへのバックポートもなく、提供自体も迅速に行われる保証がありません。
Singularity CE (無償オープンソース版) | SingularityPRO (有償版) | |
---|---|---|
従来のHPCリソースサポート | ◎ | ◎ |
リソースマネージャーに依存しない | ◎ | ◎ |
SIF: Singularityイメージファイルフォーマット | ◎ | ◎ |
SIFへの電子署名と検証可能性 | ◎ | ◎ |
OCI イメージファイルフォーマットとの互換性 | ◎ | ◎ |
常駐デーモンプロセスなし | ◎ | ◎ |
非ルートユーザーのコンテナを実行可能 | ◎ | ◎ |
コンテナ内の特権エスカレーションをブロック | ◎ | ◎ |
BOYE:自身の計算環境の転用が容易 | ◎ | ◎ |
AI / HPCワークフローとアーキテクチャのサポート | ◎ | ◎ |
GPUをネイティブでサポート | ◎ | ◎ |
セルフサービスサポートモデル(オープンソース) | ◎ | ◎ |
コードキュレーション | X | ◎ |
優先的で効率化されたセキュリティアップデート | X | ◎ |
バグフィックス・セキュリティ対応のバックポート | X | ◎ |
機能追加・プラグイン開発のリクエスト | X | ◎ |
ビルド済みSingularity RPM / DEBパッケージ提供 | X | ◎ |
SingularityPROの機能 | 機能詳細 |
---|---|
コンテナのセキュリティ | SingularityPROはコンテナに対して優れたセキュリティを保持します。 [含まれる機能] 信頼できるコンテナ: 電子署名及び暗号化が可能なシングルファイルのイメージフォーマット ルート権限が必要なデーモンプロセスなし: 非ルートユーザーにて実行可能 一般ユーザー権限での幅広い対応: 一般ユーザー権限での対応範囲が広く、権限設定変更の必要性が低い |
Singularityのリリースに対する長期サポートへのコミットメント | セキュリティパッチとバグ修正がSingularityPROバージョンにバックポートされる長期サポート(リリース後2年間)。新規機能、バグ修正、セキュリティ修正がパッチバイナリの形で導入されたバージョン用に提供されるため、管理者はオープンソースバージョンの最新を維持するため継続的にSingularityコードベースを更新する負担から解放されます。 |
セキュリティパッチのリリースは事前にお知らせ | セキュリティ問題の発生とパッチのリリースは、コミュニティより先行してSingularityPROのお客様にお知らせします。 |
ご要望に沿ったサポートオプション | カスタマイズされたサービス/サポートオプション。SingularityPROユーザーは、ご要望に合わせたカスタム機能の開発をリクエストすることが可能です。 オプションには、特殊なハードウェアデバイスのサポートも含まれます。 |
Pacific Teckは、Singularity開発チームとの緊密に連携しローカルサポートを提供いたします。 Singularity開発チームはSingularityを製品化し、最高レベルのサポートを提供する独自の権限を持っています。 開発チームにはSingularity Communityの主要メンバーが在籍しています。
Singularityは、HPC(およびEPC)が選択するオープンソースコンテナランタイムです。 1日あたり100万を超えるコンテナが実行され、推定ユーザーベースは300万を超えるx86コアにインストールされています。 世界中のラボで広く採用されています。
マシーンラーニングでは、GPUの最大限の有効活用が重要です。 他のコンテナプラットフォームとは異なり、Singularityは、コンテナをシンプルかつポータブルに、ゼロ構成でホストシステム上のGPUを活用できます。 実行時に–nvオプションを渡すだけです。
Singularity Enterpriseは、SingularityPROを取り巻き、コンテナのエコシステムを構築する3つの機能:Remote Builder・Key Store・Container LibraryをKubernetes上で実現するものです。多彩なコンテナイメージを作成・駆使しつつ、高い利便性とセキュアな運用が必要な方にはSingularity Enterpriseの導入をおすすめします。
ブラックボックスになりがちなコンテナの中身をチェック。持ち込まれたコンテナが安全か?長く使っているイメージに新たに脆弱性が見つかってないか?といった心配を無用にするツールです。
お客様のご要望に合わせてカスタマイズが可能です。システム構成などお気軽にご相談ください。