Nautilus
From Centrum Komputerów Dużej Mocy, ICM Uniwersytet Warszawski
| Komputer | |
|---|---|
| |
| Instalacja: | IBM Cell Cluster (klaster serwerów typu blade) |
| Model: | IBM QS22 oraz IBM LS21 |
| Nazwa: | nautilus |
| Typ procesora: | IBM PowerXCell8i oraz AMD Dual-Core Opteron 2218 |
| Architektura: | Cell, x86_64 |
| Reprezencja danych: | big-endian (IBM PowerXCell8i) oraz little-endian (AMD Opteron) |
| Częstotliwość taktowania: | 3.2 GHz (IBM PowerXCell8i) / 2.4 GHz (AMD Opteron) |
| Liczba procesorów w węźle: | 2 PPU + 16 SPU (QS22) / 4 x86 (LS21) |
| Ilość pamięci w węźle: | 16 / 32 GB |
| System plików: | SunFire X4500, 23 TB |
| System operacyjny: | Fedora12 |
| System kolejkowy: | Torque |
| halo2 | nautilus | |
| Wszystkie komputery | |
| Poradnik | |
| Programowanie | |
Contents |
Architektura
System Nautilus składa się z węzłów obliczeniowych dwóch typów:
- serwery blade IBM QS22 - każdy wyposażony w dwa dziewięciordzeniowe procesory PowerXCell8i o architekturze Cell oraz 16/32 GB pamięci; węzły te nie posiadają dysku lokalnego.
- serwery blade IBM LS21 - każdy wyposażony w dwa dwurdzeniowe procesory AMD Opteron o architekturze x86_64 oraz 32 GB pamięci; węzły posiadają dyski lokalne o pojemności 135 GB udostępnione w katalogu /scratch.
Procesory rodziny Cell są architekturą typu big-endian. Procesory rodziny Opteron są architekturą typu little-endian.
Węzły obydwu typów zorganizowane są w architekturze typu ccNUMA (cache coherent Non-Uniform Memory Access), w której poszczególne rdzenie w procesorze współdzielą pamięć podręczną (trzeciego poziomu - L3), natomiast procesory w obrębie węzła mają spójną pamięć podręczną oraz niejednorodny czas dostępu do pamięci głównej.
Węzły klastra połączone są w topologii nieblokującej siecią typu 4x DDR Infiniband. Do zrezlizowania połączeń między węzłami zastosowano 120-portowy przełącznik Voltaire Grid Director ISR 2012 Multi-Service Switch.
Użytkowanie i przeznaczenie
Komputer jest dostępny dla zadań wszystkich użytkowników ICM. Użytkowanie architektury Cell oraz środowiska hybrydowego wymaga dostosowania i optymalizacji oprogramowania.
Modele obliczeniowe wspierane na komputerze nautilus to:
- obliczenia na architekturze Cell przy użyciu zoptymalizowanych aplikacji
- obliczenia hybrydowe przy użyciu architektury AMD Opteron i akceleracji obliczeń na architekturze Cell
Dostępnych jest wiele narzędzi programowania.
Zasady korzystania
Logowanie następuje na węzeł dostępowy (tzw. front-end) o nazwie nautilus.
Służy on jedynie do przygotowania programów i przetwarzania danych związanych z obliczeniami.
Na węźle dostępowym nie należy uruchamiać żadnych obliczeń, zadania użytkowników uruchamiane
są za pomocą systemu kolejkowego na wezłach obliczeniowych o nazwach qs-bXX oraz ls-bXX.
Wszystkie obliczenia na węzłach o architekturze Cell należy wykonywać korzystając z katalogu domowego. Obliczenia na węzłach o architekturze AMD Opteron można wspomagać dodatkowo szybką przestrzenią pamięci dyskowej udostępnioną w katalogu /scratch.
Przygotowywanie zadań obliczeniowych
Programowanie i optymalizacja oprogramowania powinna być wykonywana z wykorzystaniem systemu kolejkowego. Można do tego celu wykorzystać tzw. kolejki interaktywne, np.:
qsub -I -l nodes=1:ppn=2:cell
Pomoc w portowaniu aplikacji: cell@icm.edu.pl.
System kolejkowy i zadania użytkowników
Zainstalowanym systemem kolejkowym jest Torque (tzn. OpenPBS z poprawkami).
Aby przygotować zadanie obliczeniowe, należy stworzyć skrypt (plik) zawierający listę żądanych zasobów oraz sposób uruchomienia programu.
System kolejkowy rozpoznaje węzły QS22 jako węzły 4 rdzeniowe, identyfikując tym samym tylko rdzenie PPU. W ramach każdego serwera QS22 do wykorzystania pozostaje ponadto 16 rdzeni SPU.
System kolejkowy rozpoznaje węzły LS21 jako węzły 4 rdzeniowe.
Przykładowy skrypt dla zadania dedykowanego na 10 węzłów PowerXCell8i, każdy po 4 rdzenie PPU:
#!/bin/sh #PBS -N test_cell #PBS -l nodes=10:ppn=4:cell #PBS -l walltime=1:00:00 module load openmpi-ppc64 mpiexec ./program_cell
Przykładowy skrypt dla zadania dedykowanego na 2 węzły AMD Opteron, każdy po 4 rdzenie Opteron:
#!/bin/sh #PBS -N test_opteron #PBS -l nodes=2:ppn=4:opteron #PBS -l walltime=1:00:00 module load openmpi-x86_64 mpiexec ./program_opteron
Przykładowy skrypt dla zadania dedykowanego na 2 węzły hybrydowe AMD Opteron + PowerXCell8i (stosunek 1 LS21 : 4 QS22):
#!/bin/sh #PBS -N test_hybrid #PBS -l nodes=2:ppn=4:opteron+8:ppn=4:cell #PBS -l walltime=1:00:00 module load openmpi-x86_64 module load dacs mpiexec ./program_dacs_hybrid
Uwaga: uruchamianie zadań hybrydowych oparte jest na wykorzystaniu biblioteki IBM Data Communication and Synchronization (IBM DaCS) i wymaga dodatkowych uprawnień użytkownika i ustawień środowiska. Osoby zainteresowane tym modelem prosimy o kontakt: cell@icm.edu.pl.
System plików i przechowywanie danych
System korzysta z macierzy dyskowej SunFire X4500 o pojemności 23 TB. Przestrzeń dyskowa dostępna jest na węzłach obliczeniowych jako zasób NFS.
Do przechowywania danych wejściowych i wyników obliczeń należy wykorzystywać katalogi domowe. Na węzłach LS21 o architekturze AMD Opteron dostępne są dodatkowo przestrzenie przechowywania tymczasowego /scratch. Użytkownicy proszeni są o usuwanie plików i katalogów z przestrzeni tymczasowej po zakończeniu obliczeń.
Limity
Na komputerze Nautilus nie zostały wprowadzone limity wielkości katalogów domowych. Użytkownicy będą proszeni drogą email-ową o czyszczenie katalogów, w przypadku przekroczenia sumarycznej wielkości krytycznej /home.
Użytkownik ma przydzieloną ograniczoną liczbę zadań mogących wykonywać się jednocześnie; pozostałe zadania użytkownika w systemie pozostają w stanie oczekiwania.
Środowisko użytkownika
Klaster obsługuje system operacyjny Fedora12.
Do ustawiania środowiska (ścieżki dostępu, biblioteki) służy narzędzie modules. Pomoc: module -h
Podstawowe komendy:
module avail module list module load <nazwa modułu> module unload <nazwa modułu>
Dokumentacja
- Programming the Cell Broadband Engine, Examples and Best Practices pdf
- Cell BE Programming Tutorial pdf
- LAPACK Programming Guide pdf
- BLAS Programming Guide pdf
- 3D FFT Programming Guide and API pdf
- LibFFT Programming Guide and API pdf
- DaCS Programming Guide pdf
- DaCS Hybrid Programming Guide pdf
- OpenCL Programming Guide pdf
