Biuletyn nr 34

Biuletyn KDM
1 | 2 | 3 | 4 | 5
6 | 7 | 8 | 9 | 10
11 | 12 | 13 | 14
15 | 16 | 17 | 18
19 | 20 | 21 | 22
23 | 24 | 25 | 26
27 | 28 | 29 | 30
31 | 32
Lista biuletynów

Biuletyn nr 34 (20 lipca 2011)

Spis treści

Architektura i środowisko obliczeniowe komputera Notos (IBM Blue Gene/P)

Autor: Maciej Cytowski

W lutym 2011 roku w ICM w ramach projektu POWIEW udostępniony został do obliczeń system IBM Blue Gene/P (Notos). Od tego czasu system Notos cieszy się dużym zainteresowaniem osób wykorzystujących w swojej pracy naukowej wysoce skalowalne pakiety obliczeniowe.

Bgp photo.jpg

Architektura i środowisko obliczeniowe komputera Blue Gene/P różni się znacząco od szeroko rozpowszechnionych środowisk klastrowych (np. halo2). Podstawowe różnice z punktu widzenia użytkownika oraz programisty to przede wszystkim:

  • specyficzna architektura procesorowa - IBM PowerPC 450,
  • system kolejkowy LoadLeveler,
  • środowisko kompilacji oparte na cross-kompilatorach,
  • kompilatory firmy IBM,
  • specyficzne metody optymalizacji,
  • nowe biblioteki.

Mimo tylu różnic przygotowanie i rozpoczęcie obliczeń na tym systemie zajmuje stosunkowo mało czasu. Wielu użytkowników rozpoczynało obliczenia następnego dnia po przyznaniu dostępu przez administratorów oraz przekazaniu kilku podstawowych wskazówek. Architektura Blue Gene/P wspiera szeroką gamę oprogramowania naukowego. Obecnie na komputerze Notos zainstalowanych jest kilkanaście pakietów z różnych dziedzin nauki.

Artykuł ten opisuje podstawowe informacje dotyczące architektury oraz środowiska obliczeniowego Notosa.

Architektura systemu

System Notos składa się z kilku podstawowych komponentów:

  • szafa obliczeniowa IBM Blue Gene/P - służy tylko i wyłącznie do wykonywania zadań obliczeniowych zlecanych przez użytkowników poprzez system kolejkowy,
  • węzeł dostępowy - Front End Node (FEN) - służy do rozwijania, kompilacji oprogramowania oraz do wstawiania zadań obliczeniowych do kolejki,
  • węzeł serwisowy - Service Node (SN) - służy do monitorowania pracy szafy obliczeniowej Blue Gene/P,
  • zasoby dyskowe oparte o macierz IBM DS5300 - służą do przechowywania wszelkich danych użytkowników systemu Notos.

IBM Blue Gene/P

Najważniejszym komponentem instalacji jest szafa obliczeniowa IBM Blue Gene/P, która wyposażona jest w 1024 węzłów obliczeniowych (4096 rdzeni). Konfiguracja węzła obliczeniowego:

  • procesor Power PC 450, 32-bit, 850 MHz, 4 rdzenie SMP (Symmetric multiprocessing),
  • współdzielona pamięć cache trzeciego poziomu (L3) - 8MB,
  • pamięć - 4GB

Procesory rodziny PowerPC są architekturą typu big-endian. Węzły nie posiadają lokalnego dysku. Wyposażone są w zintegrowany kontroler I/O oraz zintegrowane kontrolery sieciowe.

Węzły klastra połączone są dedykowanym rozwiązaniem sieciowym firmy IBM skonstruowanym w oparciu o:

  • podstawową sieć komunikacji o topologi 3D Torus,
  • sieć przeznaczona do komunikacji grupowej (z ang. collective communication),
  • sieć przeznaczona do wykonywania szybkiej synchronizacji (bariery),
  • sieć 10Gb Ethernet do komunikacji zewnętrznej (głównie operacje I/O).

Trzy pierwsze z wymienionych powyżej sieci komputera Blue Gene/P obsługują wybrane funkcjonalności biblioteki MPI. Odbywa się to bez udziału użytkownika. Udostępnione na komputerze specjalne wersje biblioteki MPI mają zaimplementowaną obsługę sieci Blue Gene/P.

