Udostępnij za pośrednictwem


Konfigurowanie klastra RDMA systemu Windows za pomocą pakietu HPC Pack do uruchamiania aplikacji MPI

Ważne

Klasyczne maszyny wirtualne zostaną wycofane 1 marca 2023 r.

Jeśli używasz zasobów IaaS z usługi ASM, wykonaj migrację do 1 marca 2023 r. Zachęcamy do przejścia wcześniej, aby skorzystać z wielu ulepszeń funkcji w usłudze Azure Resource Manager.

Aby uzyskać więcej informacji, zobacz Migrowanie zasobów IaaS do usługi Azure Resource Manager do 1 marca 2023 r.

Skonfiguruj klaster RDMA systemu Windows na platformie Azure przy użyciu pakietów Microsoft HPC Pack i rozmiarów maszyn wirtualnych HPMA obsługujących funkcję HPC , aby uruchamiać równoległe aplikacje interfejsu przekazywania komunikatów (MPI). Po skonfigurowaniu węzłów opartych na funkcji RDMA w klastrze PAKIETU HPC Pack aplikacje MPI komunikują się wydajnie za pośrednictwem sieci o niskiej przepływności, wysokiej przepływności na platformie Azure opartej na technologii zdalnego bezpośredniego dostępu do pamięci (RDMA).

Opcje wdrażania klastra HPC Pack

Pakiet Microsoft HPC Pack to narzędzie bez dodatkowych kosztów tworzenia klastrów HPC lokalnie lub na platformie Azure w celu uruchamiania aplikacji HPC z systemem Windows lub Linux. Pakiet HPC Pack zawiera środowisko uruchomieniowe dla implementacji interfejsu przekazywania komunikatów dla systemu Windows (MS-MPI). W przypadku korzystania z wystąpień obsługujących funkcję RDMA z obsługiwanym systemem operacyjnym Windows Server pakiet HPC Pack zapewnia wydajną opcję uruchamiania aplikacji MPI systemu Windows, które uzyskują dostęp do sieci usługi Azure RDMA.

W tym artykule przedstawiono dwa scenariusze i linki do szczegółowych wskazówek dotyczących konfigurowania klastra RDMA systemu Windows za pomocą pakietu Microsoft HPC Pack 2012 R2.

  • Scenariusz 1. Wdrażanie wystąpień ról procesów roboczych intensywnie korzystających z obliczeń (PaaS)
  • Scenariusz 2. Wdrażanie węzłów obliczeniowych na maszynach wirtualnych intensywnie korzystających z obliczeń (IaaS)

Scenariusz 1. Wdrażanie wystąpień ról procesów roboczych intensywnie korzystających z obliczeń (PaaS)

Z istniejącego klastra pakietu HPC Pack dodaj dodatkowe zasoby obliczeniowe w wystąpieniach ról procesu roboczego platformy Azure (węzłach platformy Azure) uruchomionych w usłudze w chmurze (PaaS). Ta funkcja, nazywana również "wybuchem na platformie Azure" z pakietu HPC Pack, obsługuje szereg rozmiarów wystąpień roli procesu roboczego. Podczas dodawania węzłów platformy Azure określ jeden z rozmiarów obsługujących funkcję RDMA.

Poniżej przedstawiono zagadnienia i kroki umożliwiające skalowanie wystąpień platformy Azure obsługujących funkcję RDMA z istniejącego (zwykle lokalnego) klastra. Użyj podobnych procedur, aby dodać wystąpienia roli procesu roboczego do węzła głównego pakietu HPC Pack wdrożonego na maszynie wirtualnej platformy Azure.

Uwaga

Aby zapoznać się z samouczkiem dotyczącym skalowania na platformie Azure za pomocą pakietu HPC Pack, zobacz Konfigurowanie klastra hybrydowego za pomocą pakietu HPC Pack. Zwróć uwagę na zagadnienia opisane w poniższych krokach, które dotyczą konkretnie węzłów platformy Azure obsługujących funkcję RDMA.

Przenoszenie do platformy Azure

