Ćwiczenie — dodawanie niestandardowej tablicy węzłów do klastra HPC
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).
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.
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.
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
Uruchom następujące polecenie, aby otworzyć pobrany szablon w edytorze nano:
nano slurm.txt
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.
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
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
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"}
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
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.
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 .
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
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 .
Uruchom następujące polecenie w usłudze Cloud Shell, aby otworzyć pobrany plik parametrów w edytorze nano:
nano ~/params.json
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
Dodaj przecinek na końcu wiersza poprzedzającego wiersz dodany w poprzednim kroku:
"CUDAMachineType" : "Standard_NC6"
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ę.
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.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ć.
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.
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.
W oknie podręcznym Edytowanie polecenia contoso-custom-slurm-lab-cluster na stronie Informacje wybierz pozycję Dalej.
Na stronie Wymagane ustawienia sprawdź obecność wpisu typ maszyny wirtualnej CUDA ustawioną na wartość Standard_NC6 i odpowiednie opcje skalowania automatycznego:
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.