練習 - 將自訂節點陣列新增至 HPC 叢集

已完成

警告

此內容會參考 CentOS,這是生命週期結束 (EOL) 狀態的 Linux 發行版本。 請據以考慮您的使用和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指導

nodearray 是採用相同設定的 Azure CycleCloud 叢集節點的集合。 其目的是要隨著佇列作業的變更數目,因應叢集計算資源的水平調整。 每個 nodearray 都有一個名稱、一組套用至每個節點的屬性,以及描述 nodearray 如何調整的選用屬性。

Slurm 工作排程器分割區會按邏輯將節點分組到可能重疊的集合中。 其目的是要針對其特定條件約束 (例如資源或時間限制) 進行評估,以最佳化作業的處理。 排程器會將作業配置給分割區中的節點,直到其資源耗盡或處理所有作業為止。

您想要修改新部署的 Azure CycleCloud 管理的叢集,以考量特定作業的資源需求。 為達此目標,您決定將更多變更套用至基礎範本,並驗證您的方法。

在本教學課程中,您將執行下列工作:

  • 工作 1:將 nodearray 定義新增至 Azure CycleCloud 範本
  • 工作 2:將圖形化介面參數新增至 Azure CycleCloud 範本
  • 工作 3:匯出 Azure CycleCloud 叢集屬性
  • 工作 4:編輯屬性檔以包含新的參數
  • 工作 5:將修改過的範本和參數檔案匯入現有的叢集中

注意

在開始本練習之前,請確定您已成功完成前一個練習。

工作 1:將 nodearray 定義新增至 Azure CycleCloud 範本

首先,您將在 Slurm 範本內新增您已在先前的練習中自訂的 nodearray 定義。 範例範本包含兩個標示為 hpchtc 的分割區。 您將建立另一個分割區和對應的 nodearray,預計用於獲益於 Compute Unified Device Architecture (CUDA) 功能的作業。

  1. 瀏覽至 Azure 入口網站。 在出現提示時,使用您在此課程模組中使用的 Azure 訂用帳戶中具有「參與者」或「擁有者」角色的 Microsoft 帳戶或 Microsoft Entra 帳戶進行驗證。

  2. 從 Azure 入口網站中,在搜尋文字方塊旁的工具列中選取圖示來開啟 Cloud Shell,並確定您正在執行 Bash 工作階段。

  3. 在 Cloud Shell 中執行下列命令,將工作目錄設定為您在上一個練習中擷取的 GitHub 存放庫:

    cd ~/cyclecloud-slurm/templates
    
  4. 執行下列命令,以在 nano 編輯器中開啟下載的範本:

    nano slurm.txt
    
  5. 在 nano 編輯器介面中捲動至 [parameters About] 區段,然後在該區段前面新增下列內容:

    
    [[nodearray cuda]]
    MachineType = $CUDAMachineType
    ImageName = $CUDAImageName
    MaxCoreCount = $MaxCUDAExecuteCoreCount
    
    AdditionalClusterInitSpecs = $CUDAClusterInitSpecs
    
        [[[configuration]]]
        slurm.autoscale = true
        slurm.hpc = true
    
        [[[cluster-init cyclecloud/slurm:execute]]]
    
        [[[network-interface eth0]]]
        AssociatePublicIpAddress = $ExecuteNodesPublic
    
    

    注意

    如果您是使用 Windows 電腦,您可以使用 Shift + Insert 按鍵組合來貼上剪貼簿的內容。

    注意

    您的變更會定義額外的 nodearray。

工作 2:將圖形化介面參數新增至 Azure CycleCloud 範本

若要能夠使用 Azure CycleCloud 圖形化介面修改範本參數的值,您應會對範本套用更多變更。

  1. 在 nano 編輯器介面中捲動至 [[parameters Auto-Scaling]] 區段,然後在該區段前面新增下列內容:

    
        [[[parameter CUDAMachineType]]]
        Label = CUDA VM Type
        Description = The VM type for CUDA execute nodes
        ParameterType = Cloud.MachineType
        DefaultValue = Standard_NC24
    
    
  2. 捲動至 [[[parameter HPCMaxScalesetSize]]] 區段,然後在該區段前面新增下列內容:

    
        [[[parameter MaxCUDAExecuteCoreCount]]]
        Label = Max CUDA Cores
        Description = The total number of CUDA execute cores to start
        DefaultValue = 100
        Config.Plugin = pico.form.NumberTextBox
        Config.MinValue = 0
        Config.IntegerOnly = true
    
    
  3. 捲動至 [[[parameter SchedulerClusterInitSpecs]]] 區段,然後在該區段前面新增下列內容:

    
        [[[parameter CUDAImageName]]]
        Label = CUDA OS
        ParameterType = Cloud.Image
        Config.OS = linux
        DefaultValue = cycle.image.centos7
        Config.Filter := Package in {"cycle.image.centos7", "cycle.image.ubuntu18"}
    
    
  4. 捲動至 [[parameters Advanced Networking]] 區段,然後在該區段前面新增下列內容:

    
        [[[parameter CUDAClusterInitSpecs]]]
        Label = CUDA Cluster-Init
        DefaultValue = =undefined
        Description = Cluster init specs to apply to CUDA execute nodes
        ParameterType = Cloud.ClusterInitSpecs
    
    
  5. 依次選取 Ctrl + O 按鍵組合、Enter 鍵和 Ctrl + X 按鍵組合,以儲存您所做的變更,並關閉檔案。

