Apptainer (旧 Singularity) は、HPC 環境向けに設計されたコンテナー システムです。アプリケーション、ライブラリ、データ、スクリプトなどを 1 つの実行環境としてまとめ、研究・解析ワークロードを異なる環境でも再現しやすくします。
Apptainer は、HPC や研究計算で求められる性能、再現性、可搬性、信頼性を備えたコンテナー実行を支援します。
環境差異を抑えて実行
アプリケーションや依存関係をまとめ、異なるサーバーやクラスターでも実行しやすくします。
研究・解析の再現性を向上
実行環境をコンテナーとして共有・保管し、同じ条件での再実行を支援します。
単一ファイル形式で管理
SIF 形式の 1 つのファイルにまとめ、コンテナーを共有・保管・配布しやすくします。
検証可能な実行環境
暗号鍵による検証や暗号化により、コンテナーの信頼性を確認しやすくします。
共有環境で実行しやすい設計
管理者権限に依存しにくく、複数ユーザーが利用する HPC 環境でも実行しやすくします。
性能重視のワークロードに対応
HPC 環境で求められる性能を意識し、コンテナー化による余分な負荷を抑えた実行を支援します。
Apptainer は、マイクロサービス向けではなく、HPC や研究計算などのアプリケーション実行に適したコンテナー システムです。
HPC や研究計算向けに設計
性能重視のアプリケーション実行や、研究・解析ワークロードに適した設計です。
ジョブ スケジューラとの連携
Slurm や PBS などを利用したコンテナー ジョブの実行に適しています。
ホスト環境との連携
既存のユーザー権限、ファイル、ネットワークなどを活かしながらコンテナーを利用できます。
AI / ML や解析用途にも対応
人工知能、機械学習、計算・データ駆動型の解析ワークロードにも適しています。
Apptainer は、Linux Foundation 配下で開発されている 100% オープンソースのコンテナー システムです。商用サポートを通して、HPC やエンタープライズ環境での利用を支援します。
導入・運用の相談
HPC 環境での Apptainer 利用に向けた構成や運用方法を相談できます。
問題対応・技術支援
Apptainer の利用時に発生する問題や設定に関する技術支援を受けられます。
HPC コンテナー活用を支援
性能が重要なワークロードで、コンテナーを効果的に活用するための支援を受けられます。
Apptainer は、旧 Singularity として知られる HPC 向けコンテナー システムです。 Singularity が Linux Foundation 配下のプロジェクトとなった際に、Apptainer へ名称が変更されました。
Docker は、Web アプリケーションやクラウド環境で広く利用されるコンテナー技術です。Apptainer は、HPC や研究計算などの共有環境で、既存のユーザー権限やファイル環境を活かしながらアプリケーションを実行しやすい設計です。
SIF は、Apptainer で利用される単一ファイル形式のコンテナー イメージです。 コンテナーを 1 つのファイルとして扱えるため、共有・保管・配布しやすく、暗号キーによる検証にも対応します。
はい。Apptainer は、Slurm や PBS などのワークロード マネージャーを利用する環境でも、 コンテナー化されたジョブを実行しやすい設計です。
Apptainer は、管理者権限に依存しにくい実行方式、HPC 環境との統合性、 ポータブルで再現性のある実行環境により、研究・解析ワークロードで利用しやすいコンテナー システムです。
Message Passing Interface (MPI) は HPC の基盤技術であり、Apptainer は MPI とネイティブに連携するよう設計されています。コンテナー化された MPI プロセスは、ホスト システム上の MPI フレームワークか、PMI (Process Management Interface) 標準をサポートする Slurm などのツールを通じて起動できます。これにより、ホストに MPI をインストールせずに、完全にコンテナー化された MPI プログラムを実行可能です。
多くのオーケストレーション ツールは OCI 準拠のコンテナー向けに作られているため連携は可能ですが、HPC コミュニティでは近年「サービスベース」ではなく「ジョブベース」のコンテナー オーケストレーションの需要が高まっています。CIQ では、この新たなニーズを満たすために Fuzzball というジョブベースのオーケストレーション プラットフォームを開発しています。
Apptainer は HPC ワークフローに最適化するため、コンテナーの「分離」を最小限に抑えています。コンテナー内でも外部と同じユーザーとして実行され、デフォルトでホーム ディレクトリや tmp にアクセス可能です。ホストのネットワークやプロセス間通信も透過的に利用できるため、直感的にデータを扱うことができます。
Apptainer はデフォルトでネットワークを分離せず、「分離よりも統合」の原則に従います。そのため、コンテナー内のプロセスは、ホスト上で実行されているかのようにすべてのポートにアクセスできます。追加の構成なしでネットワークを利用できるため、HPC ユーザーにとって非常に便利です。
最新のシステムでは、Apptainer は昇格された権限なしで実行されるため、ネストされたコンテナーを比較的簡単に実行できます。ただし、Apptainer はデフォルトで suid ビットの実行可能ファイルを許可しないため、これに依存するコンテナー ランタイムは動作しません。オプションを構成することで Apptainer 内で Podman を実行することも可能です。
仮想マシン (VM) はハイパーバイザー上で動作し専用の OS を実行するため、柔軟性が高い一方で処理が重くなります。一方、コンテナーはハードウェアを仮想化せず、ホスト OS のカーネルを共有するため非常に軽量で高速に動作します。
HPC 環境でのコンテナー利用、既存ジョブ スケジューラとの連携、アプリケーションの実行環境、サポート要件などを確認し、Apptainer の導入・運用に向けた構成相談、デモ、PoC、お見積もりをサポートします。