Węzeł dostępowy

Węzeł dostępowy to podstawowe miejsce pracy wszystkich użytkowników systemu Notos. Tutaj odbywa się przygotowanie, kompilacja, debugowanie oraz uruchamianie zadań obliczeniowych. Węzeł dostępowy to system typu IBM Power 520 wyposażony w 4 rdzenie obliczeniowe procesora POWER6 oraz 32GB pamięci RAM.

Zasoby dyskowe

Zasoby dyskowe udostępniane są użytkownikom na węźle dostępowym oraz w ramach szafy obliczeniowej za pomocą równoległego systemu plików IBM GPFS. Jako katalog roboczy, służący do przechowywania wszelkich danych związanych z obliczeniami, należy wykorzystywać katalog domowy.

Dostęp do komputera i pierwsze logowanie

Użytkownik ma możliwość logowania się tylko i wyłącznie na węzeł dostępowy FEN (o nazwie Notos). Wykonuje się to standardową komendą z wewnątrz sieci ICM:

ssh notos

Kompilacja kodów i uruchamianie obliczeń możliwe jest dopiero po przesłaniu odpowiedniego zapytania na adres e-mail: powiew-admins@icm.edu.pl. Obliczenia na dużych partycjach komputera Notos możliwe są dopiero po wykazaniu odpowiedniej skalowalności oprogramowania.

Osoby, które nie są użytkownikami ICM, ale chciałyby prowadzić swoje badania na komputerze Notos powinny złożyć odpowiedni wniosek o grant obliczeniowy, wyszczególniając w tytule grantu, że dotyczy on infrastruktury projektu POWIEW (nazwa projektu umieszczona w nawiasie po nazwie grantu). Wniosek taki należy złożyć poprzez system rejestracji i obsługi grantów: http://granty.icm.edu.pl. Dodatkowo w polu "Wymagania sprzętowe" należy wpisać "komputer Notos".

Przygotowanie aplikacji: kompilatory i optymalizacja

Środowisko programisty

Kompilacja na systemie Notos odbywa się przy użyciu tzw. cross-kompilatorów na węźle dostępowym. Oznacza to, że kody powinny być zawsze kompilowane na węźle dostępowym, a uruchamiane poprzez system kolejkowy na komputerze Blue Gene/P. W szczególności próby uruchomienia programów kompilowanych dla Blue Gene/P na węźle dostępowym zakończą się błędem.

Dostępne są kompilatory z dwóch rodzin:

  • Rodzina kompilatorów XL: C/C++ oraz Fortran - wbudowane optymalizacje kodu specyficzne dla architektury Blue Gene/P, związane m.in. z obsługą podwójnej jednostki zmiennoprzecinkowej (FPU), kolejnością wykonywania instrukcji oraz wykorzystaniem wielopoziomowej pamięci,
  • Rodzina kompilatorów GNU: C, C++ oraz Fortran - nie tworzą wysoce zoptymalizowanego kodu na architekturę Blue Gene/P, nie generują kodu dla podwójnej jednostki zmiennoprzecinkowej (FPU), nie wspierają OpenMP.


Udostępnione aplikacje i biblioteki

Na systemie Notos udostępnione zostały następujące aplikacje naukowe:

  • NEURON v7.1 - neurobiologia (miejsce instalacji: /opt/neuron),
  • NEST - neurobiologia (miejsce instalacji: /opt/nest),
  • NAMD v2.7b1 - modelowanie molekularne (miejsce instalacji: /opt/namd),
  • PALABOS v0.7 - obliczeniowa dynamika płynów (miejsce instalacji: /opt/palabos),
  • CPMD v3.13.2 - modelowanie molekularne (miejsce instalacji: /opt/cpmd),
  • GADGET - kosmologia (miejsce instalacji: /opt/gadget),
  • AMBER v11 - modelowanie molekularne (miejsce instalacji: /opt/amber),
  • CP2K - modelowanie molekularne (miejsce instalacji: /opt/cp2k),
  • LAMMPS - modelowanie molekularne (miejsce instalacji: /opt/lammps).

