Ćwiczenie — dodawanie niestandardowej tablicy węzłów do klastra HPC

Ukończone

Uwaga

Ta zawartość odwołuje się do systemu CentOS , dystrybucji systemu Linux, która jest stanem End Of Life (EOL). Rozważ odpowiednie użycie i zaplanuj. Aby uzyskać więcej informacji, zobacz wskazówki dotyczące zakończenia życia systemu CentOS.

Nodearray to kolekcja identycznych skonfigurowanych węzłów klastra Usługi Azure CycleCloud. Ich celem jest dostosowanie skalowania w poziomie zasobów obliczeniowych klastra w miarę zmian liczby zadań w kolejce. Każda właściwość nodearray ma nazwę, zestaw atrybutów, które mają zastosowanie do każdego z jego węzłów, oraz atrybuty opcjonalne opisujące sposób skalowania węzła.

Harmonogram zadań Slurm partycjonuje węzły w zestawy logiczne i potencjalnie nakładające się. Ich celem jest zoptymalizowanie przetwarzania zadań przez uwzględnienie określonych ograniczeń, takich jak zasób lub limity czasowe. Harmonogram przydziela zadania węzłom w ramach partycji do momentu wyczerpania zasobów lub przetworzenia wszystkich zadań.

Chcesz zmodyfikować nowo wdrożony klaster zarządzany przez usługę Azure CycleCloud, aby uwzględnić potrzeby zasobów specyficznych dla zadania. Aby osiągnąć ten cel, decydujesz się zastosować więcej zmian do bazowego szablonu i zweryfikować swoje podejście.

W tym ćwiczeniu wykonasz następujące zadania:

  • Zadanie 1. Dodawanie definicji nodearray do szablonu usługi Azure CycleCloud
  • Zadanie 2. Dodawanie parametrów interfejsu graficznego do szablonu usługi Azure CycleCloud
  • Zadanie 3. Eksportowanie właściwości klastra Azure CycleCloud
  • Zadanie 4. Edytowanie pliku właściwości w celu uwzględnienia nowych parametrów
  • Zadanie 5. Importowanie zmodyfikowanego szablonu i pliku parametrów do istniejącego klastra

Uwaga

Przed rozpoczęciem tego ćwiczenia upewnij się, że poprzednie ćwiczenie zostało ukończone pomyślnie.

Zadanie 1. Dodawanie definicji nodearray do szablonu usługi Azure CycleCloud

