Biocentrum Ochota - Grafen

Infrastruktura informatyczna dla rozwoju strategicznych kierunków biologii i medycyny

KLASTER GRAFEN

Jeden z elementów systemu - klaster Grafen - znajduje się w Instytucie Podstawowych Problemów Techniki PAN.

SPRZĘT

Strukturę klastra przedstawiamy na diagramie.

HPC

Część HPC (High Performance Computing) przeznaczona jest do obliczeń rozproszonych. W jej skład wchodzi 27 maszyn:

  • 24 serwery obliczeniowe w konfiguracji:
    • 2 sześciordzeniowe procesory Xeon X5650 o częstotliwości 2,66 GHz,
    • 24 GB pamięci RAM,
  • 2 serwery obliczeniowe w konfiguracji:
    • 2 ośmiordzeniowe procesory E5-2670 o częstotliwości 2,60 GHz,
    • 32 GB pamięci RAM,
  • 1 serwer obliczeniowy w konfiguracji:
    • 4 sześciordzeniowe procesory Xeon X7460 o częstotliwości 2,66 GHz
    • 132 GB pamięci RAM
  • połączenia między węzłami za pośrednictwem sieci QDR InfiniBand 40 Gb/s.

Część HPC udostępnia 344 fizyczne rdzenie oraz 772 GB pamięci RAM. System nie ma fizycznie wspólnej pamięci, dlatego do pełnego wykorzystania jego mocy konieczne jest skorzystanie z oprogramowania pozwalającego na współdzielenie pamięci na oddzielnych maszynach, np. MPI (Message Passing Interface) .

Klaster aplikacyjny

Składa się z części vSMP oraz części obsługującej maszyny wirtualne poprzez oprogramowanie VMware. Dostępne maszyny wirtualne to np.:

  • Serwer Windows 2008 z zestawem aplikacji graficznych i naukowych,
  • Serwer pocztowy,
  • Serwer obliczeniowy MATLAB,
  • Serwery licencji.

Część vSMP to sześć serwerów obliczeniowych, w każdym serwerze znajdują się:

  • 2 procesory sześciordzeniowe Xeon X5650 o częstotliwości 2,66 GHz,
  • 96 GB pamięci RAM DDR3 1333 MHz,
  • połączenia między węzłami za pośrednictwem sieci QDR InfiniBand 40 Gb/s.

Z punktu widzenia użytkownika vSMP widoczny jest jako pojedynczy komputer o 72 rdzeniach obliczeniowych i 576 GB pamięci RAM i dostępny jest pod nazwą vsmp1 w klastrze HPC.

GPU

GPU to wydajny komputer służący do prowadzenia obliczeń na procesorach graficznych (GPU). Konfiguracja sprzętowa jest następująca:

  • Serwer Actina Solar G 200 S4+
  • 4 karty Tesla C2050 o częstotliwości taktowania rdzenie 1150 MHz z 10,5 GB pamięci GDDR5.

Cały zestaw udostępnia moc obliczeniową 4 TFLOPS dla obliczeń stałoprzecinkowych i 2 TFLOPS dla obliczeń zmiennoprzecinkowych. GPU dostępny jest jako węzeł gpu1 w klastrze HPC.

Węzły usługowe

  • węzły dostępowe MASTER, na których zainstalowana jest wirtualna maszyna headnode obsługująca logowanie do klastra;
  • węzły usługowe OSS obsługujące system plików LUSTRE, gdzie przechowywane sa dane użytkowników (LUSTRE – klastrowy system plików na platformach linuksowych);
  • macierz dyskowa HDS (Hitachi Data Storage).

Połączenia sieciowe

Elementy klastra oraz węzły połączone są szybkimi łączami o dużej przepustowości:

  • sieć InfiniBand FullCBB QDR 40 Gbit/s, udostępniająca szybką łączność pomiędzy węzłami obliczeniowymi HPC,
  • sieć Ethernet 10 Gb/s zapewniająca komunikację pozostałych elementów klastra,
  • łącze Ethernet 10 Gb/s do pozostałych elementów Grida BIOCENTRUM.

OPROGRAMOWANIE

Klaster Grafen pracuje pod kontrolą systemu operacyjnego Scientific Linux. Jest na nim zainstalowane oprogramowanie potrzebne to uruchomienia programów obliczeniowych napisanych w językach C, Fortran, Python oraz uruchomienia skryptów MATLAB, COMSOL, LS-DYNA i innych.

Listę zainstalowanego oprogramowania w systemie pakietowym można poznać wydając polecenie rpm -qa na węźle dostępowym lub dowolnym węźle obliczeniowym. Na wszystkich węzłach są zainstalowane takie same pakiety.

Task Manager