Ponadto dla osób kompilujących bądź rozwijających własne oprogramowanie udostępnione zostały następujące biblioteki:

  • Message Passing Interface (MPI) - biblioteka służąca do zrównoleglania obliczeń (miejsce instalacji: /bgsys/drivers/ppcfloor/comm/default, /bgsys/drivers/ppcfloor/comm/fast),
  • Mathematical Acceleration Subsystem (MASS) - zoptymalizowane wersje standardowych funkcji matematycznych, m.in. cos, sin , powf (miejsce instalacji: /opt/ibmcmp/xlmass),
  • Engineering and Scientific Subroutine Library (ESSL) – zoptymalizowane funkcje matematyczne i naukowe, np. algebra liniowa, FFT, generator liczb losowych (miejsce instalacji: /opt/ibmmath),
  • FFTW v2.1.5,v3.2.2 single + double – znana biblioteka do wielowymiarowych obliczeń FFT (miejsce instalacji: /opt/fftw),
  • LAPACK v3.1 - biblioteka funkcji algebry liniowej (miejsce instalacji: /opt/lapack),
  • CBLAS - biblioteka funkcji algebry liniowej (miejsce instalacji: /opt/cblas),
  • BLACS - biblioteka funkcji algebry liniowej (miejsce instalacji: /opt/blacs),
  • SCALAPACK - zrównoleglona biblioteka funkcji algebry liniowej (miejsce instalacji: /opt/scalapack),
  • HYPRE v2.7.0b - zrównoleglona biblioteka służąca do rozwiązywania dużych, rzadkich układów równań liniowych (miejsce instalacji: /opt/hypre),
  • HDF5 v1.8.3 -biblioteka Hierarchical Data Format (HDF) służy do obsługi zapisu, odczytu oraz organizacji bardzo dużych danych numerycznych pochodzących z obliczeń (miejsce instalacji: /opt/hdf5),
  • NetCDF v4.0.1 i Parallel-NetCDF v1.1.1 - biblioteka NetCDF służy do obsługi zapisu, odczytu oraz organizacji bardzo dużych danych numerycznych pochodzących z obliczeń (miejsce instalacji: /opt/netcdf, /opt/parallel-netcdf),
  • GNU Scientific Library (GSL) - biblioteka funkcji i algorytmów numerycznych GNU (miejsce instalacji: /opt/gsl),
  • PETSc v3.0.0-p7 - zrównoleglona biblioteka służąca m.in. do rozwiązywania układów równań różniczkowych cząstkowych (miejsce instalacji: /opt/petsc),
  • Zoltan - biblioteka implementująca wiele algorytmów służących zarządzaniu i dystrybucji danych w aplikacjach równoległych (miejsce instalacji: /opt/zoltan),
  • P3DFFT v2.3.2 - zrównoleglona i wysoce skalowalna implementacja FFT 3D (miejsce instalacji: /opt/p3dfft).

Uruchamianie zadań

Uruchamianie zadań na Notosie odbywa się za pośrednictwem systemu kolejkowego IBM LoadLeveler (LL). Za pomocą komend LL możemy sterować przebiegiem obliczeń naszego zadania. Podstawowe komendy to:

  • llsubmit - wstawianie zadania do kolejki,
  • llq - sprawdzanie statusu zadania wstawionego do kolejki,
  • llq -s JOBID - wypisanie rozszerzonych informacji o zadaniu JOBID,
  • llcancel JOBID - usuwanie zadania JOBID z kolejki.

Opis zadania i zapotrzebowanie na zasoby można specyfikować w specjalnym skrypcie - pliku tekstowym dla systemu LL. Skrypt musi zostać napisany przez użytkownika i składa się z dyrektyw LL oraz instrukcji uruchamiających odpowiedni program. Pierwsze linie skryptu powinny zawierać specyfikację zasobów oraz opcje sterujące wykonaniem zadania. Linie te zaczynają się od # @ i nie powinny być oddzielane innymi wpisami. Następnie należy umieścić instrukcje konieczne do uruchomienia programu.

