Biuletyn nr 36

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 36 (17 września 2012)

Spis treści

Architektura i środowisko obliczeniowe komputera Boreasz (IBM Power 775)

Autor: Maciej Cytowski

W marcu 2012 roku w ICM UW w ramach projektu POWIEW udostępniony został do obliczeń system IBM Power 775 (Boreasz). Od tego czasu system Boreasz został już dobrze przetestowany przez użytkowników projektu POWIEW oraz użytkowników KDM. System stanowi bardzo ciekawą alternatywę dla użytkowników, których obliczenia wymagają wydajnego przetwarzania równoległego z dużą ilością pamięci przypadającej na pojedynczy węzeł obliczeniowy. System Boreasz jest obecnie najmocniejszą maszyną obliczeniową ICM UW i znalazł się już dwukrotnie na liście 500 największych superkomputerów świata (Top500). System ma też dość atrakcyjne parametry środowiskowe. Wszystkie procesory, kości pamięci, łącza sieciowe oraz dyski znajdują się w jednej szafie obliczeniowej, która chłodzona jest całkowicie cieczą. Film prezentujący konstrukcję węzła obliczeniowego komputera dostępny jest na stronie http://wielkiewyzwania.pl/?p=507.

P775 large.jpg

Architektura i środowisko obliczeniowe komputera Power 775 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 Power7,
  • system kolejkowy LoadLeveler,
  • środowisko kompilacji oparte na kompilatorach firmy IBM,
  • specyficzne metody optymalizacji,
  • nowe biblioteki numeryczne.

Mimo tylu różnic przeniesienie obliczeń na ten system zajmuje stosunkowo mało czasu. Kompilacja i udostępnienie pakietów naukowych na systemie możliwe jest po skontaktowaniu się z administratorami systemu. Obecnie na komputerze Boreasz zainstalowanych jest kilka pakietów z różnych dziedzin nauki. Wachlarz aplikacji wciąż powiększa się.

Artykuł ten opisuje podstawowe informacje dotyczące architektury oraz środowiska obliczeniowego Boreasz-a.

Architektura systemu

System Boreasz składa się z:

  • szafy IBM Power 775 – zawiera w sobie węzły obliczeniowe, zasoby dyskowe oraz dedykowaną szybką sieć do komunikacji pomiędzy węzłami
  • węzła zarządzającego – służy do monitorowania pracy szafy obliczeniowej.

IBM Power 775

W ramach komputera Boreasz część obliczeniowa składa się z:

  • 76 wezłów obliczeniowych
  • 2432 rdzeni obliczeniowych
  • 9728 GB RAM
  • teor. moc obliczeniowa 74.4 TFlops/s


Każdy z węzłów obliczeniowych ma następujące cechy:

  • 4 procesory IBM Power7
  • architektura SMP
  • 32 rdzenie obliczeniowe
  • 128 GB RAM
  • teor. moc obliczeniowa 980 GFlops/s
  • system operacyjny AIX 7.1

Dostęp do systemu umożliwia dedykowany węzeł dostępowy składający się z:

  • 3 procesory IBM Power7
  • 96 GB pamieci RAM
  • system operacyjny AIX 7.1

Wszystkie węzły obliczeniowe i dostępowy wyposażone sa w identyczne procesory o następujących parametrach:

  • architektura ppc64, zgodna ze spec. Power ISA v.2.06
  • architekturą typu big-endian
  • 64bit
  • taktowanie 3.83 Ghz
  • 8 rdzeni obliczeniowych
  • do 4 wątków SMT per rdzeń
  • cache L1 per rdzeń 32 kB instrukcje + 32 kB dane
  • cache L2 per rdzeń 256 kB
  • cache L3 per rdzeń 4 MB

Węzły nie posiadają lokalnego dysku. Zasoby dyskowe udostępniane są użytkownikom na węźle dostępowym oraz na węzłach obliczeniowych 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.

Węzły klastra połączone są dedykowanym rozwiązaniem sieciowym firmy IBM skonstruowanym w oparciu technologię HFI.


Węzeł dostępowy

Węzeł dostępowy to podstawowe miejsce pracy wszystkich użytkowników systemu Boreasz. Tutaj odbywa się przygotowanie, kompilacja, debugowanie oraz uruchamianie zadań obliczeniowych. Użytkownik nie ma możliwości logowania się na węzły obliczeniowe.

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 o nazwie Boreasz. Wykonuje się to standardową komendą z wewnątrz sieci ICM:

