8.5. HPC クラスターの環境モジュールの管理


環境モジュールサブシステムは、Lua ベースの環境モジュール(Lmod)を使用して、インストールされたモジュールを一覧表示します。Lmod を使用すると、さまざまなソフトウェアパッケージとその依存関係を読み込み、アンロードすることで環境を動的に変更できます。高パフォーマンスコンピューティング(HPC)環境で複数のバージョンのコンパイラー、ライブラリー、およびアプリケーションを管理するため、バージョンごとに特定のソフトウェア設定を選択できます。これには、ml に短縮される モジュール ユーティリティーを使用できます。

8.5.1. 環境モジュール管理のコマンド

以下のコマンドを使用して、環境モジュールを管理できます。

  • module ユーティリティーに関連するすべてのコマンドを表示します。

    $ module help
    Copy to Clipboard Toggle word wrap
  • 個々のコマンドオプションと構文を表示します。

    $ module <command> help
    Copy to Clipboard Toggle word wrap
  • 特定のモジュールの詳細を表示します。

    $ ml whatis pmix/pmix-4.2.9
    Copy to Clipboard Toggle word wrap
    pmix/pmix-4.2.9   : Description: PMIx 4.2.9 installed in /opt/pmix/4.2.9
    pmix/pmix-4.2.9   : Version: 4.2.9-1
    Copy to Clipboard Toggle word wrap
  • HPC 環境で利用可能なモジュールを一覧表示します。

    $ ml available
    Copy to Clipboard Toggle word wrap
    -----------------------/usr/share/modulefiles------------------------
      mpi/hpcx-2.24.1-pmix-4.2.9    mpi/openmpi-5.0.8-cuda12-gpu (L,D)
      mpi/hpcx-2.24.1               pmix/pmix-4.2.9              (L)
      mpi/openmpi-x86_64
    
    ----------------/usr/share/lmod/lmod/modulefiles/Core----------------
      lmod    settarg
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    • L: モジュールがロードされている。
    • d: デフォルトモジュール
    • (L) アノテーションは、mpi/openmpi-5.0.8-cuda12-gpu モジュールが読み込まれていることを示します。
    • これは、pmix/pmix-4.2.9 モジュールを依存関係として読み込みます。
    • モジュールシステムは、必要に応じて依存するモジュールを自動的に読み込み、アンロードします。
  • 読み込まれたモジュールを一覧表示します。

    $ ml list
    Copy to Clipboard Toggle word wrap
    Currently Loaded Modules:
    1) pmix/pmix-4.2.9
    2) mpi/openmpi-5.0.8-cuda12-gpu
    Copy to Clipboard Toggle word wrap
  • モジュールとその依存関係をアンロードします。

    $ ml unload mpi/openmpi-5.0.8-cuda12-gpu
    $ ml list
    Copy to Clipboard Toggle word wrap
    No modules loaded
    Copy to Clipboard Toggle word wrap
  • 既存のモジュールをアンロードし、新しいモジュールを読み込みます。

    $ ml load mpi/openmpi-5.0.8-cuda12-gpu
    $ ml list
    Copy to Clipboard Toggle word wrap
    Currently Loaded Modules:
    
    1) pmix/pmix-4.2.9
    2) mpi/openmpi-5.0.8-cuda12-gpu
    Copy to Clipboard Toggle word wrap
  • ロードしたモジュールを切り替えます。

    $ ml swap mpi/openmpi-x86_64
    Copy to Clipboard Toggle word wrap
    The following have been reloaded with a version change:
    
    1) mpi/openmpi-5.0.8-cuda12-gpu => mpi/openmpi-x86_64
    Copy to Clipboard Toggle word wrap
  • 利用可能なモジュールを一覧表示します。

    $ ml list
    Copy to Clipboard Toggle word wrap
    Currently Loaded Modules:
    
    1) mpi/openmpi-x86_64
    Copy to Clipboard Toggle word wrap

8.5.2. Modulefiles のレイアウトとルール

モジュールファイルは、HPC システム上でソフトウェア環境の読み込み、アンロード、および切り替えを行うための環境変数を定義および管理するスクリプトです。推奨されるディレクトリー構造および命名規則により、モジュール定義、ラッパーモジュール、RHEL ベースの HPC デプロイメントで複数のソフトウェア環境を管理するための一貫したルールなど、環境モジュールファイルの効率的な編成が可能になります。

モジュール定義の手動方法
モジュール ユーティリティーは、/usr/share/modulefiles ディレクトリーにあるモジュール定義を自動的に検出します。モジュール定義のあるその他のディレクトリーがある場合は、それらを MODULEPATH 環境変数に追加する必要があります。
ラッパーモジュール
環境変数を変更し、Lmod がパッケージ固有のモジュールを見つけないようにするには、ラッパー モジュールを /usr/share/modulefiles ディレクトリーに配置して、これらのモジュールが MODULEPATH を変更し、外部の場所から関連モジュールを読み込むようにします。このスタイルのラッパーの例は、mpi/hpcx-2.24.1 環境モジュールです。
モジュールファイル形式

