日本語 English
世界中のHPC専門最先端技術製品の販売・サポート
SingularityPRO 仮想コンテナシステム

Singularityとは

Singularityは、世界で著名なHPCクラスターの多くで採用しているオープンソースのLinuxコンテナで、ホスト計算環境、アプリケーションに変更があっても同じアプリケーションを使い続けることができるプラットフォームです。

各ユーザーが独自の計算環境を再現、保持することが可能です。昨今ではクラウドや計算センターでの利用が増えてきており、独自の計算環境の大規模環境への移行も容易に行うことができます。独自のセキュリティモデルを実装してルート権限の配布リスクを軽減し、完全なアプリケーション環境を単一ファイルにキャプチャする形式です。

Singularityを選ぶ理由

Singularityは、ハイパフォーマンスコンピューティング(HPC)およびエンタープライズパフォーマンスコンピューティング(EPC)といった最先端科学向けに最適化されたコンテナプラットフォームです。 他のコンテナソリューションと比較して、GPUの活用、MPIの使いやすさ、非ルートユーザーアクセスのセキュリティ保護、スケジューラおよびファイルシステムの利便性が特長です。

コンテナ型仮想環境と他の仮想環境との違い

従来のHypervisor型仮想化ではHypervisorがホストのCPU,メモリ資源の一部を占有するだけはなく、ネットワークインターフェイスも管理することからレイテンシーが多くHPC/AIといった高速計算機用途には適しませんでした。そこでホストのプロセスとして仮想環境を動作させるコンテナ型の仮想環境としてDockerが開発されました。しかし、Dockerでは、コンテナの実行にルート権限が必要になるため多くのHPCセンターでは利用が難しくまたHPCコンポーネントであるInterconnectやコンテナ間のMPI通信も困難でした。そこで世界中の多くの科学者からHPC/AI分野にでも利用可能なコンテナ型の仮想環境の要望が大きくなり、それに答えるべく開発されたのがSingularityです。Singularityではコンテナの実行にルート権限は必要なく一般ユーザで実施することが可能で、MPI通信、Interconnectとの親和性も高いHPC/AIといった最先端大規模計算向けのコンテナ仮想環境です。

コンテナ型仮想環境と他の仮想環境との違い

LinuxコンテナDockerとの比較

機能DockerSingularity
ジョブスケジューラの操作△ 
(Univa Grid Engineを用いると可能)
MPIのネイティブサポート△ 
(実行には非常に複雑な設定が必要)
InfiniBandのネイティブサポート△ 
(実行には非常に複雑な設定が必要)
GPUのネイティブサポートX
(別途nvidia-dockerのインスト-ルが必要)

(基本オプションを付けるだけで使用できる)
ルート権限を持つデーモンプロセス必要必要なし
(各ユーザがコンテナを立ち上げられる)

Singularity CommunityとSingularityPROの違い

Singularityには無償オープンソースの”Singularity Community”版、そして有償版の”SingularityPRO”があります。SingularityPROには更に安全性の高いコンテナプラットフォームを併せて提供する”Singularity Enterprise“版があります。

SingularityPROユーザーは、安定したバイナリパッケージのSingularityを利用することが可能でエンタープライズ向けの開発元からのサポート、希望機能を次期開発用にリクエストする権限、緊急な追加モジュール提供の依頼とpluginによる機能強化を行うことが可能です。

また、セキュリティ問題が発生した際にSingularityPROユーザーは、Singularity Communityユーザーよりいち早く障害通知およびバイナリパッチでのセキュリティ強化版が提供されます。このバイナリパッチにより、システム停止時間を可能な限り短くして高セキュアな環境を提供することが可能です。Singularity Community版では、PRO版のバイナリパッチが提供された後にソースベースでのアップデートでの提供となるため最大で2~3週間の遅延が発生することもあります。