Przykładowy skrypt LoadLeveler z komputera Notos:

# @ job_name = Ping_pong
# @ account_no = grupa
# @ class = kdm
# @ error = ping_pong.err
# @ output = ping_pong.out
# @ environment = COPY_ALL
# @ wall_clock_limit = 00:20:00
# @ notification = error
# @ notify_user = $(user)@icm.edu.pl
# @ job_type = bluegene
# @ bg_size = 32
# @ queue
mpirun -exe ping_pong -mode SMP -np 32

Więcej informacji na temat konstrukcji skryptów LL znajduje się na specjalnej stronie: http://www.icm.edu.pl/kdm/LoadLeveler_Blue_Gene/P

Przykładowe skrypty kolejkowe umieszczone zostały na komputerze Notos w katalogu: /opt/examples/loadleveler.

Współpraca z projektem POWIEW

Wszystkich naukowców projektu POWIEW oraz użytkowników ICM serdecznie zapraszamy do prowadzenia obliczeń na komputerze Notos. Ponadto zapraszamy również do współpracy przy:

  • zrównoleglaniu oraz optymalizacji oprogramowania obliczeniowego na systemy Blue Gene/P,
  • implementacji nowych algorytmów równoległych na systemy masywnie równoległe,
  • projektowaniu i implementacji przebiegu wielkoskalowych badań uwzględniających: pre-processing, obliczenia, post-processing i analizę wizualną wyników.