ssh boreasz

Kompilacja kodów i uruchamianie obliczeń możliwe jest dla każdego użytkownika ICM.

Osoby, które nie są użytkownikami ICM, ale chciałyby prowadzić swoje badania na komputerze Boreasz 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 Boreasz”.

Przygotowanie aplikacji: kompilatory i optymalizacja

Środowisko programisty

Cały dostępny stos oprogramowania niezbędny do utworzenia, uruchomienia, testowania i debugowania w C, C++ i Fortranie równoległych kodów użytkownika pochodzi od jednego producenta.

Środowiskiem programistycznym dedykowanym dla systemu Boreasz jest IBM Parallel Environment Runtime Edition, w skrócie PE. PE zapewnia mechanizm i narzędzia do przesyłania wiadomości pomiędzy procesami w systemach o rozproszonej pamięci.

Protokołem dla komunikacji równoległej w ramach klastra jest MPI. Dostępna w ramach środowiska biblioteka to PE MPI, implementacja zgodna ze standardem MPI: A Message-Passing Interface Standard, Version 2.2, University of Tennessee, Knoxville, Tennessee, September 4, 2009.

Podstawowe kompilatory dla kodów równoległych to:

  • mpcc_r – dla kodów w C
  • mpCC_r – dla kodów w C++
  • mpxlf_r, mpxlf90_r, mpxlf95_r, mpxlf2003_r - dla kodów w języku Fortran

Dostępne są również kompilatory służące do przygotowywania aplikacji w ramach pojedynczego węzła:

  • IBM XL C/C++ – rodzina kompilatorów dla języka C/C++
  • IBM XL Fortran – rodzina kompilatorów dla języka Fortran

Skompilowany równoległy kod jest przygotowany do uruchamiania przy użyciu narzędzi POE. Zadaniem POE jest przygotowanie węzłów i środowiska pod uruchamiane procesy użytkownika. POE wykorzystuje do tego ręcznie przygotowaną wcześniej listę zadanych węzłów lub posiłkuje się menedżerem zasobów. W systemie Boreasz POE wolno korzystać tylko z menedżera zasobów, w tym przypadku jest to IBM LoadLeveler.

Profilery, debuggery

Użytkownicy mają do dyspozycji stos oprogramowania do analizowania wydajności i poprawności działania swoich aplikacji. Zapewnia to pakiet IBM HPC Toolkit.

Udostępnione aplikacje i biblioteki

Na systemie Boreasz zainstalowane i udostępnione zostały następujące aplikacje naukowe:

  • Gadget-3 - kosmologia obliczeniowa,
  • Gromacs v.4.5.5 - modelowanie molekularne,
  • VASP v.5.2.12 - obliczenia materiałowe,
  • FLUENT - obliczeniowa dynamika płynów,
  • UM - numeryczna prognoza pogody.

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ń,
  • Mathematical Acceleration Subsystem (MASS) - zoptymalizowane wersje standardowych funkcji matematycznych, m.in. cos, sin , powf,
  • Engineering and Scientific Subroutine Library (ESSL) – zoptymalizowane funkcje matematyczne i naukowe, np. algebra liniowa, FFT, generator liczb losowych,
  • FFTW v2.1.5,v3.3.2 double – znana biblioteka do wielowymiarowych obliczeń FFT,
  • LAPACK v3.4.1 - biblioteka funkcji algebry liniowej,
  • BLAS - biblioteka funkcji algebry liniowej,
  • BLACS - biblioteka funkcji algebry liniowej,
  • SCALAPACK v.2.0.1 - zrównoleglona biblioteka funkcji algebry liniowej,
  • GNU Scientific Library (GSL) - biblioteka funkcji i algorytmów numerycznych GNU,
  • GMP - biblioteka GNU implementująca arytmetykę dowolnej precyzji,
  • MPFR - biblioteka implementująca arytmetykę dowolnej precyzji na liczbach zmiennoprzecinkowych,
  • HYPRE v2.0.0 - zrównoleglona biblioteka służąca do rozwiązywania dużych, rzadkich układów równań liniowych.

Uruchamianie zadań

Uruchamianie zadań na Boreaszu 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 Boreasz:

