Views

Nautilus

From Centrum Komputerów Dużej Mocy, ICM Uniwersytet Warszawski

Jump to: navigation, search
Komputer
Nautilus_photo.jpg
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