Building homogenous cluster environment for high efficiency multi

Transkrypt

Building homogenous cluster environment for high efficiency multi
Michał
Matuszewski
Łukasz
Jarochowski
Instytut Systemów
Elektronicznych
Politechnika Warszawska
Grupa PERG
Building homogenous cluster environment for high efficiency multi thread and MPI applications
Plan Prezentacji
 Zarządzanie
Sprzętem
 System operacyjny – jądro MOSIX
 Implementacja LAM/MPI
 Testy
 Wnioski
 Plany na przyszłość
Zarządzanie Sprzętem
28 typowych PCtów (nodes - węzły klastra)
Procesory Intel Pentium 4 3GHz wspierające
technologię Hyper Threading
 Dwuprocesorowy
serwer
(MainNode)
wyposażony w 2 procesory Intel Xeon
(MainNode)
 Switch’e Gigabitowe
 KVM’y

Zarządzanie Sprzętem
Dlaczego standardowe PCty?
Koszt „profesjonalnego” rack’owego klastra jest bardzo
duży:
• Rack: 500-1000$
• Jedna jednostka komputerowa: 2000$
Standard PC jest o wiele tańszy przy zakupie i
utrzymaniu-pozwala także na późniejsze ponowne
wykorzystanie komputerów do innych celów
Zarządzanie Sprzętem

Struktura sieci:
MainNode
switch #1
switch #2
nodes
nodes
Sieć
Laboratoryjna
Internet
System operacyjny
MainNode jet serwerem DHCP, który dostarcza jądro
(TFTP), i system plików root (NFS) dla węzłów.
Każdy węzeł boot’uje się przez sieć LAN przy pomocy
kart sieciowych wspierających PXE (Pre-boot eXecution
Environment).
Każdy węzeł wysyła wiadomość (broadcast) i w
odpowiedzi otrzymuje od serwera IP, jądro (kernel) przez
TFTP i system plików przez NFS.
Zarządzanie Sprzętem





Mosix
System zarządzania procesami pozwalający aby
klaster zachowywał się jak jeden wieloprocesorowy
komputer.
Jest to zestaw łat jądra systemu operacyjnego
Linux , i zestaw narzędzi pozwalających na
zarządzanie klastrem.
Migracja procesów jest dokonywana automatycznie.
Nie ma potrzeby modyfikowania aplikacji czy
dołączania do niej specjalnych bibliotek.
System klastra jest „przeźroczysty” dla użytkownika.
Implementacja LAM/MPI

LAM/MPI to opensource’owa implementacja interfejsu
MPI (Massage Passing Interface) który jest standardem
przemysłowym

Przykładowe funkcje LAM: recon, lamboot, lamhalt,
lamnodes, lamexec

Kompilacja aplikacji odbywa się poprzez specjalne
kompilatory (wrapper compilers-nakładki): mpicc, mpiCC,
mpif77
Implementacja LAM/MPI
MPI to interfejs
rozproszonych.
oparty
na
bibliotekach
dla
obliczeń
Standard IEEE od 1992 (Standaryzacja)
Istnieje wiele implementacji MPI (LAM, MPICH)
Nie ma konieczności korzystania z konkretnych kompilatorów
Opcje MPI:
• niezależne i równoległe wykonywanie programów
• każdy procesor ma prywatna pamięć i przestrzeń
adresową
LAM/MPI testy
Przy przeprowadzaniu testów posłużyliśmy
się prostym programem obliczającym całkę.
Każdy węzeł liczył odpowiedni kawałek z
całego zakresu całkowania.
Jest to dość prymitywny test, pozwala jednak
w dość prosty sposób przedstawić sposób
zrównoleglenia i przewidzieć spodziewany
wzrost szybkości.
LAM/MPI tests
Przy pomocy funkcji systemowej time zmierzyliśmy czas
wykonywania obliczeń przy różnej liczbie aktywnych
35
węzłów.
30
Wyniki:
1 węzeł – 30.6sec.
2 węzły – 15.6sec.
4 węzły – 8.1 sec.
8 węzłów – 4.4 sec.
16 węzłów – 2.7 sec.
28 węzłów – 2.1 sec.
25
20
15
10
5
0
1
2
4
8
16
28
Wnioski
 Mamy
sprawny klaster gotowy dla
wymagających aplikacji.
 Konfiguracja klastra jest skalowalna.
 Konfiguracja pozwala na bezproblemową
zmianę ilości węzłów.
Plany na przyszłość

Poprawianie konfiguracji klastra – benchmarki
systemu dysków oraz sieci.

Testowanie aplikacji wykorzystujących MPI takich jak
MATLAB (MPITB – MPI ToolBox)

Instalacja aplikacji dla klastrów – MATLAB
Distributed Computing Toolbox

Podłączenie klastra do GRIDu
Dziękuję za uwagę
Chętnie odpowiem na każde pytanie