#@ job_name = Calculations
#@ output = $(job_name)_$(jobid)
#@ error =  $(job_name)_$(jobid)
#@ account_no = G33-19
#@ class = kdm
#@ node = 16 
#@ tasks_per_node = 32
#@ wall_clock_limit = 08:00:00
#@ network.MPI = sn_all,not_shared,US,HIGH
#@ notification = never
#@ environment = COPY_ALL
#@ job_type = parallel
#@ queue
mpiexec -n 512 ./executable

Więcej informacji na temat konstrukcji skryptów LL oraz aktualnej konfiguracji systemu kolejkowego znajduje się na maszynie Boreasz w pliku: /opt/info/queuing_system

Współpraca z projektem POWIEW

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

  • zrównoleglaniu oraz optymalizacji oprogramowania obliczeniowego na systemy Power775,
  • 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.

Boreasz to pierwsza instalacja architektury IBM Power775 udostępniona dla nauki na świecie. System będzie również dostępny dla użytkowników europejskich jako system Tier-1 projektu PRACE (http://prace-ri.eu) na bazie konkursów DECI. Więcej informacji o konkursach DECI: http://prace-ri.eu/Call-Announcements?lang=en.

Więcej informacji

Więcej informacji o projekcie POWIEW: wielkiewyzwania.pl

Więcej informacji o komputerze Boreasz: http://wielkiewyzwania.pl/?page_id=626

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

Kontakt do administratorów systemu: powiew-admins@icm.edu.pl

Kontakt: powiew@icm.edu.pl

Obsługa komputera Boreasz - sztuczki i kruczki cz.1

Autor: Maciej Cytowski

Komputer Boreasz obsługiwany jest przez system operacyjny AIX 7.1. Systemy klasy IBM Power 775 są również instalowane z systemem Linux, jednak to właśnie platforma AIX zapewnia większe i sprawniejsze wsparcie ze strony producenta sprzętu. W szczególności wszelkie aktualizacje narzędzi systemowych (ale również kompilatorów) dla systemu Power775 pojawiają się najpierw dla platformy AIX.

Obsługa systemu AIX jest podobna do obsługi znanych nam odmian systemu Linux. Wiele narzędzi Linux-owych ma swoje wersje kompilowane specjalnie dla kolejnych wersji systemu AIX. Istnieją jednak różnice, które z pewnością napotkają Państwo przy pierwszej próbie uruchomienia obliczeń na systemie Boreasz. Artykuł ten opisuje kilka z tych różnic. Poniższa ich lista nie jest oczywiście listą zamkniętą, ale w ocenie autora jest to zestaw najważniejszych z nich.

Rozpakowuję - gunzip

Bardzo często przenoszenie danych pomiędzy systemami klasy Linux/Unix odbywa się poprzez tworzenie skompresowanych archiwów o rozszerzeniu .tar.gz. Osobiście bardzo często paczki takie tworzę komendą:

$ tar zcf paczka.tar.gz dir/

Opcja z polecenia tar oznacza automatyczne kompresowanie tworzonego archiwum (stąd rozszerzenie .gz). Naturalnym sposobem odpakowywania takiej paczki jest następujące polecenie:

$ tar zxf paczka.tar.gz

Obydwa powyższe polecenia zadziałają na wszystkich systemach obliczeniowych ICM UW, ale nie na Boreaszu. Program tar na Boreaszu nie ma bowiem wsparcia dla rozpakowywania i pakowania - nie obsługuję opcji z.

Rozwiązaniem jest użycie programów tar oraz gzip w dwóch krokach, odpowiednio dla pakowania:

$ tar cf paczka.tar dir
$ gzip paczka.tar

oraz odpakowywania:

$ gunzip paczka.tar.gz
$ tar xf paczka.tar

Niestety polecenie tar na systemie Boreasz kiepsko radzi sobie z bardzo dużymi paczkami (o wielkości rzędu kilkuset MB). W przypadku wystąpienia problemów, dla których komunikat błędu zawiera frazę "@LongLink", należy archiwum wypakować na innym systemie (np. maszynie rekin) i użyć klasycznego programu ZIP do pakowania i rozpakowania za pomocą komendy:

$ zip -r paczka.zip dir/
$ unzip paczka.zip

Edytuję - vim

Współcześni użytkownicy edytora vim zdążyli już przyzwyczaić się do tego, że mogą w trybie edycji korzystać z takich dobrodziejstw jak backspace, czy del do usuwania znaków. Zetknięcie z vim-em na systemach UNIX-owych pozwoli im przypomnieć sobie o klasycznym (czy też oldschool-owym) sposobie usuwania znaków za pomocą znaku x. Taka właśnie miła niespodzianka czeka na nas na systemie Boreasz. Istnieje bardzo prosty sposób "przywrócenia" funkcjonalności backspace oraz del. W tym celu w katalogu domowym należy utworzyć plik o nazwie .vimrc (standardowy plik konfiguracji vim-a). Wewnątrz pliku mogą Państwo wpisać np. ustawienia, których używam osobiście:

set backspace=indent,eol,start
:fixdel
set nu
:syntax on 

Dwie pierwsze linie powyższych ustawień spowodują, że raz na zawsze pożegnamy x na rzecz backspace oraz del. Dwie kolejne linie są opcjonalne, a związane są z wyświetlaniem numerów linii w edytorze (set nu) oraz podkreślaniem składni (:syntax on), co jest bardzo przydatne w szczególności w pracy z kodami komputerowymi.

Kompiluję 1 - gmake, cmake

Do kompilacji źródeł oprogramowania na systemach Linux/UNIX bardzo często wykorzystywany jest mechanizm automatyzacji kompilacji, tzw. make. Zasady kompilacji twórcy oprogramowania opisują w plikach Makefile, a końcowi użytkownicy mogą dokonać kompilacji pakietu po uruchomieniu programu make w katalogu, w którym znajduje się Makefile. Większość współczesnych pakietów bazuje na zasadach tzw. GNU make, które niestety nie są w pełni wspierane przez polecenie make na systemach AIX-owych. Próba kompilacji poleceniem make na Boreaszu bardzo często kończy się niepowodzeniem.

Rozwiązanie jest na szczęście bardzo proste. Administratorzy systemu Boreasz udostępnili dla Państwa implementację GNU make o nazwie gmake przeportowaną na platformę AIX.

Wszelkie kompilacje pakietów bazujących na mechanizmie make należy zatem wykonywać z pomocą polecenia gmake.

Niektóre pakiety oprogramowania opierają swoją kompilację na mechanizmie cmake, czyli jeszcze większej automatyzacji ;) Cmake nie jest standardowo dostępny na systemach AIX-owych. Administratorzy systemu Boreasz skompilowali i udostępnili Państwu to narzędzie w katalogu /opt/cmake.