Menedżer zadań to specjalne oprogramowanie, zainstalowane na klastrze. Zarządza on uruchamianiem zadań, realizując następujące usługi:

  • Informuje użytkowników o dostępnych zasobach i stopniu ich wykorzystania,
  • Przyjmuje zadania do wykonania i uruchamia w najwłaściwszym momencie,
  • Uwzględnia priorytety zadań,
  • Umożliwia monitorowanie przebiegu wykonywania zadania,
  • Szereguje zadania w kolejkach.

Menedżer zadań stara się realizować te zadania w sposób optymalny, tj. tak by zasoby sprzętowe były wykorzystane w jak największym stopniu, a zadania kończyły się możliwie szybko. Niestety, aby to osiągnąć musi czasem odsunąć w czasie wykonanie zadania, dlatego nie zawsze uruchamia się ono w chwili wydania polecenia, jak na zwykłym komputerze osobistym. Dodatkowo, menedżer zadań może także uwzględniać pewne dodatkowe kryteria (np. by osiągnąć z góry założoną proporcję między zasobami przydzielonymi zadaniom z poszczególnych jednostek organizacyjnych, nagradzać zadania spełniające pewne szczególne wymagania szybkim wykonaniem itp.). Funkcję menedżera zadań w klastrze IPPT pełniTORQUE wraz z Maui (do zadań równoległych z MPI).

TORQUE jest odgałęzieniem OpenPBS – open source Portable Batch System. Jego głównym zadaniem jest rozdzielanie zadań obliczeniowych, tj. prac wsadowych, pomiędzy dostępne zasoby obliczeniowe. Maui Cluster Scheduler zaprojektowany jest do pracy na klastrach i superkomputerach. Ma zaimplementowanych wiele zasad kolejkowania, dynamiczne priorytety, zastrzeżenia. Maui polepsza możliwości zarządzania i wydajność klastra.

Inne popularne systemy kolejkowania to LoadLeveler i SLURM. Load Leveler został stworzony przez IBM i początkowo dostępny był tylko dla systemu operacyjnego AIX, jednak obecnie można go używać na systemach opartych na architekturze POWER PC oraz systemach linuksowych bazujących na x86. Simple Linux Utility for Resource Management (SLURM) to opensource’owy system kolejkowania dla jądra linuksowego używany przez wiele klastrów i superkomputerów na świecie włączając najszybszy - Tianhe-2 (wg danych z lipca 2014).

Kompilatory

Na węzłach zainstalowano trzy pakiety kompilatorów języków C, C++ i Fortran:

  • gcc - GNU Compiler Collection,
  • intel - Intel Compilers,
  • pgi - PGI compilers.

GCC dostępne jest w standardowych ścieżkach systemowych, pozostałe dwa zestawy można znaleźć w katalogu /opt.

Biblioteki MPI

Message Passing Interface (MPI) to protokół komunikacyjny będący standardem przesyłania komunikatów pomiędzy procesami programów równoległych działających na jednym lub więcej komputerach. Umożliwia transfer danych pomiędzy poszczególnymi procesami programu wykonywanymi na procesorach maszyn będących węzłami klastra. Biblioteki MPI umożliwiają pisanie programów równoległych oraz uruchamianie oprogramowania korzystającego z przetwarzania równoległego na klastrze.

W klastrze Grafen zainstalowane zostały następujące wersje bibliotek MPI:

  • Intel MPI, dostarczana wraz Intel Cluster Studio,
  • MVAPICH w dużym stopniu zgodna z MPICH (dostępna zarówno w wersji 1, jak i 2), lecz zoptymalizowana do pracy w sieci InfiniBand,
  • Open MPI.

Wszystkie powyższe biblioteki (oprócz Intel MPI) są dostępne zarówno w wersji skompilowanej z użyciem kompilatora Intel, jak i GCC.

Po dokonaniu wyboru przez mpi-selector-menu lub mpi-selector należy zalogować się ponownie. Sprawdzenie, która biblioteka MPI jest naprawdę aktywna można wykonać poleceniem which mpirun.

Inne

Wymienione powyżej kompilatory Intel i PGI stanowią jedynie część zainstalowanych pakietów oprogramowania, odpowiednio Intel Cluster Studio XE i PGI Workstation. Oprócz kompilatorów zawierają one także narzędzia do optymalizacji i debugowania programów ze szczególnym wsparciem dla przetwarzania równoległego, jak również bogatą dokumentację. Szczegółowe informacje można znaleźć na odpowiednich stronach internetowych.

CUDA (Compute Unified Device Architecture) to, za Wikipedią, opracowana przez firmę Nvidia uniwersalna architektura procesorów wielordzeniowych (głównie kart graficznych) umożliwiająca wykorzystanie ich mocy obliczeniowej do rozwiązywania ogólnych problemów numerycznych w sposób wydajniejszy niż w tradycyjnych, sekwencyjnych procesorach ogólnego zastosowania.

Na węźle gpu1 zainstalowano oprogramowanie CUDA w katalogu /opt/cuda, jak również SDK, czyli Software Development Kit – w katalogu /opt/NVIDIA_GPU_Computing_SDK.