工作 3:匯出 Azure CycleCloud 叢集屬性

將您在 Azure CycleCloud 範本中所做的設定變更套用到目標叢集之前,您必須先匯出叢集屬性。

  1. 在 Cloud Shell 中執行下列命令,以列出現有的叢集:

    cyclecloud show_cluster
    

    注意

    確認輸出中包含 contoso-custom-slurm-lab-cluster 項目。

  2. 執行下列命令,以將 contoso-custom-slurm-lab-cluster 叢集的參數清單及其值匯出到 params.json 檔案中:

    cyclecloud export_parameters contoso-custom-slurm-lab-cluster > ~/params.json
    
  3. 執行下列命令,以檢查匯出的參數清單及其值:

    cat ~/params.json
    

工作 4:編輯屬性檔以包含新的參數

雖然您套用至 Azure CycleCloud 範本的編輯包含所有新導入參數的預設值時,但您可能需要加以修改,以因應自己的特定需求。 在此工作中,您將設定 CUDAMachineTypeMaxCUDAExecuteCoreCount 參數的值。

  1. 在 Cloud Shell 中執行下列命令,以在 nano 編輯器中開啟下載的參數檔案:

    nano ~/params.json
    
  2. 在 nano 編輯器中捲動至檔案結尾,並在右大括弧 (}) 前面從新行開始新增下列內容:

       "CUDAMachineType" : "Standard_NC6",
       "MaxCUDAExecuteCoreCount" : 60
    
  3. 在您於先前的步驟中新增的行之前的一行結尾處新增逗號:

       "CUDAMachineType" : "Standard_NC6"
    
  4. 依次選取 Ctrl + O 按鍵組合、Enter 鍵和 Ctrl + X 按鍵組合,以儲存您所做的變更,並關閉檔案。

工作 5:將修改過的範本和參數檔案匯入現有的叢集中

在此練習的最後部分,您會將修改過的範本及其參數檔案匯入到現有的叢集中,並覆寫其目前的設定。

  1. 在 Cloud Shell 中執行下列命令,將修改過的範本及其參數檔案匯入現有的叢集:

    cyclecloud import_cluster contoso-custom-slurm-lab-cluster --file ~/cyclecloud-slurm/templates/slurm.txt -p ~/params.json -c Slurm --force
    

    注意

    您必須指定目標叢集的名稱和 --force 旗標,以覆寫現有叢集的設定。

  2. 在您的電腦上開啟另一個瀏覽器視窗,並瀏覽至 https://<IP_address> URL。 如果出現提示,請確認您要繼續進行。

  3. 如果系統提示您進行驗證,請提供您用來設定同 Azure CycleCloud CLI 的相同 Azure CycleCloud 應用程式使用者帳戶的認證來登入。

  4. 在 Azure CycleCloud 圖形化介面中,瀏覽至 [叢集] 頁面。 在叢集清單中,選取 [contoso-custom-slurm-lab-cluster] 項目,然後再選取 [編輯]

  5. 在 [編輯 contoso-custom-slurm-lab-cluster] 快顯視窗的 [關於] 頁面上,選取 [下一步]

  6. 在 [必要設定] 頁面上,確認 [CUDA VM 類型] 項目是否設定為 Standard_NC6 值,以及對應的自動調整選項:

螢幕擷取畫面顯示 [編輯 contoso-custom-slurm-lab-cluster] 快顯視窗的 [必要設定] 頁面。

恭喜! 您已成功完成此課程模組的第二個練習。 在此練習中,您使用修改過的範本進一步自訂 Azure CycleCloud 叢集,包括以對應的資料分割定義新的 nodearray。 為了完成此目標,您在編輯範本之後,匯出和編輯叢集參數檔案,然後連同修改過的範本一起匯入至叢集。

注意

如果您打算執行下一個練習,請勿刪除您在此練習中部署和設定的資源。 您需要這些資源,才能完成下一個練習。