Kroki

  1. Wdrażanie i konfigurowanie węzła głównego pakietu HPC Pack 2012 R2

    Pobierz pakiet instalacyjny pakietu HPC Pack z Centrum pobierania Microsoft. Aby uzyskać wymagania i instrukcje dotyczące przygotowania do wdrożenia z serii wzrostów platformy Azure, zobacz Burst to Azure Worker Instances with Microsoft HPC Pack (Tworzenie serii w wystąpieniach procesów roboczych platformy Azure za pomocą pakietu Microsoft HPC Pack).

  2. Konfigurowanie certyfikatu zarządzania w subskrypcji platformy Azure

    Skonfiguruj certyfikat w celu zabezpieczenia połączenia między węzłem głównym a platformą Azure. Aby uzyskać informacje o opcjach i procedurach, zobacz Scenariusze konfigurowania certyfikatu zarządzania platformy Azure dla pakietu HPC Pack. W przypadku wdrożeń testowych pakiet HPC Pack instaluje domyślny certyfikat zarządzania platformy Microsoft HPC Azure, który można szybko przekazać do subskrypcji platformy Azure.

  3. Tworzenie nowej usługi w chmurze i konta magazynu

    Użyj Azure Portal, aby utworzyć usługę w chmurze (klasyczną) i konto magazynu (klasyczne) dla wdrożenia. Utwórz te zasoby w regionie, w którym dostępny jest rozmiar serii H, A8 lub A9, którego chcesz użyć. Zobacz Produkty platformy Azure według regionów.

  4. Tworzenie szablonu węzła platformy Azure

    Użyj Kreatora tworzenia szablonu węzła w Menedżerze klastra HPC. Aby uzyskać instrukcje, zobacz Tworzenie szablonu węzła platformy Azure w temacie "Kroki wdrażania węzłów platformy Azure za pomocą pakietu Microsoft HPC Pack".

    W przypadku testów początkowych zalecamy skonfigurowanie zasad dostępności ręcznej w szablonie.

  5. Dodawanie węzłów do klastra

    Użyj Kreatora dodawania węzła w Menedżerze klastra HPC. Aby uzyskać więcej informacji, zobacz Dodawanie węzłów platformy Azure do klastra HPC systemu Windows.

    Podczas określania rozmiaru węzłów wybierz jeden z rozmiarów wystąpień obsługujących funkcję RDMA.

    Uwaga

    W każdym przypadku wdrożenia na platformie Azure z wystąpieniami intensywnie korzystającymi z obliczeń pakiet HPC Pack automatycznie wdraża co najmniej dwa wystąpienia z obsługą funkcji RDMA (np. A8) jako węzły serwera proxy oprócz określonych wystąpień roli procesu roboczego platformy Azure. Węzły serwera proxy używają rdzeni przydzielonych do subskrypcji i naliczania opłat wraz z wystąpieniami roli procesu roboczego platformy Azure.

  6. Uruchamianie (aprowizowania) węzłów i przełączenie ich do trybu online w celu uruchomienia zadań

    Wybierz węzły i użyj akcji Uruchom w Menedżerze klastra HPC. Po zakończeniu aprowizacji wybierz węzły i użyj akcji Bring Online w menedżerze klastra HPC. Węzły są gotowe do uruchamiania zadań.

  7. Przesyłanie zadań do klastra

    Użyj narzędzi do przesyłania zadań pakietu HPC Pack do uruchamiania zadań klastra. Zobacz Microsoft HPC Pack: Zarządzanie zadaniami.

  8. Zatrzymywanie (anulowanie aprowizacji) węzłów

    Po zakończeniu uruchamiania zadań przejmij węzły w tryb offline i użyj akcji Zatrzymaj w menedżerze klastra HPC.

Scenariusz 2. Wdrażanie węzłów obliczeniowych na maszynach wirtualnych intensywnie korzystających z obliczeń (IaaS)

W tym scenariuszu wdrożysz węzeł główny pakietu HPC Pack i węzły obliczeniowe klastra na maszynach wirtualnych w sieci wirtualnej platformy Azure. Pakiet HPC Pack udostępnia kilka opcji wdrażania na maszynach wirtualnych platformy Azure, w tym skrypty zautomatyzowanego wdrażania i szablony szybkiego startu platformy Azure. Na przykład poniższe zagadnienia i kroki zawierają instrukcje dotyczące używania skryptu wdrażania IaaS pakietu HPC Pack w celu zautomatyzowania wdrażania klastra HPC Pack 2012 R2 na platformie Azure.

Klaster na maszynach wirtualnych platformy Azure

