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.

Podobne dokumenty