機能Singularity Community
(無償オープンソース版)
SingularityPRO
(有償版)
従来のHPCリソースサポート
リソースマネージャーに依存しない
SIF: Singularityイメージファイルフォーマット
SIFへの暗号署名と検証可能
OCI イメージファイルフォーマットとの互換性
常駐デーモンプロセスなし
非ルートユーザーのコンテナを実行可能
コンテナ内の特権エスカレーションをブロック
BOYE:自身の計算環境の容易移動が可能
AI / HPCワークフローとアーキテクチャのサポート
GPUをネイティブでサポート
セルフサービスサポートモデル(オープンソース)
コードキュレーションX
効率化されたセキュリティアップデートX
優先的なセキュリティアップデートX
署名済みSingularity RPM / DEBパッケージX
Singularity CommunityとSingularityPROの違い

SingularityPROの機能

SingularityPROの機能機能詳細
コンテナのセキュリティSingularityPROはコンテナに対して優れたセキュリティを保持します。

[含まれる機能]
信頼できるコンテナ: 堅牢かつ暗号で保護されたランタイム
ルート権限が必要なデーモンプロセスなし: 非ルートユーザーにて実行可能
一般ユーザー権限での幅広い対応: 一般ユーザー権限での対応範囲が広く、権限設定変更の必要性が低い
モニタリング: システムプロセスはモニタリング・管理
イベント: マシンラーニングアルゴリズムが「アブノーマル」なのセキュリティインシデントをモニタ
点検: Sylabs社クラウドのライブラリおよびビルドサービスでは、管理者へ点検とスキャン機能を提供
Singularityのリリースに対する長期サポートへのコミットメントセキュリティパッチとバグ修正がSingularityPROバージョンにバックポートされる長期サポート(基本3年間)。新規機能、バグ修正、セキュリティ修正がパッチバイナリの形で導入されたバージョン用に提供されるため、管理者はオープンソースバージョンの最新を維持するため継続的にSingularityコードベースを更新する負担から解放されます。
セキュリティパッチのリリースは事前にお知らせセキュリティ問題の発生とパッチのリリースは、ソースコミュニティより先行してSingularityPROのお客様にお知らせします。
ご要望に沿ったサポートオプションカスタマイズされたサービス/サポートオプション。SingularityPROユーザーは、ご要望に合わせたカスタム機能の開発をリクエストすることが可能です。 オプションには、特殊なハードウェアデバイスのサポートも含まれます。

エンタープライズレベルのサポート

Pacific Teckは、Singularity開発チームとの緊密に連携しローカルサポートを提供いたします。 Singularity開発チームはSingularityを製品化し、最高レベルのサポートを提供する独自の権限を持っています。 開発チームにはSingularity Communityの主要メンバーが在籍しています。

ユースケース

HPC・サイエンスコンピューティング

Singularityは、HPC(およびEPC)が選択するオープンソースコンテナランタイムです。 1日あたり100万を超えるコンテナが実行され、推定ユーザーベースは300万を超えるx86コアにインストールされています。 世界中のラボで広く採用されています。

マシーンラーニング

マシーンラーニングでは、GPUの最大限の有効活用が重要です。 他のコンテナプラットフォームとは異なり、Singularityは、コンテナをシンプルかつポータブルに、ゼロ構成でホストシステム上のGPUを活用できます。 実行時に–nvオプションを渡すだけです。

Singularity Enterprise(SingularityPRO + 3つの付加機能)

Singularity EnterpriseはSingularityPROの機能に3つの付加機能(Remote Builder, Key Store, Container Libraly)がついたものです。初期投資を最小限に抑えてより高セキュアな本番環境でコンテナ運用を実現したい方にはSingularity Enterpriseをおすすめします。

使用実績

  • 「富岳」 / 理化学研究所 – 日本
  • ABCI / 産総研 – 日本
  • 台湾ナショナルスーパーコンピュータセンター (NCHC) – 台湾

BLOG関連記事

Singularity関連動画

ホワイトペーパー・ソリューションブリーフ

SingularityPROのお見積もり・お問い合わせ

お客様のご要望に合わせてカスタマイズが可能です。システム構成などお気軽にご相談ください。