Kompiluję 2 - opcja q64

Domyślnym trybem kompilacji na systemie Boreasz jest tryb 32-bitowy. Mało użytkowników wie, że ma to również bardzo poważne konsekwencje dotyczące wielkości stosu przyznawanego naszemu programowi przez system operacyjny. Na systemach klasy AIX domyślny rozmiar stosu w trybie 32-bitowym wynosi 64MB. Rozmiar ten można zwiększać używając opcji kompilacji -bmaxstack lub -bmaxdata (patrz manuale kompilatorów xlc oraz xlf). Bardzo często zatem pierwsze zetknięcie z Boreaszem, polegające np. na kompilacji i próbie uruchomienia prostego programu, kończy się niepowodzeniem i brzydkimi komunikatami dotyczącymi pamięci (o jak bardzo je lubimy).

Rozwiązaniem najprostszym jest jednak kompilacja programu w trybie 64-bitowym (o ile oczywiście ten typ kompilacji jest zgodny z naszym oprogramowaniem). Aby uzyskać binarki 64-bitowe w trakcie kompilacji oraz linkowania powinniśmy używać opcji kompilacji -q64. Należy również pamiętać, że jeśli zechcemy tak utworzone pliki obiektowe spakować do archiwum o rozszerzeniu .a za pomocą komendy ar to musimy użyć do tego opcji -X64.

W przypadku problemów z obsługą stosu/sterty na systemie Boreasz polecamy Państwu kontakt z administratorami systemu: powiew-admins@icm.edu.pl.

Dalsza lektura i dokładniejsze wytłumaczenia dotyczące tego problemu na stronach Lawrence Livermore National Laboratories: https://computing.llnl.gov/mpi/aix_stack.html

Potrzebuję - Linux for AIX

Istnieje wiele narzędzi znanych z systemów Linux-owych, których implementacje zostały przygotowane przez firmę IBM i są dostępne do ściągnięcia w postaci paczek instalacyjnych ze strony AIX Toolbox for Linux Applications (możemy się spierać czy jest to bardziej "AIX for Linux Applications" czy "Linux Applications for AIX"). Jeśli jakieś narzędzie, do którego użycia są Państwo przyzwyczajeni nie jest dostępne na systemie Boreasz, to bardzo możliwe, że można je zainstalować z jednej z udostępnionych przez IBM paczek: http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html