Kroki

  1. Tworzenie węzła głównego klastra i maszyn wirtualnych węzłów obliczeniowych przez uruchomienie skryptu wdrażania IaaS pakietu HPC Pack na komputerze klienckim

    Pobierz pakiet skryptu wdrażania IaaS pakietu HPC Pack z Centrum pobierania Microsoft.

    Aby przygotować komputer kliencki, utwórz plik konfiguracji skryptu i uruchom skrypt, zobacz Tworzenie klastra HPC za pomocą skryptu wdrażania IaaS pakietu HPC Pack.

    Aby zapoznać się z zagadnieniami dotyczącymi wdrażania węzłów obliczeniowych obsługujących funkcję RDMA, zobacz Rozmiary maszyn wirtualnych obliczeniowych o wysokiej wydajności i zwróć uwagę na następujące kwestie:

    • Sieć wirtualna: określ nową sieć wirtualną w regionie, w którym jest dostępny rozmiar serii H, A8 lub A9, którego chcesz użyć. Zobacz Produkty platformy Azure według regionów.

    • System operacyjny Windows Server: aby obsługiwać łączność RDMA, określ zgodny system operacyjny Windows Server, taki jak Windows Server 2012 R2 dla maszyn wirtualnych węzłów obliczeniowych.

    • Usługi w chmurze: ponieważ skrypt używa klasycznego modelu wdrażania, maszyny wirtualne klastra są wdrażane przy użyciu usług w chmurze platformy Azure (ServiceName ustawienia w pliku konfiguracji). Zalecamy wdrożenie węzła głównego w jednej usłudze w chmurze i węzłach obliczeniowych w innej usłudze w chmurze.

    • Rozmiar węzła głównego: w tym scenariuszu należy wziąć pod uwagę rozmiar co najmniej A4 (bardzo duży) dla węzła głównego.

    • Rozszerzenie HpcVmDrivers: skrypt wdrażania instaluje agenta maszyny wirtualnej platformy Azure i rozszerzenia HpcVmDrivers automatycznie podczas wdrażania rozmiarów węzłów obliczeniowych A8 lub A9 z systemem operacyjnym Windows Server. HpcVmDrivers instaluje sterowniki na maszynach wirtualnych węzłów obliczeniowych, aby mogły łączyć się z siecią RDMA. Na maszynach wirtualnych z serii H z obsługą funkcji RDMA należy ręcznie zainstalować rozszerzenie HpcVmDrivers. Zobacz Rozmiary maszyn wirtualnych obliczeniowych o wysokiej wydajności.

    • Konfiguracja sieci klastra: skrypt wdrażania automatycznie konfiguruje klaster pakietu HPC Pack w topologii 5 (wszystkie węzły w sieci przedsiębiorstwa). Ta topologia jest wymagana dla wszystkich wdrożeń klastra HPC Pack na maszynach wirtualnych. Nie zmieniaj topologii sieci klastra później.

  2. Przenoszenie węzłów obliczeniowych w tryb online do uruchamiania zadań

    Wybierz węzły i użyj akcji Bring Online w menedżerze klastra HPC. Węzły są gotowe do uruchamiania zadań.

  3. Przesyłanie zadań do klastra

    Połącz się z węzłem głównym, aby przesłać zadania lub skonfigurować komputer lokalny, aby to zrobić. Aby uzyskać informacje, zobacz Przesyłanie zadań do klastra HPC na platformie Azure.

  4. Przełącz węzły w tryb offline i zatrzymaj (cofnij przydział)

    Po zakończeniu uruchamiania zadań przejmij węzły w tryb offline w Menedżerze klastra HPC. Następnie użyj narzędzi do zarządzania platformy Azure, aby je zamknąć.

Uruchamianie aplikacji MPI w klastrze

Przykład: uruchamianie pliku mpipingpong w klastrze HPC Pack

Aby zweryfikować wdrożenie pakietu HPC Pack wystąpień obsługujących funkcję RDMA, uruchom polecenie mpipingpong pakietu HPC Pack w klastrze. mpipingpong wysyła pakiety danych między sparowanych węzłów wielokrotnie w celu obliczenia opóźnień i pomiarów przepływności oraz statystyk dla sieci aplikacji z włączoną funkcją RDMA. W tym przykładzie przedstawiono typowy wzorzec uruchamiania zadania MPI (w tym przypadku mpipingpong) przy użyciu polecenia mpiexec klastra.