Lmod は、Lua および Tool Command Language (Tcl)形式で記述された環境モジュールをサポートします。lua スクリプトは、環境モジュールを定義するための推奨される方法です。パーミッション 755 が設定された .lua 拡張を使用します。ml コマンドのモジュール名は、.lua の接尾辞を省略します。このドキュメントの例では、Lua スクリプトインターフェイスを使用します。これには、以下の要件があります。

  • MPI ライブラリーなどの同じ機能を提供するすべてのパッケージは、共通のモジュール サブディレクトリー内にあります。この場合、.. /mpi/ (すべての MPI ライブラリーバリアントの場合)。
  • package サブディレクトリー(例: conflict ("mpi") )のモジュールに conflict ()定義を追加します。これにより、一度に 1 つのパッケージタイプのモジュールのみをロードできます。
  • パッケージの命名の一貫性を維持します。
  • 機能名はサブディレクトリー名として使用します。一方、各パッケージインスタンスの個々のモジュールは、以下のパターンに従って命名する必要があります。

    <package provider>-<version>-<build>-<options>
    Copy to Clipboard Toggle word wrap

    MPI ライブラリーのバリアントが複数ある場合には、異なるプロバイダーからのものもあれば、コンパイラーやビルドオプションが異なる特定のパッケージの複数のビルドであるものもあります。このような場合、命名スキームにより一貫性が確保されます。

8.5.3. 利用可能な MPI 環境

HPC Slurm クラスターでは、メッセージを渡すインターフェイス(MPI)環境では、アプリケーションがノード間で通信および同期するためのランタイムサポートを提供します。Slurm は OpenMPI などの MPI 実装と統合され、分散ジョブを効率的に管理し、クラスターリソースの使用を最適化します。Slurm は mpirun を使用して、スケーラブルで高パフォーマンスのジョブのために、割り当てられたノード間で実行を調整します。提供されている RHEL HPC クラスターでは、以下の MPI 環境が利用できます。

  • openmpi .x86_64: CUDA または GPU アクセラレーションサポートを提供しない標準オープン MPI ビルド。
  • openmpi- 5.0.8-cuda-gpu: GPU 対応の MPI 通信の CUDA サポートでコンパイルされた Open MPI モジュール
  • Hpcx-2.24.1: Open MPI をベースとした NVIDIA が包括的な HPC ソフトウェアスタック。
  • Hpcx-2.24.1-pmix: Slurm 統合とジョブスケジューリングのために Process Management Interface (PMIx)で設定された HPC-X ビルド。

MPI ライブラリーの命名で一貫性を保つために、MPI インフラストラクチャーの PML (MPI インフラストラクチャーの PML)実装を指すように Unified Communication X (UCX)を指定します。

$ mpirun -mca pml ucx .
Copy to Clipboard Toggle word wrap
openmpi.x86_64
このモジュールは、OpenMPI 4.1.1 の標準ビルドを提供します。これには PMIx 3.x のサポートが含まれていますが、CUDA または GPU アクセラレーションのサポートは提供されません。RHEL InfiniBand ドライバーおよびインフラストラクチャーは、InfiniBand (IB)/Remote Direct Memory Access (RDMA)機能を提供します。OpenMPI ライブラリーは gcc-11.4 でコンパイルされています。アプリケーションが CUDA 言語拡張機能を使用しない場合や、GPU オフロードサポートが必要な場合は、このモジュールを使用します。
openmpi-5.0.8-cuda-gpu

このモジュールは、NVIDIA HPC-X パッケージライブラリーを使用して、PMIx 4.x サポート、CUDA および NVIDIA GPU アクセラレーションサポートを提供します。RHEL InfiniBand ドライバーおよびインフラストラクチャーは、InfiniBand (IB)/Remote Direct Memory Access (RDMA)機能を提供します。OpenMPI ライブラリーは、gcc-11.5 でコンパイルされています。GPU アクセラレーションを必要とする CUDA 対応アプリケーションを使用している場合にのみ、このモジュールを選択してください。

注記

InfiniBand NIC がない場合、InfiniBand NIC の自動検出の失敗に関する警告が表示されます。

$ mpirun -n 2 /lib64/openmpi/bin/mpitests-osu_allreduce
Copy to Clipboard Toggle word wrap
...
[test-vm] Error: coll_hcoll_module.c:312 - mca_coll_hcoll_comm_query() Hcol library init failed
...
Copy to Clipboard Toggle word wrap

この警告を削除するには、-mca coll ^hcoll パラメーターを mpirun コマンドに追加します。

$ mpirun -mca coll ^hcoll -n 2 /lib64/openmpi/bin/mpitests-osu_allreduce
Copy to Clipboard Toggle word wrap
# Size   Avg Latency(us)
  1      8.36
  2      6.85
Copy to Clipboard Toggle word wrap
hpcx-2.24.1
このモジュールは、NVIDIA で構築された OpenMPI 4.1.5 環境を提供します。PMIx のサポートはありませんが、CUDA および NVIDIA GPU アクセラレーションサポートを提供します。RHEL InfiniBand ドライバーおよびインフラストラクチャーは、InfiniBand (IB)/Remote Direct Memory Access (RDMA)機能を提供します。
hpcx-2.24.1-pmix
このモジュールは、mpi/hpcx-2.24.1 モジュールと同じ環境を提供し、PMIx 4.x サポートも有効になっています。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る