Jeśli szukane narzędzie nie występuje na tej liście to bardzo możliwe, że administratorom systemu Boreasz uda się skompilować i udostępnić to narzędzie samemu. W obu przypadkach nieunikniony jest kontakt na adres email: powiew-admins@icm.edu.pl.

Skalowanie aplikacji VASP na systemach ICM UW

Autor: Jacek Piechota, Maciej Cytowski, Maciej Marchwiany

Instalacja nowego systemu w ICM UW to zawsze okazja do odnowienia pomiarów skalowalności na dostępnych maszynach. Obecnie wachlarz architektur komputerowych jest dość bogaty:

  • systemy klastrowe (halo2, hydra),
  • system obliczeń masywnie równoległych (notos)
  • systemy obliczeń akcelerowanych (grom,nautilus)
  • i wreszcie, system zrównoleglonych obliczeń gruboziarnistych (boreasz).

Ostatni z wymienionych systemów powinien sprawdzać się znakomicie w zastosowaniach, w których obliczenia zależą od szybkości komunikacji pomiędzy węzłami z jednej strony i ilością i wydajnością podsystemu pamięci operacyjnej z drugiej. Tego typu wymagania ma między innymi oprogramowanie VASP. Postanowiliśmy przyjrzeć się skalowalności tego pakietu na kilku dostępnych w ICM UW architekturach (wszystkich oprócz systemu obliczeń akcelerowanych). Artykuł ten prezentuje wyniki i wnioski z naszych pomiarów.

Zadania testowe - opis

Wykonaliśmy dwa rodzaje pomiarów czasowych na systemach ICM UW.

Test A: Superkomórka krystaliczna GaAs

Test ten bada skalowalność oprogramowania VASP na dostępnych systemach obliczeniowych dla superkomórki krystaliczne GaAs zawierającej 80 atomów. Rozmiar zadania pozostaje niezmienny. W kolejnych pomiarach zmieniamy liczbę procesorów i porównujemy ze sobą uzyskane wyniki czasowe. Chcemy odpowiedzieć na dwa pytania:

  • na jakiej partycji obliczeniowej (ile procesorów i węzłów) warto liczyć to konkretne zadanie VASPa,
  • na którym systemie ICM UW jesteśmy w stanie uzyskać najlepsze wyniki czasowe obliczeń.

Test B: Superkomórka krystaliczna GaN

Test ten bada zmienność czasu wykonania zadania VASP przy zmiennej liczbie atomów (8,32 i 72 atomów) oraz zmiennej ilości używanej pamięci RAM (odpowiednio 104 MB, 198 MB oraz 524 MB). Liczba używanych procesorów pozostaje bez zmian. Nie jest to dokładnie test słabej skalowalności, gdyż w takim teście powinniśmy zmieniać liczbę procesorów aby utrzymać wielkość zadania per rdzeń obliczeniowy na tym samym poziomie. W naszych pomiarach chodzi głównie o sprawdzenie jak zmienia się czas wykonania zadania VASP na stałej partycji obliczeniowej przy zmiennej liczbie atomów. Z wyników testu będziemy mogli również porównać różnice czasowe w wykonaniu zadania na dwóch różnych komputerach przy zmiennym rozmiarze zadania testowego.

Wyniki testów

Poniższa tabela prezentuje wyniki testu A zebrane na trzech systemach obliczeniowych ICM UW.

Wyniki testu A
System Ilość rdzeni Partycja (TFlop/s) Czas (sek)
halo2 16 0.14 48 297 s
halo2 32 0.28 26 309 s
halo2 48 0.42 19 154 s
halo2 64 0.56 14 423 s
halo2 80 0.7 85 569 s
notos 128 0.86 13 118 s
notos 256 1.72 34 482 s
boreasz 32 0.98 4 800 s
boreasz 64 1.96 2 864 s
boreasz 96 2.94 2 475 s
boreasz 128 3.92 2 509 s