W tym przykładzie przyjęto założenie, że węzły platformy Azure zostały dodane w konfiguracji "burst to Azure" ([Scenariusz 1](#scenario-1.-deploy-compute-intensive-worker-role-instances-(PaaS) w tym artykule). Jeśli pakiet HPC Pack został wdrożony w klastrze maszyn wirtualnych platformy Azure, należy zmodyfikować składnię poleceń, aby określić inną grupę węzłów i ustawić dodatkowe zmienne środowiskowe, aby kierować ruch sieciowy do sieci RDMA.

Aby uruchomić polecenie mpipingpong w klastrze:

  1. W węźle głównym lub na prawidłowo skonfigurowanym komputerze klienckim otwórz wiersz polecenia.

  2. Aby oszacować opóźnienie między parami węzłów w ramach wdrożenia na platformie Azure z czterema węzłami, wpisz następujące polecenie, aby przesłać zadanie do uruchomienia mpipingpong o małym rozmiarze pakietu i wielu iteracji:

    job submit /nodegroup:azurenodes /numnodes:4 mpiexec -c 1 -affinity mpipingpong -p 1:100000 -op -s nul
    

    Polecenie zwraca identyfikator przesłanego zadania.

    Jeśli wdrożono klaster PAKIETU HPC Pack wdrożony na maszynach wirtualnych platformy Azure, określ grupę węzłów zawierającą maszyny wirtualne węzła obliczeniowego wdrożone w jednej usłudze w chmurze i zmodyfikuj polecenie mpiexec w następujący sposób:

    job submit /nodegroup:vmcomputenodes /numnodes:4 mpiexec -c 1 -affinity -env MSMPI_DISABLE_SOCK 1 -env MSMPI_PRECONNECT all -env MPICH_NETMASK 172.16.0.0/255.255.0.0 mpipingpong -p 1:100000 -op -s nul
    
  3. Po zakończeniu zadania, aby wyświetlić dane wyjściowe (w tym przypadku dane wyjściowe zadania 1 zadania), wpisz następujące polecenie

    task view <JobID>.1
    

    gdzie <JobID> jest identyfikatorem przesłanego zadania.

    Dane wyjściowe zawierają wyniki opóźnień podobne do poniższych.

    Opóźnienie ping-ponga

  4. Aby oszacować przepływność między parami węzłów usługi Azure Burst, wpisz następujące polecenie, aby przesłać zadanie do uruchomienia mpipingpong o dużym rozmiarze pakietów i kilku iteracji:

    job submit /nodegroup:azurenodes /numnodes:4 mpiexec -c 1 -affinity mpipingpong -p 4000000:1000 -op -s nul
    

    Polecenie zwraca identyfikator przesłanego zadania.

    W klastrze HPC Pack wdrożonym na maszynach wirtualnych platformy Azure zmodyfikuj polecenie zgodnie z instrukcjami w kroku 2.

  5. Po zakończeniu zadania, aby wyświetlić dane wyjściowe (w tym przypadku dane wyjściowe zadania 1 zadania), wpisz następujące polecenie:

    task view <JobID>.1
    

    Dane wyjściowe zawierają wyniki przepływności podobne do poniższych.

    Przepływność ping-ponga

Zagadnienia dotyczące aplikacji MPI

Poniżej przedstawiono zagadnienia dotyczące uruchamiania aplikacji MPI z pakietem HPC Pack na platformie Azure. Niektóre dotyczą tylko wdrożeń węzłów platformy Azure (wystąpień roli procesu roboczego dodanych w konfiguracji "burst to Azure").

  • Wystąpienia roli procesu roboczego w usłudze w chmurze są okresowo ponownie aprowidowane bez powiadomienia przez platformę Azure (na przykład w przypadku konserwacji systemu lub w przypadku awarii wystąpienia). Jeśli wystąpienie jest ponownie aprowidowane podczas uruchamiania zadania MPI, wystąpienie traci dane i powraca do stanu, gdy zostało wdrożone po raz pierwszy, co może spowodować niepowodzenie zadania MPI. Więcej węzłów używanych dla pojedynczego zadania MPI i tym dłużej działa zadanie, tym bardziej prawdopodobne jest ponowne aprowizowanie jednego z wystąpień podczas uruchamiania zadania. Należy to również wziąć pod uwagę w przypadku wyznaczenia pojedynczego węzła we wdrożeniu jako serwera plików.

  • Aby uruchamiać zadania MPI na platformie Azure, nie musisz używać wystąpień z funkcją RDMA. Możesz użyć dowolnego rozmiaru wystąpienia obsługiwanego przez pakiet HPC Pack. Jednak wystąpienia z funkcją RDMA są zalecane do uruchamiania stosunkowo dużych zadań MPI, które są wrażliwe na opóźnienie i przepustowość sieci łączącej węzły. Jeśli używasz innych rozmiarów do uruchamiania zadań MPI z opóźnieniem i przepustowością, zalecamy uruchamianie małych zadań, w których jedno zadanie jest uruchamiane tylko na kilku węzłach.

  • Aplikacje wdrożone w wystąpieniach platformy Azure podlegają postanowieniom licencyjnym skojarzonym z aplikacją. Skontaktuj się z dostawcą aplikacji komercyjnej w celu uzyskania informacji na temat licencjonowania lub innych ograniczeń związanych z uruchamianiem w chmurze. Nie wszyscy dostawcy oferują licencjonowanie oparte na płatności zgodnie z rzeczywistym użyciem.

  • Wystąpienia platformy Azure wymagają dalszej konfiguracji w celu uzyskania dostępu do węzłów lokalnych, udziałów i serwerów licencji. Aby na przykład umożliwić węzłom platformy Azure dostęp do lokalnego serwera licencji, można skonfigurować sieć wirtualną platformy Azure typu lokacja-lokacja.

  • Aby uruchamiać aplikacje MPI w wystąpieniach platformy Azure, zarejestruj każdą aplikację MPI za pomocą Zapory systemu Windows w wystąpieniach, uruchamiając polecenie hpcfwutil . Dzięki temu komunikacja MPI odbywa się na porcie, który jest przypisywany dynamicznie przez zaporę.

    Uwaga

    W przypadku wdrożeń na platformie Azure można również skonfigurować polecenie wyjątku zapory do automatycznego uruchamiania we wszystkich nowych węzłach platformy Azure, które są dodawane do klastra. Po uruchomieniu polecenia hpcfwutil i sprawdzeniu, czy aplikacja działa, dodaj polecenie do skryptu uruchamiania dla węzłów platformy Azure. Aby uzyskać więcej informacji, zobacz Używanie skryptu uruchamiania dla węzłów platformy Azure.

  • Pakiet HPC Pack używa zmiennej środowiskowej klastra CCP_MPI_NETMASK w celu określenia zakresu dopuszczalnych adresów dla komunikacji MPI. Począwszy od pakietu HPC Pack 2012 R2, zmienna środowiskowa klastra CCP_MPI_NETMASK wpływa tylko na komunikację MPI między węzłami obliczeniowymi klastra przyłączonego do domeny (lokalnie lub na maszynach wirtualnych platformy Azure). Zmienna jest ignorowana przez węzły dodane w ramach serii do konfiguracji platformy Azure.

  • Zadania MPI nie mogą być uruchamiane w wystąpieniach platformy Azure wdrożonych w różnych usługach w chmurze (na przykład w przypadku wdrożeń na platformie Azure z różnymi szablonami węzłów lub węzłów obliczeniowych maszyny wirtualnej platformy Azure wdrożonych w wielu usługach w chmurze). Jeśli masz wiele wdrożeń węzłów platformy Azure, które są uruchamiane z różnymi szablonami węzłów, zadanie MPI musi być uruchamiane tylko w jednym zestawie węzłów platformy Azure.

  • Po dodaniu węzłów platformy Azure do klastra i przełączeniu ich do trybu online usługa HARMONOGRAMU zadań HPC natychmiast podejmie próbę uruchomienia zadań w węzłach. Jeśli tylko część obciążenia może działać na platformie Azure, upewnij się, że zaktualizujesz lub utworzysz szablony zadań w celu zdefiniowania typów zadań, które mogą być uruchamiane na platformie Azure. Aby na przykład upewnić się, że zadania przesłane przy użyciu szablonu zadania są uruchamiane tylko w węzłach platformy Azure, dodaj właściwość Grupy węzłów do szablonu zadania i wybierz pozycję AzureNodes jako wymaganą wartość. Aby utworzyć grupy niestandardowe dla węzłów platformy Azure, użyj polecenia cmdlet programu PowerShell Add-HpcGroup HPC.

Następne kroki