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