全部產品
Search
文件中心

Elastic High Performance Computing:使用Environment Modules管理軟體包

更新時間:Jul 06, 2024

本文介紹如何使用Environment Modules編譯成軟體中模組對應的環境配置,使其可以在E-HPC環境中直接載入使用。

背景資訊

在使用E-HPC叢集過程中,經常要安裝不同的編譯器和庫檔案,如常用的編譯器有GCC和ifort,常用的 MPI並行庫有OpenMPI、MPICH2等。在使用某個軟體時,通常採用不同的編譯設定得到不同版本的可執行程式和連結庫,或者需要修改、切換不同版本的環境變數。由於程式在編譯時間會調用不同類型編譯器或第三方庫,程式之間還存在著依賴關係。導致當執行某個特定版本的程式時,修改環境變數變得十分複雜。

Environment Modules是一個簡化Shell初始化的軟體包,您可以在使用modulefiles模組與E-HPC進行會話期間修改模組對應的運行環境。每個模組檔案都包含應用程式配置所需的資訊。叢集使用者可共用系統上的模組檔案,並且使用者可以擁有自己的集合來補充或替換共用模組檔案。

Environment Modules相關命令

E-HPC叢集中已預設安裝Environment Modules軟體來管理不同運行環境。

當使用module命令時,可用的模組在modulepath=/opt/ehpcmodulefiles目錄下,modulefile檔案通常被命名為某個軟體版本號碼,如openmpi/3.0.0。

常用的module命令如下:

  • module avail:顯示可以使用的模組

  • module load:載入模組

  • module unload:卸載模組

  • module list:顯示已經載入的模組

操作步驟

以下通過Environment Modules軟體卸載openmpi/3.0.0,然後載入openmpi/3.0.1版本樣本來介紹如何設定modulefile:

  1. 登入彈性高效能運算控制台

  2. 在頂部功能表列左上方處,選擇地區。

  3. 在左側導覽列,單擊叢集

  4. 叢集頁面,找到要登入的叢集,單擊遠端連線

  5. 遠端連線頁面,輸入root使用者、登入密碼和連接埠,單擊ssh串連

  6. 執行cd /opt/ehpcmodulefiles命令,切換到ehpcmodulefiles目錄下。

  7. 執行module list命令,顯示已經載入的模組。

    如圖所示,表示已載入openmpi/3.0.0模組。module list

  8. 執行module unload openmpi/3.0.0命令,卸載openmpi/3.0.0模組。

  9. 執行module load openmpi/3.0.1命令,載入openmpi/3.0.1模組。

    您可以根據業務需求修改openmpi/3.0.1中的配置資訊。具體配置項說明如下:

    • PATH:可執行檔路徑。

    • LIBRARY_PATH:程式編譯期間,尋找動態連結程式庫時指定尋找共用庫的路徑。

    • LD_LIBRARY_PATH:程式載入運行期間,尋找動態連結程式庫時指定除了系統預設路徑之外的其他路徑。

    • installpath:軟體安裝目錄。

      #%Module1.0#####################################################################
      ##
      ## modulefiles/openmpi-3.0.1  Generated by EHS 1.0.0
      ##
      proc ModulesHelp { } {
        puts stderr "\tmodules - loads the modules software & application environment"
        puts stderr "\n\tThis loads environment of openmpi-3.0.1"
      }
      
      module-whatis   "loads the openmpi-3.0.1 environment"
      prepend-path PATH  ${installpath}/bin  
      prepend-path LD_LIBRARY_PATH  ${installpath}/lib
      prepend-path LIBRARY_PATH  ${installpath}/lib