Zaczniesz od dodania definicji węzłaarray w szablonie Slurm dostosowanym w poprzednim ćwiczeniu. Przykładowy szablon zawiera dwie partycje oznaczone etykietą hpc i htc. Utworzysz kolejną partycję i odpowiednia partycja nodearray przeznaczona dla zadań, które korzystają z możliwości ujednoliconej architektury urządzeń obliczeniowych (CUDA).

  1. Przejdź do Portalu Azure. Po wyświetleniu monitu uwierzytelnij się przy użyciu konta Microsoft lub konta Microsoft Entra, które ma rolę Współautor lub Właściciel w subskrypcji platformy Azure, której używasz w tym module.

  2. W witrynie Azure Portal otwórz usługę Cloud Shell , wybierając jej ikonę na pasku narzędzi obok pola tekstowego wyszukiwania i upewnij się, że uruchamiasz sesję powłoki Bash.

  3. Uruchom następujące polecenie w usłudze Cloud Shell, aby ustawić katalog roboczy na ten, który hostuje repozytorium GitHub pobrane w poprzednim ćwiczeniu:

    cd ~/cyclecloud-slurm/templates
    
  4. Uruchom następujące polecenie, aby otworzyć pobrany szablon w edytorze nano:

    nano slurm.txt
    
  5. W interfejsie edytora nano przewiń do [parameters About] sekcji i dodaj następującą zawartość bezpośrednio przed nim:

    
    [[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
    
    

    Uwaga

    Jeśli używasz komputera z systemem Windows, możesz wkleić zawartość schowka przy użyciu kombinacji Shift + Insert .

    Uwaga

    Zmiany definiują dodatkowy węzełarray.

Zadanie 2. Dodawanie parametrów interfejsu graficznego do szablonu usługi Azure CycleCloud

Aby móc modyfikować wartości parametrów szablonu za pomocą interfejsu graficznego usługi Azure CycleCloud, zastosujesz więcej zmian do szablonu.

  1. W interfejsie edytora nano przewiń do [[parameters Auto-Scaling]] sekcji i dodaj następującą zawartość bezpośrednio przed nim:

    
        [[[parameter CUDAMachineType]]]
        Label = CUDA VM Type
        Description = The VM type for CUDA execute nodes
        ParameterType = Cloud.MachineType
        DefaultValue = Standard_NC24
    
    
  2. Przewiń do [[[parameter HPCMaxScalesetSize]]] sekcji i dodaj następującą zawartość bezpośrednio przed nim:

    
        [[[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. Przewiń do [[[parameter SchedulerClusterInitSpecs]]] sekcji i dodaj następującą zawartość bezpośrednio przed nim:

    
        [[[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. Przewiń do [[parameters Advanced Networking]] sekcji i dodaj następującą zawartość bezpośrednio przed nim:

    
        [[[parameter CUDAClusterInitSpecs]]]
        Label = CUDA Cluster-Init
        DefaultValue = =undefined
        Description = Cluster init specs to apply to CUDA execute nodes
        ParameterType = Cloud.ClusterInitSpecs
    
    
  5. Wybierz kombinację Ctrl + O , wybierz Enter , a następnie naciśnij kombinację Ctrl + X , aby zapisać wprowadzone zmiany i zamknąć plik.

Zadanie 3. Eksportowanie właściwości klastra Azure CycleCloud

Przed zastosowaniem zmian konfiguracji wprowadzonych w szablonie usługi Azure CycleCloud do klastra docelowego należy najpierw wyeksportować właściwości klastra.

  1. Uruchom następujące polecenie w usłudze Cloud Shell, aby wyświetlić listę istniejących klastrów:

    cyclecloud show_cluster
    

    Uwaga

    Sprawdź, czy dane wyjściowe zawierają wpis contoso-custom-slurm-lab-cluster .

  2. Uruchom następujące polecenie, aby wyeksportować do pliku params.json listę parametrów klastra contoso-custom-slurm-lab-cluster i ich wartości:

    cyclecloud export_parameters contoso-custom-slurm-lab-cluster > ~/params.json
    
  3. Uruchom następujące polecenie, aby przejrzeć wyeksportowaną listę parametrów i ich wartości:

    cat ~/params.json
    

Zadanie 4. Edytowanie pliku właściwości w celu uwzględnienia nowych parametrów

Podczas gdy zmiany zastosowane do szablonu usługi Azure CycleCloud zawierały wartości domyślne dla wszystkich nowo wprowadzonych parametrów, może być konieczne zmodyfikowanie ich w celu uwzględnienia określonych wymagań. W tym zadaniu ustawisz wartości parametrów CUDAMachineType i MaxCUDAExecuteCoreCount .

  1. Uruchom następujące polecenie w usłudze Cloud Shell, aby otworzyć pobrany plik parametrów w edytorze nano:

    nano ~/params.json
    
  2. W edytorze nano przewiń do końca pliku i dodaj następującą zawartość rozpoczynającą się od nowego wiersza przed zamykającymi nawiasami klamrowymi (}):

       "CUDAMachineType" : "Standard_NC6",
       "MaxCUDAExecuteCoreCount" : 60
    
  3. Dodaj przecinek na końcu wiersza poprzedzającego wiersz dodany w poprzednim kroku:

       "CUDAMachineType" : "Standard_NC6"
    
  4. Wybierz kombinację Ctrl + O , wybierz Enter , a następnie naciśnij kombinację Ctrl + X , aby zapisać wprowadzone zmiany i zamknąć plik.

Zadanie 5. Importowanie zmodyfikowanego szablonu i pliku parametrów do istniejącego klastra

Aby zakończyć to ćwiczenie, zaimportujesz zmodyfikowany szablon i jego plik parametrów do istniejącego klastra, przesłaniając jego bieżącą konfigurację.

  1. Uruchom następujące polecenie w usłudze Cloud Shell, aby zaimportować zmodyfikowany szablon i jego plik parametrów do istniejącego klastra:

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

    Uwaga

    Należy określić nazwę klastra docelowego i flagę --force , aby zastąpić konfigurację istniejącego klastra.

  2. Na komputerze otwórz inne okno przeglądarki i przejdź do adresu URL https://< IP_address> . Jeśli zostanie wyświetlony monit, upewnij się, że chcesz kontynuować.

  3. Jeśli zostanie wyświetlony monit o uwierzytelnienie, zaloguj się, podając poświadczenia tego samego konta użytkownika aplikacji Azure CycleCloud użytego do skonfigurowania interfejsu wiersza polecenia usługi Azure CycleCloud.

  4. W interfejsie graficznym usługi Azure CycleCloud przejdź do strony Klastry . Na liście klastrów wybierz wpis contoso-custom-slurm-lab-cluster , a następnie wybierz pozycję Edytuj.

  5. W oknie podręcznym Edytowanie polecenia contoso-custom-slurm-lab-cluster na stronie Informacje wybierz pozycję Dalej.

  6. Na stronie Wymagane ustawienia sprawdź obecność wpisu typ maszyny wirtualnej CUDA ustawioną na wartość Standard_NC6 i odpowiednie opcje skalowania automatycznego:

Zrzut ekranu przedstawiający stronę Wymagane ustawienia okna podręcznego Edytowanie contoso-custom-slurm-lab-cluster.

Gratulacje! Drugie ćwiczenie tego modułu zostało ukończone pomyślnie. W tym ćwiczeniu dodatkowo dostosowano klaster usługi Azure CycleCloud przy użyciu zmodyfikowanego szablonu, w tym definicji nowego węzłaarray z odpowiednią partycją. Aby osiągnąć ten cel, po edycji szablonu wyeksportowano i edytowano plik parametrów klastra i zaimportowano go wraz z zmodyfikowanym szablonem do klastra.

Uwaga

Nie usuwaj zasobów wdrożonych i skonfigurowanych w tym ćwiczeniu, jeśli planujesz uruchomić następne ćwiczenie. Te zasoby są wymagane w celu ukończenia następnego ćwiczenia.