Упражнение. Добавление пользовательского массива узлов в кластер HPC

Завершено

Внимание

Это содержимое ссылается на CentOS, дистрибутив Linux, который является состоянием конца жизни (EOL). Обратите внимание на использование и план соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.

Массив узлов — это коллекция одинаково настроенных узлов кластера Azure CycleCloud. Их назначение — обеспечить горизонтальное масштабирование ресурсов кластера по мере изменения числа заданий в очереди. У каждого массива узлов есть имя, набор атрибутов, которые применяются к каждому из его узлов, и необязательные атрибуты, описывающие масштабирование массива узлов.

Планировщик заданий Slurm секционирует узлы группы в логические и потенциально перекрывающиеся наборы. Их цель — оптимизировать обработку заданий путем учета конкретных ограничений, таких как ресурсы или ограничения времени. Планировщик выделяет задания узлам внутри раздела, пока ресурсы не закончатся или не будут обработаны все задания.

Вы хотите изменить только что развернутый управляемый кластер Azure CycleCloud, чтобы он учитывал потребности конкретного задания. Чтобы выполнить эту задачу, вы решили внести дополнительные изменения в базовый шаблон и проверить свой подход.

В этом упражнении вы выполните следующие задачи.

  • Задача 1. Добавление определения массива узлов в шаблон Azure CycleCloud
  • Задача 2. Добавление параметров графического интерфейса в шаблон Azure CycleCloud
  • Задача 3. Экспорт свойств кластера Azure CycleCloud
  • Задача 4. Изменение файла свойств для включения новых параметров
  • Задача 5. Импорт измененного файла шаблона и параметров в существующий кластер

Примечание.

Перед началом этого упражнения убедитесь, что вы успешно выполнили предыдущее упражнение.

Задача 1. Добавление определения массива узлов в шаблон Azure CycleCloud

Сначала вы добавите определение nodearray в шаблон Slurm, который вы настроили в предыдущем упражнении. Пример шаблона содержит два раздела, помеченные как hpc и htc. Вы создадите еще один раздел и соответствующий массив узлов, предназначенный для заданий, которым для оптимального выполнения подойдет архитектура CUDA.

  1. Перейдите на портал Azure. При появлении запроса выполните проверку подлинности с помощью учетной записи Майкрософт или учетной записи Microsoft Entra, которая имеет роль участника или владельца в подписке Azure, которую вы используете в этом модуле.

  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 .

    Примечание.

    Ваши изменения определяют дополнительный массив узлов.

Задача 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, выберите клавишу ВВОД, а затем нажмите сочетание клавиш CTRL+X, чтобы сохранить внесенные изменения и закрыть файл.

Задача 3. Экспорт свойств кластера Azure CycleCloud

Перед применением изменений конфигурации, внесенных в шаблон Azure CycleCloud, к целевому кластеру, необходимо экспортировать свойства кластера.

  1. Выполните следующую команду в Cloud Shell, чтобы получить список существующих кластеров:

    cyclecloud show_cluster
    

    Примечание.

    Убедитесь, что выходные данные включают запись contoso-custom-slurm-lab-cluster.

  2. Выполните следующую команду, чтобы экспортировать в файл params.json список параметров кластера contoso-custom-slurm-lab-cluster и их значения:

    cyclecloud export_parameters contoso-custom-slurm-lab-cluster > ~/params.json
    
  3. Выполните следующую команду, чтобы просмотреть экспортированный список параметров и их значения:

    cat ~/params.json
    

Задача 4. Изменение файла свойств для включения новых параметров

Хотя изменения, примененные к шаблону Azure CycleCloud, включали значения по умолчанию для всех новых параметров, возможно, вам потребуется изменить их в соответствие с конкретными требованиями. В этой задаче вы задаете значения параметров CUDAMachineType и MaxCUDAExecuteCoreCount.

  1. Выполните следующую команду в Cloud Shell, чтобы открыть скачанный файл параметров в редакторе nano:

    nano ~/params.json
    
  2. В редакторе nano прокрутите до конца файла и добавьте следующее содержимое, начиная с новой строки перед закрывающей скобкой (}):

       "CUDAMachineType" : "Standard_NC6",
       "MaxCUDAExecuteCoreCount" : 60
    
  3. Добавьте запятую в конец строки, предшествующей строке, добавленной на предыдущем шаге:

       "CUDAMachineType" : "Standard_NC6"
    
  4. Выберите сочетание клавиш CTRL+O, выберите клавишу ВВОД, а затем нажмите сочетание клавиш 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. На компьютере откройте еще одно окно браузера и перейдите по URL-адресу https://<IP_address>. При появлении запроса подтвердите, что хотите продолжить.

  3. При появлении запроса на проверку подлинности войдите в систему, указав учетные данные той же учетной записи пользователя приложения Azure CycleCloud, которая использовалась для настройки Azure CycleCloud CLI.

  4. В графическом интерфейсе Azure CycleCloud перейдите на страницу Кластеры. В списке кластеров выберите запись contoso-custom-slurm-lab-cluster , а затем нажмите кнопку "Изменить".

  5. Во всплывающем окне Изменить contoso-custom-slurm-lab-cluster на странице Сведения нажмите Далее.

  6. На странице Обязательные параметры убедитесь, что для записи Тип виртуальной машины CUDA задано значение Standard_NC6 и соответствующие параметры автомасштабирования:

Снимок экрана: страница

Поздравляем! Вы выполнили второе упражнение этого модуля. В этом упражнении вы настроили кластер Azure CycleCloud, используя измененный шаблон, включая определение нового массива узлов с соответствующим разделом. Чтобы добиться этой цели, после редактирования шаблона вы экспортировали и изменили файл параметров кластера и импортировали его вместе с измененным шаблоном в кластер.

Примечание.

Не удаляйте развернутые и настроенные в этом упражнении ресурсы, если планируется выполнить следующее упражнение. Эти ресурсы необходимы для выполнения следующего упражнения.