Jeden z największych komputerów Europy, zainstalowany w centrum badawczym w Juelich komputer JUGENE, zbudowany jest w oparciu o identyczną architekturę co Notos. System ten udostępniany jest dla wszystkich naukowców w ramach paneuropejskiego projektu PRACE (http://prace-ri.eu). Dostęp do systemu Notos stwarza niepowtarzalną okazję do przygotowania i optymalizacji własnych obliczeń dla systemów o dużo większej skali, takich jak JUGENE. Ponadto ICM czynnie uczestniczy w projekcie PRACE wspierając grupy badawcze m.in. przy optymalizacji oprogramowania na system JUGENE. Zapraszamy do współpracy!

Więcej informacji

Więcej informacji o projekcie POWIEW: wielkiewyzwania.pl

Więcej informacji o komputerze Notos: http://www.icm.edu.pl/kdm/Notos

Szkolenie „Uruchamianie i optymalizacja kodów na architekturze Blue Gene/P”: http://wielkiewyzwania.pl/?page_id=264 (strona zawiera materiały szkoleniowe)

Film z instalacji komputera Notos: http://wielkiewyzwania.pl/?page_id=100

Więcej informacji o PRACE: http://www.prace-ri.eu

Kontakt: powiew@icm.edu.pl

Grom: nowy klaster obliczeniowy projektu CePT

Autorzy: Bartosz Borucki, Maciej Cytowski, Witold R. Rudnicki

W marcu 2011 w ramach laboratorium środowiskowego MODEL projektu CePT udostępniony został w ICM nowy klaster obliczeniowy o nazwie Grom. Klaster składa się z 24 węzłów hybrydowych, każdy wyposażony w 16 rdzeni AMD Opteron oraz 2 karty graficzne NVIDIA GeForce GTX 480. Klaster przeznaczony jest do prowadzenia obliczeń przy użyciu programów, które potrafią wykorzystać możliwości obliczeniowe oferowane przez procesory graficzne.

Obliczenia na systemach GPGPU

W ostatnich latach układy odpowiedzialne za wyświetlanie grafiki w komputerach osobistych wyewoluowały do bardzo wydajnych procesorów wyspecjalizowanych w obliczeniach masywnie równoległych. W wielu zastosowaniach moc obliczeniowa tych procesorów przekracza o rząd a nawet dwa rzędy wielkości moc standardowych procesorów. Nie umknęło to zarówno uwadze naukowców zajmujących się obliczeniami jak i producentów kart graficznych. Naukowcy rozpoczęli tworzenie algorytmów wykorzystujących karty graficzne w obliczeniach, producenci zaoferowali środowiska programistyczne ułatwiające programowanie kart. W szczególności firma NVIDIA w roku 2007 wypuściła na rynek karty o nowej architekturze CUDA, która już w samych założeniach projektowych miała ułatwiać wykorzystanie kart w obliczeniach, oraz środowisko programistyczne do obsługi tych kart C for CUDA. W 2009 roku opublikowany został bardzo podobny do CUDA standard OpenCL dla bibliotek umożliwiających prowadzenie obliczeń na kartach graficznych oraz w innych środowiskach hybrydowych a niszowa do niedawna dziedzina wykorzystania GPU w innych zastosowaniach niż do wyświetlania grafiki, zwana GPGPU czyli General Purpose computing on GPU, przeszła do głównego nurtu nauk obliczeniowych. Gwałtowny rozwój GPGPU uzyskał wsparcie w największych światowych centrach obliczeniowych – na najnowszej liście TOP 500 numer jeden zajmuje komputer z Chin uzyskujący większość mocy obliczeniowej dzięki wykorzystaniu procesorów graficznych, w pierwszej piątce zestawienia znajdują się jeszcze dwa komputery wykorzystujące technologię GPGPU.

W ICM prace nad wykorzystaniem GPU do obliczeń prowadzone są od 2007 roku w zespole kierowanym przez doktora Witolda Rudnickiego. W 2010 roku ICM UW w uznaniu wkładu w tworzenie rozwiązań GPGPU oraz wizję rozwoju w tej dziedzinie znalazło się w gronie 20 światowych instytucji, którym przyznano tytuł CUDA Research Center. ICM UW zajmuje się udostępnianiem narzędzi i aplikacji, jak również rozwojem własnego oprogramowania i algorytmów dla hybrydowych środowisk obliczeniowych takich jak Grom.

Grom2.png

Komputer Grom przeznaczony jest do prowadzenia obliczeń, które wykorzystują technologię GPGPU. W wypadku tego rodzaju przetwarzania komputer oferuje teoretyczną wydajność 64 TFLOPS dla pojedynczej precyzji i 8 TFLOPS dla podwójnej precyzji. Dla porównania przy obliczeniach nie wykorzystujących GPU teoretyczna wydajność komputera Grom wynosi 3,4 TFLOPS dla obliczeń w pojedynczej precyzji i 1,7 TFLOPS dla obliczeń w podwójnej precyzji.

Istnieje wiele aplikacji z różnych dziedzin obliczeniowych, które uzyskują doskonałą wydajność w środowiskach takich jak Grom. Są to m.in.:

  • w dziedzinie biologii molekularnej: NAMD, AMBER11, GROMACS, LAMMPS,
  • w dziedzinie analizy sekwencji białkowych: GPU-HMMER, CUDA-SW++ (Smith‑Waterman), CUDA-BLASTP, GPU Blast
  • w dziedzinie chemii kwantowej: TeraChem, BigDFT

i wiele innych.

Współpraca z projektem CePT

Wszystkich naukowców projektu CePT oraz użytkowników ICM serdecznie zapraszamy do prowadzenia obliczeń w środowisku Grom. Zapraszamy również do współpracy przy implementacji stosowanych algorytmów w technologii GPGPU oraz tworzeniu nowych, wydajnych metod dedykowanych biologii obliczeniowej wykorzystujących procesory graficzne. Zasady uzyskania dostępu i wykorzystania maszyny Grom oparte są o system grantów obliczeniowych, stosowany od lat w centrum Komputerów Dużej Mocy ICM UW, z uprzywilejowaniem projektów realizowanych w ramach CePT.

Więcej informacji

Więcej informacji o laboratorium MODEL i zasadach dostępu: http://cept.wum.edu.pl/centrum-wielkoskalowego-modelowania-i-przetwarzania-danych-biomedycznych-uw/o-nas

Więcej informacji o klastrze Grom: http://www.icm.edu.pl/kdm/Grom

Więcej informacji o aplikacjach: http://www.nvidia.com/object/tesla_bio_workbench.html

Więcej informacji o CUDA Research Center w ICM UW: http://bioinfo.icm.edu.pl/algorithm

Kontakt : cept@icm.edu.pl