Test A oprogramowania VASP skaluje się przyzwoicie na klastrze Halo2 do 4 węzłów obliczeniowych (64 rdzeni). Użycie większych partycji powoduje znaczny wzrost czasu obliczeń. Najlepszy wynik czasowy Halo2 dla 64 rdzeni to 14 423 s. Najlepszy wynik, który uzyskaliśmy na systemie Notos to 13 118s (prezentujemy tylko pojedynczy pomiar). Wynik ten jest na poziomie najlepszego wyniku czasowego uzyskanego na systemie Halo2. Oprogramowanie VASP nie skaluje się dobrze dla dużej liczby procesów (co widać w wynikach skalowalności Halo2). W przypadku systemu Notos mamy do czynienia z dość słabymi rdzeniami obliczeniowymi i aby uzyskać wynik na poziomie klastra Halo2 użyliśmy do obliczeń aż 128 rdzeni. Tak duża liczba procesów wydaje się być barierą skalowalności dla zadania VASP o wielkości testu A, co zanotowaliśmy wykonując próbne uruchomienia testu A na większych partycjach obliczeniowych systemu Notos. W wypadku takich obliczeń dobrze sprawdzać mogą się systemy o dużej mocy pojedynczego rdzenia, co widać w przypadku pomiarów na systemie Boreasz. Na tym systemie uzyskaliśmy najlepszy wynik czasowy - 2 475 s. Wynik ten jest prawie 6 razy lepszy niż najlepsze czasy obliczeń uzyskane na systemach Halo2 czy Notos. Ponownie przy przejściu na liczbę procesów rzędu 128 obserwujemy brak skalowania testu A oprogramowania VASP.

Poniższa tabela prezentuje porównanie czasów obliczeń testu B oprogramowania VASP na dwóch systemach (Halo2 oraz Boreasz).

Wyniki testu B
System Zadanie Ilość rdzeni Partycja (TFlop/s) Czas (sek)
halo2 GaN (8 atomów) 32 0.28 3 653 s
halo2 GaN (32 atomy) 32 0.28 52 383 s
halo2 GaN (72 atomy) 32 0.28 294 454 s
boreasz GaN (8 atomów) 32 0.98 1 024 s
boreasz GaN (32 atomy) 32 0.98 9 734 s
boreasz GaN (72 atomy) 32 0.98 92 770 s

Do zebrania powyższych pomiarów czasowych użyliśmy partycji obliczeniowych o tej samej liczbie rdzeni obliczeniowych (32). Rdzenie obliczeniowe systemu Boreasz są mniej więcej 3.5 razy mocniejsze (w TFlop/s) od rdzeni obliczeniowych systemu Halo2. Wynika to po pierwsze z większego taktowania (3.8 GHz Boreasza kontra 2.2 GHz Halo2) oraz większej ilości instrukcji w cyklu, które może przetworzyć pojedynczy rdzeń obliczeniowy (8 instrukcji Boreasza kontra 4 instrukcje Halo2). Oprogramowanie VASP dobrze potrafi wykorzystać moc rdzeni Boreasza. Wynik testów GaN dla różnych ilości atomów są ponad 3 razy lepsze na systemie Boreasz.

Wyniki testu B pokazują nam również ciekawą zależność czasu obliczeń oprogramowania VASP względem ilości atomów w rozpatrywanym systemie (superkomórki krystalicznej GaN). Czas obliczeń rośnie wykładniczo względem wzrostu ilości atomów w systemie. Potwierdzają to wyniki czasowe uzyskane zarówno na systemie Halo2 jak i Boreasz.


Wnioski

Zbadaliśmy skalowanie oraz wydajność pakietu VASP na dostępnych w ICM UW systemach obliczeniowych. Zebrane wyniki pokazują, że oprogramowanie VASP prezentuje skalowalność ograniczoną do kilkudziesięciu procesów nawet dla dużych układów obliczeniowych. Wydajność obliczeniowa pakietu jest wyższa na systemach o mocniejszych rdzeniach obliczeniowych, co potwierdzone zostało testami czasowymi wykonanymi na systemie Boreasz.

Spośród badanych systemów najbardziej odpowiednimi do wykonywania obliczeń oprogramowaniem VASP wydają się być Halo2 oraz Boreasz. Pierwszy z tych systemów może być z powodzeniem wykorzystywany do obliczeń mniejszych układów. System Boreasz może z kolei znacznie skrócić czas obliczeń dla większych układów, dla których obliczenia na partycji 96-128 rdzeni obliczeniowych nadal wykazują zmniejszenie czasu obliczeń.