Superkomputer pod Windows: HPC Server 2008(i nie tylko)
Transkrypt
Superkomputer pod Windows: HPC Server 2008(i nie tylko)
Superkomputer pod Windows: HPC Server 2008 (i nie tylko) Tomasz Kopacz [email protected] Agenda Dlaczego HPC? Windows HPC Server 2008 - Rynek i nauka Nowe rozwiązania w HPC Server 2008 Zarządzanie systemem HPC Sied i MPI Tworzenie aplikacji HPC Kolejkowanie zadao Dlaczego HPC? Stan HPC • Pewne klasy problemów (naukowych, inżynieryjnych czy biznesowych) zawsze wymagały „niestandardowych” możliwości obliczeniowych • Presja rynkowa wymusiła zwiększenie „innowacyjności”, redukcję kosztów i modelowanie – nawet w tradycyjnych przedsiębiorstwach – które dotychczas nie potrzebowały wyrafinowanych obliczeo Skala ekonomiczna i możliwości sprzętu/oprogramowania sprawiły że HPC jest coraz popularniejszym narzędziem dla dużej (względnie) liczby użytkowników Windows HPC Server Narzędzia developerskie Klienci/wysyłanie zadań Administracja Visual Studio: C#, C++, WCF, OpenMP, MPI, MPI.NET Analiza śladu App. wsadowe SharePoint Profilowanie Windows® HPC Server 2008 Administration Console: Aplikacje WCF Excel Bibliot. numeryczne Debugger MPI System, Scheduling, Networking, Imaging, Diagnostics Konsola CCS Fortran Śledzenie MPI Windows Workflow Foundation Skrypty CCS Windows Powershell System Center Operations Manager Windows® HPC Server 2008 Istniejąca infrastr. klastrowa Router WCF API do wysyłania zadań Kolejkowanie zadań /klaster/ API Administracyjne HPC Profile UNIX/Linux/... System Center Data Protection Manager Windows Server 2008 Węzły obliczeniowe Zarządzanie węzłami Aplikacje: WCF, C#, C++, Fortran Nowy TCP/IP System Center Configuration Manager Windows Server Update Services Software Protection Services Dodatki firm trzecich MPI Z Network Direct Business Intelligence Pamięć Pamięć Pamięć Zródło Partnerzy Microsoft HPC Server 2008 Parallel/Clustered Storage SQL Structured Storage Windows Storage Server z DFS SQL Server Integration Services SQL Server Analysis/ Reporting Agenda Dlaczego HPC? Windows HPC Server 2008 - Rynek i nauka Nowe rozwiązania w HPC Server 2008 Zarządzanie systemem HPC Sied i MPI Tworzenie aplikacji HPC Kolejkowanie zadao Rozwiązania branżowe Nauka Przemysł lotniczy Przemysł samochodowy Usługi finansowe Rozwiązania w administracji publicznej Nauki biologiczne Partnerzy Microsoft Współpraca z uczelniami • Microsoft i HP: Universal Parallel Computing Research Centers – University of Illinois (UIUC) – University of California (UC Berkeley) • Aachen (Windows 2008 HPC) – Kod testu HPL: 18 TFlop/s – 256 węzłów; rdzeni 1024 • Intel Xeon E5450 (Quad-core, 3Ghz) • Infiniband • RAM (w sumie) 4TB – 75% teoretycznej wydajności • Tomsk State University (SKIF Cyberia; 283 węzły dualcore; CCS 2003, teoretyczne 12 TFlop, Linpack: 7.8 TFlop) • Instituto Politecnico Nacional (Meksyk): 1000 nodów… • … Windows HPC Server 2008 Szczegółowe wyniki Położenie Sprzęt – Serwery Sprzęt – Sied Liczba węzłów Całkowita liczba rdzeni Pamięd Wyniki z aktualnie wykonywanych testów Linpack Najlepszy wynik Najlepsza wydajnośd klastra Dla porównania… Wynik Linpack z June2007 Top500 (#106) na tym samym sprzęcie Wydajnośd klastra z June2007 Top500 run (#106) na tym samym sprzęcie Typowa wydajnośd w Top500 dla płyt Clovertown / IB ; bez uwzględniania systemu operacyjnego Tukwila, WA 256 Dual-CPU, quad-core Intel 5320 Clovertown procesory 1.86GHz i 8GB RAM Private i Public: Broadcom GigE MPI: Cisco Infiniband 256 2048 2+ TB RAM #116 Top 500 11.75 TeraFLOPS 77.1% 8.99 TeraFLOPS 59% 65-77% (2 instancje mają 79%) Instalacja: poniżej 2h 30% większa wydajnośd na tym samym sprzęcie. Wersje: Nov 07 Beta 1 April CTP lato 2008 – RTM http://www.microsoft.com/hpc Agenda Dlaczego HPC? Windows HPC Server 2008 - Rynek i nauka Nowe rozwiązania w HPC Server 2008 Zarządzanie systemem HPC Sied i MPI Tworzenie aplikacji HPC Kolejkowanie zadao Co nowego w Windows Server 2008 z punktu widzenia HPC? Niezawodnośd • High Availability Services - failover używa np. iSCSI • Dynamiczne partycjonowanie - Hot plug PCI Express/pamięd, dodawanie i zastępowanie w locie procesorów • System plików – samonaprawiający się NTFS Zarządzanie • Windows 64-bit Hypervisor (HyperV) • Nowe logowanie/diagnostyka • PowerShell Wydajnośd • Nowy stos TCP/IP; udoskonalne Winsock Direct • Wydajnośd zarządcy pamięci • Usunięty limit bloku 64 KB dla mapowanych plików/pliku wymiany • Priorytetyzacja I/O • Priorytet I/O wynika z priorytetu wątku lub może byd ustawiany niezależnie • Też używane przez zadania w tle (indeksowanie, Windows Defender) • Wiele rozszerzeo związanych z Non-Uniform Memory Access(NUMA) • SMB 2.0 • Obsługuje linki symboliczne (klinet – side; soft link) • Optymalizacja operacji (budowa wsadów) by zminimalizowad ilośd komunikatów przesyłanych pomiędzy klientem a serwerem • Można określid dokładny rozmiar buforów – w zależności od sprzętu da się osiągnąd 30-40x wzrost przepustowości Co nowego w HPC Pack 2008? Nowe UI - System Center PowerShell do zarządzania z poziomu CLI Klastrowane korzenia (węzeł główny) Windows Deployment Services Diagnostyka/Raportowanie Wsparcie dla Operations Manager Zarządzanie Sieć i MPI NetworkDirect (RDMA) dla MPI Łatwiejsza konfiguracja sieci Shared Memory MS-MPI dla wielu rdzeni MS-MPI zintegrowane z Windows Event Tracing Wsparcie dla SOA i WCF Duża ziarnistośd do definiowania zasobów i zadao Większa skalowalnośd dla dużych klastrów Nowe polisy rozkładu zadao Współpraca z innymi klastrami za pośrednictwem HPC Profile Kolejkowanie zadań (Job scheduling) Pamięć i dyski Wsparcie dla iSCSI SAN w Win2008 Server Message Block 2 Równoległe systemy plików firm trzecich Producenci Memory Cache Agenda Dlaczego HPC? Windows HPC Server 2008 - Rynek i nauka Nowe rozwiązania w HPC Server 2008 Zarządzanie systemem HPC Sied i MPI Tworzenie aplikacji HPC Kolejkowanie zadao Zarządzanie - Przegląd • Łatwe do instalacji / znane narzędzia – – Rozwiązania pod klucz w kanale OEMs Uproszczona instalacja systemów i wdrażanie aplikacji • • Cel – łatwośd zarządzania – – – • Diagnostyka, rozwiązywanie problemów i monitorowanie Różne widoki (drzewo, pivot table, mapy aktywności) Odpowiedniki z linii poleceo Skalowanie w górę – – – – • Bazowe obrazy, poprawki, sterowniki, aplikacje Mechanizmy uwzględniają że węzłów jest dużo Możliwośd klastrowania węzła głównego Raportowanie użycia klastra Filtrowanie/grupowanie węzłow Integracja z innymi systemami zarządzania IT – – – – Zarządzanie poprawkami System Center Operations Management PowerShell Usługi Windows 2008 High Availability Klaster węzła głównego • Wyeliminowany pojedynczy punkt awarii – zapewnienie wysokiej dostępności • Wymaga usługi Windows Server 2008 Enterprise Failover Clustering – Następna generacja usług klastrowych – Usprawnienia w: automatycznej walidacji, konfiguracji i zarządzaniu • HPC Pack oferuje – Program instalacyjny konfigurujący automatyczne klastry • Węzeł główny i zapasowy konfigurowany z SQL Failover Cluster • Failover dla Job Scheduler – Management console połączona z Windows Server Failover Management console Sieć prywatna Klaster Windows Węzeł główny Win2008 Enterprise Clustered SQL Server Węzeł zapasowy Win2008 Enterprise Clustered SQL Server Dzielony dysk Wzorzec węzła Instalacja aplikacji Kreator Edytor wzorców do dostosowywania Instalacja • • • WDS + PXE Obraz przygotowany, z własnymi sterownikami jak potrzeba Też – łatwa REINSTALACJA, „zerowanie” stanu klastra • Obsługiwane Hyper-V 18 Zarządzanie węzłami Lista albo „Heat Map” klastra Grupowanie komputerów wg. Typu sprzętu, atrybutów itp. Potem – czynności dla grup. Otrzymywanie ostrzeżeo Śledzenie historii operacji i dostęp do logu „długich” operacji Pivot by zobaczyd razem powiązane węzły i zadania Heat Map Clusrun Uruchamia to samo polecenie na wielu węzłach Wyjście przeplatane albo per węzeł Raportowanie • Raporty – – – – – Job Resource Usage Job Throughput Job Turnaround Node Availability Cluster Utilization by Job • Analiza trendów – SQL Server Analysis „pod spodem” • Grupowanie i filtrowanie wg: – Użytkownika, projektu, usługi, wzoru zadania… • Przykłady: – Jak/Kiedy/Przez kogo klaster był używany? • Podpięcie billingu! – Czy węzły są wyłączane? Jak często – Ile prac zakooczono dziś/w tym tygodniu…? – Kto uruchamiał dane zadania? – Jak długo zadanie czeka na zasoby? Zarządzanie zadaniami Diagnostyka Agenda Dlaczego HPC? Windows HPC Server 2008 - Rynek i nauka Nowe rozwiązania w HPC Server 2008 Zarządzanie systemem HPC Sied i MPI Tworzenie aplikacji HPC Kolejkowanie zadao NetworkDirect Nowy mechanizm sieciowy RDMA = większa wydajnośd Porównywalne wyniki ze sprzętowo realizowanym MPI Socket-Based App MPI App MS-MPI Windows Sockets (Winsock + WSD) RDMA Networking NetworkingHardware Hardware Networking WinSock Direct Provider TCP/Ethernet Networking NetworkingHardware Hardware Networking NetworkDirect Provider NetworkingHardware Hardware Networking User Mode Access Layer User Mode Kernel Mode Kernel By-Pass TCP IP NDIS NetworkingHardware Hardware Networking Mini-port Driver NetworkingHardware Hardware Networking Sterownik NetworkingHardware Hardware Networking Sprzęt sieciowy (ISV) App CCP Component OS Component IHV Component Architektura wielordzeniowa Duże usprawnienia w MS-MPI gdy wykorzystywana jest shared memory • Wstępne wyniki* MS-MPI automatycznie przesyła między – Shared Memory /dzielona pamięd; SHM /: Pomiędzy procesami na jednym węźle /rdzeniami/ Opóźnienie (µsec) komunikat@ 0128b • Istotna ilośd rdzeni - 8, 16, 32…. • SHM ma ~5x mniejsze opóźnienie niż sied RDMA – Sied: TCP, RDMA (WinsockDirect, NetworkDirect) • MS-MPIv1 (CCS 2003) monitoruje przychodzący ruch z SHM dzięki agresywnemu poolingowi [by osiągnąd niskie opóźnienia]; ale to powoduje: – MPI serializowane w pewnych sytuacjach (np. by uniknąd konfliktów na poziomie dispatcher-a w kernelu) – Błędne pomiary opóźnieo w sieci – Wysoka utylizacja CPU • MS-MPIv2 używa zupełnie innego podejścia do SHM – Bezpośrednie kopiowanie proces-proces by zwiększyd przepustowośd. – Inne algorytmy by zminimalizowad opóźnienie bez wysokiej utylizacji CPU. Przepustowośd (MB/sec) Komunikat @256kB V1 SHM 1.8 800 V2 SHM 0.7 3000 *Ważne: To jest wersja testowa – raczej istotny postęp, nie liczby bezwzględne Agenda Dlaczego HPC? Windows HPC Server 2008 - Rynek i nauka Nowe rozwiązania w HPC Server 2008 Zarządzanie systemem HPC Sied i MPI Tworzenie aplikacji HPC Kolejkowanie zadao Większa różnorodnośd aplikacji HPC 2008 (zadania teżi interaktywne) CCS 2003 (zadania wsadowe) Aplikacje inżynieryjne Symulacja Obliczenia CAD/CAM Analiza obciążeo Aplikacje wspomagające wydobycie (ropa, gaz, węgiel) Nauki biologiczne Usługi finansowe Excel Analiza strukturalna Symulacje Analiza portfolio Analiza ryzyka Zgodnośd Ceny Modelowanie Portfolio Symulacja rezerw Sejsmologia Kolejkowanie zadao Alokacja zasobów Uruchamianie procesu Monitorowanie wykorzystania zasobów Zintegrowane uruchamianie MPI Zintegrowane bezpieczeostwo App.exe App.exe App.exe App.exe Interaktywne aplikacje klastrowe Nowe idee Broker komunikacyjny WCF Wirtualny endpoint WS Load balancing Zintegrowana aktywacja usług Zarządzanie czasem życia Zintegrowane śledzenie WCF + Service (DLL) Service (DLL) Service (DLL) Service (DLL) Zadania HPC w stylu SOA Status zadao Raport użycia usług Logi i śledzenie Administrator Mapa aktywności, monitor wydajności i log zdarzeo Węzeł główny Ścieżka kontroli 1 Utwórz sesję Job status Kolejkowanie zadao Service usage report Router Serwis Tracing logs Węzły obliczeniowe n instancji serwisu Węzeł User 2 Klient … Uruchomienie brokera Instancja serwisu Ścieżka danych 3 Send/Receive Messages Węzeł Węzeł Instancja serwisu Instancja serwisu WCF Broker Węzły brokera WCF W tle wykonywa ne Rozkład żądao Dostosowuje rozmiar puli Zgodnośd z WS-* Śledzenie i rejestrowanie użycia zasobów Uruchamianie serwisów jako użytkownik Restart gdy niepowodzenie Śledzenie aplikacji Zrównoleglenie obliczeo for (int i = 0; i < 2000; i += 500) // symulacja 2,000 generacji { for (int j = 0; j < M; j++) // podziel populację na M części { client.BeginEvolve(pops[ j ],500); // zadania na różne // węzły } // czekaj aż proces się zakooczy … DoEvolve(); // Wybierz generację z populacji } void Evolve(int n) { for (int i = 0; i < n; ++i) // wybierz zestaw genów… { DoEvolve(); } } Węzły obliczeniowe … Konfiguracja węzła Deployment z Visual Studio Statystyka usług Monitorowanie brokera Śledzenie MS-MPI – Wysoka dokładnośd, korelacja pomiędzy zdarzeniami na różnych węzłach – Potencjalnie: jeden log dla aplikacji rozproszonej mpiexec.exe -trace args logman.exe Infrastruktura Windows ETW • Wyświetlanie – Visual Studio & Windows ETW tools – Planowane: specjalne narzędzie MS-MPI Trace Log Pliki log Trace Log Files Files Konwersja do tekstu Live feed Plik • Dwa cele: – Analiza wydajności – Rozwiązywanie problemów z aplikacją MS-MPI Infrastruktura Windows ETW Plik Konsolidowad na koniec zadania? • Zintegrowane z Windows Event Tracing • Pojedynczy, skorelowany log: OS, sterowniki, MPI, i zdarzenia aplikacji na każdym węźle obliczeniowym • Dodatki specyficzne dla CCS 36 Programowanie równoległe • Dostępne dziś – Tworzenie, śledzenie aplikacji rozproszonych i równoległych w Visual Studio • C, C++ • .NET – Kompilatory firm trzecich • Technologie nowe/eksperymentalne • Przyszłośd : Parallel Computing Initiative (PCI) – LINQ/PLINQ –język OO do operacji na zbiorach w .NET (zrównoleglanych!) – C# Futures – mechanizm pozwalający jawnie zdefiniowad że pewne pętle mają byd wykonywane równolegle – Duże inwestycje (i poszukiwania partnerów chętnych do współpracy) – Cel: ujednolicony zestaw narzędzi pozwalający tak samo pisad aplikacje wielordzeniowe jak i te dla klastrów Kompilatory • Visual Studio • Intel C++ • Gcc • PGI Fortran • Intel Fortran • Absoft Fortran • Fujitsu • SDK for Unix Profilery / śledzenie • PerfMon • ETW (for MS-MPI) • VSPerf /VSCover • CLRProfiler • Vampir (portowany) • Intel Collector/Analyzer( wymaga Intel MPI na HPC) • Vtune & CodeAnalyst • Marmot (portowane) • MPI Lint++ Debugger • Visual Studio • WinDbg • DDT Runtime i biblioteki • MPI • OpenMP • C# Futures • MPI.C++ oraz MPI.Net • PLINQ Agenda Dlaczego HPC? Windows HPC Server 2008 - Rynek i nauka Nowe rozwiązania w HPC Server 2008 Zarządzanie systemem HPC Sied i MPI Tworzenie aplikacji HPC Kolejkowanie zadao Różne zasady polis Typ (ang.) Opis Wersje Priority FCFS Zadanie jest umieszczane w kolejce bazując na priorytecie i czasie wysłania. Zadania są umieszczane na zasadzie „pierwszy wszedł-pierwszy wykonany”, ale z uwzględnieniem priorytetu (to znaczy – analizowany jest pierwszy w danej grupie priorytetów) Window CCS 2003 Windows HPC 2008 Backfilling Zasoby są rezerwowane w oparciu na zgłoszone zapotrzebowania na dane zasoby. Jeżeli zasoby mają „wolne okienko” w ramach zarezerwowanego czasu, mogą byd użyte do realizacji małych „prac” Window CCS 2003 Windows HPC 2008 Exclusive Scheduling Oznaczenie pracy/zadania “Exclusive” powoduje że żadne inne nie może byd uruchomione na danym węźle. Window CCS 2003 Windows HPC 2008 Pozwala określid że praca/zadanie ma byd wykonane na danej grupie węzłów (w oparciu o nazwę zestawu węzłów i cechy – np. pamięd, liczba procesorów itp.). Windows HPC 2008 Resource Matchmaking Multi-level Compute Resource Allocation Job Scheduler umieszcza pracę/zadania (głównie wymagające dużo pamięci) na odpowiednim procesorze/serwerze; uwzględnia NUMA. Windows HPC 2008 Preemption Z wywłaszczeniem, gdzie zadanie o większym priorytecie może zabrad zasoby zadaniu o mniejszym priorytecie; najlepiej współpracuje z SOA i brokerami WCF. Windows HPC 2008 Grow & Shrink Scheduling Zadanie może mied „nieograniczone wymagania”. Praca (job) może wymagad 100 zasobów do uruchomienia 1000 zadao. Dzięki Grow Shrink, najpierw job scheduler da jeden zasób, a potem kolejne – w miarę jak stają się dostępne. Gdy zadanie ma 100 zasobów i mniej niż 100 zadao, zasoby są sukcesywnie zwalniane jako niepotrzebne. Windows HPC 2008 Wzorzec „job” Czym są? • Określają wymagania zasobów (np. – aplikacje, specjalistyczny sprzęt itp.), priorytetyzację zadao, zasady alokacji zasobów • Administrator tworzy i przypisuje do użytkowników – tak że mogą oni używad tylko określonych wzorców (ACL) Jak definiowad • Zestaw cech (procesory, pamięd, inne) • Widełki dopuszczalnych wartości dla danego wzorca • Wartośd domyślna Przykłady poleceo • Dopasowanie do zasobów – job submit /memorysize:1000000-3000000 /nodegroup:appX myapp.exe • Profil – job submit /template:groupY myapp.exe • NUMA – job submit /numsockets:4-8 myapp.exe • Niech HPC sam dopasuje by „było dobrze” – job submit myapp.exe 41 Współpraca & Open Grid Forum Co to? Wartośd? Aktualny stan? •Wersja robocza OGSA (Open Grid Services Architectures) określa standard do uruchamiania i zarządzania zadaniami •Standardy Web Service (HTTP, XML, SOAP) •Pozwala na integrację aplikacji HPC pomiędzy platformami z uwzględnieniem schedulera zadao •Wersja jest po okresie publicznych komentarzy •Aktualnie praca nad nowymi rozszerzeniami LSF / PBS / SGE / Condor Linux, AIX, Solaris HPUX, Windows Klaster Windows Klaster *nixowy Klaster inny Podsumowanie • HPC – koniecznośd – Także w coraz szerszym „rynku biznesowym” • Windows HPC Server 2008 to kompletna platforma do realizacji zadao HPC – Wsadowych – Interaktywnych (SOA, podawanie wyników w trakcie działania aplikacji itp.) • Administracja: GUI lub linia poleceo – I PowerShell • Wydajna komunikacja (NetworkDirect; nie zawsze „sockety”) • Uruchamianie zadao z różnymi zasadami kolejkowania – Wywłaszczenie! • Developerzy mają do dyspozycji zintegrowane IDE – VS.NET – Używanie klasycznych narzędzi HPC • C/C++ + MPI – Nowe narzędzia developera • MPI.NET • PLINQ i Parallel Extension (Parallel.Do; Parallel.For) – Debugger, śledzenie, profiler • Duże inwestycje Microsoft w rozwój technologii HPC 43 Pytania? (też : [email protected] ) © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.