Równoległe testy porównawcze NAS

Równoległe testy porównawcze NAS
Oryginalni autorzy Program numerycznej symulacji aerodynamicznej NASA
Deweloperzy NASA Advanced Supercomputing Division
Pierwsze wydanie 1991 ( 1991 )
Wersja stabilna
3.4
Strona internetowa nas .nasa .gov /Oprogramowanie /NPB /

NAS Parallel Benchmarks ( NPB ) to zestaw testów porównawczych ukierunkowanych na ocenę wydajności wysoce równoległych superkomputerów . Są opracowywane i utrzymywane przez NASA Advanced Supercomputing (NAS) Division (dawniej NASA Numerical Aerodynamic Simulation Program) z siedzibą w NASA Ames Research Center . NAS prosi o wyniki wydajności dla NPB ze wszystkich źródeł.

Historia

Motywacja

Tradycyjne testy porównawcze, które istniały przed NPB, takie jak pętle Livermore , LINPACK Benchmark i NAS Kernel Benchmark Program , były zwykle wyspecjalizowane dla komputerów wektorowych. Na ogół cierpiały z powodu niedoskonałości, w tym ograniczeń strojenia utrudniających równoległość i niewystarczających rozmiarów problemów, co czyniło je nieodpowiednimi dla systemów wysoce równoległych. Równie nieodpowiednie były testy porównawcze aplikacji na pełną skalę ze względu na wysokie koszty przenoszenia i niedostępność narzędzi do automatycznej równoległości oprogramowania. W rezultacie NPB zostały opracowane w 1991 r. i wydane w 1992 r., aby zaradzić wynikającemu z tego brakowi wzorców mających zastosowanie do wysoce równoległych maszyn.

NPB 1

Pierwsza specyfikacja NPB uznała, że ​​benchmarki powinny się znaleźć

  • nowe równoległe metody algorytmiczne i programowe,
  • generyczność i neutralność architektury,
  • łatwa weryfikowalność poprawności wyników i wskaźników wydajności,
  • możliwość przyjęcia nowych układów o zwiększonej mocy,
  • i gotowość do dystrybucji.

W świetle tych wytycznych uznano, że jedynym realnym podejściem jest wykorzystanie zbioru testów porównawczych „papier i ołówek”, które określają zestaw problemów tylko algorytmicznie i pozostawiają większość szczegółów implementacji uznaniu wdrażającego w ramach pewnych niezbędnych ograniczeń.

NPB 1 zdefiniował osiem wzorców, każdy w dwóch rozmiarach problemów nazwanych klasą A i klasą B. Dostarczono przykładowe kody napisane w języku Fortran 77 . Wykorzystywali mały problem klasy S i nie były przeznaczone do celów porównawczych.

NPB 2

Od momentu wydania NPB 1 wykazywał dwie główne słabości. Po pierwsze, ze względu na specyfikację „papieru i ołówka”, sprzedawcy komputerów zwykle tak dostrajali swoje implementacje, że ich wydajność była trudna do osiągnięcia dla programistów naukowych. Po drugie, wiele z tych implementacji było zastrzeżonych i niedostępnych publicznie, skutecznie ukrywając techniki optymalizacji. Po drugie, rozmiary problemów NPB 1 nie nadążały za rozwojem superkomputerów, ponieważ te ostatnie nadal ewoluowały.

NPB 2, wydany w 1996 roku, zawierał implementacje kodu źródłowego dla pięciu z ośmiu testów porównawczych zdefiniowanych w NPB 1 w celu uzupełnienia, ale nie zastąpienia NPB 1. Rozszerzył testy porównawcze o aktualny rozmiar problemu Klasa C . Zmieniła również zasady przekazywania wyników benchmarkingu. Nowe zasady obejmowały wyraźne prośby o pliki wyjściowe, a także zmodyfikowane pliki źródłowe i skrypty kompilacji, aby zapewnić publiczną dostępność modyfikacji i odtwarzalność wyników.

NPB 2.2 zawierał implementacje dwóch kolejnych testów porównawczych. NPB 2.3 z 1997 roku była pierwszą kompletną implementacją w MPI . Dostarczono go z seryjnymi wersjami testów porównawczych zgodnymi z wersjami równoległymi i zdefiniowano rozmiar problemu klasy W dla systemów o małej pamięci. NPB 2.4 z 2002 r. zaoferował nową implementację MPI i wprowadził jeszcze większy problem klasy D. Rozszerzono również jeden test porównawczy o podtypy intensywnie korzystające z operacji we/wy .

NPB 3

NPB 3 zachował implementację MPI z NPB 2 i pojawił się w większej liczbie smaków, a mianowicie OpenMP , Java i High Performance Fortran . Te nowe implementacje równoległe zostały wyprowadzone z kodów szeregowych w NPB 2.3 z dodatkowymi optymalizacjami. NPB 3.1 i NPB 3.2 dodały jeszcze trzy testy porównawcze, które jednak nie były dostępne we wszystkich implementacjach; NPB 3.3 wprowadził rozmiar problemu klasy E. W oparciu o jednostrefowy NPB 3, zestaw wielostrefowych testów porównawczych wykorzystujących hybrydowy model programowania MPI / OpenMP został wydany pod nazwą NPB-Multi-Zone ( NPB-MZ ) za „badanie skuteczności paradygmatów i narzędzi paralelizacji wielopoziomowej i hybrydowej”.

Wzorce

Od wersji NPB 3.3 zdefiniowano jedenaście wskaźników referencyjnych, które podsumowano w poniższej tabeli.

Reper Nazwa pochodzi od Dostępne od Opis Uwagi
MG Pozbądź się wielu G NPB 1 Przybliż rozwiązanie trójwymiarowego dyskretnego równania Poissona za pomocą metody multigrid z cyklem V
CG Sprzężony radiant G _ Oszacuj najmniejszą wartość własną dużej rzadkiej symetrycznej dodatnio określonej macierzy, używając iteracji odwrotnej z metodą gradientu sprzężonego jako podprogramu rozwiązywania układów równań liniowych
FT Szybka transformata Fouriera _ _ Rozwiąż trójwymiarowe równanie różniczkowe cząstkowe (PDE) za pomocą szybkiej transformaty Fouriera (FFT)
JEST Sortowanie liczb całkowitych _ Sortuj małe liczby całkowite za pomocą sortowania kubełkowego
EP Zawstydzająco równoległa _ _ Generuj niezależne losowe zmienne Gaussa przy użyciu metody polarnej Marsaglii
BT Blokada B T przekątna Rozwiązywanie syntetycznego systemu nieliniowych PDE przy użyciu trzech różnych algorytmów obejmujących odpowiednio jądra solwera blokowego tridiagonalnego , skalarnego pentadiagonalnego i symetrycznej kolejnej nadmiernej relaksacji (SSOR)
  • Benchmark BT ma podtypy intensywnie korzystające z wejścia/wyjścia
  • Wszystkie trzy testy porównawcze mają wersje wielostrefowe
Sp Skalarny pięciokątny _ _
LU Seidel Dolny- Górny symetryczny Gauss -
UA Niestrukturalny Daptive _ _ NPB 3.1 Rozwiąż równanie ciepła z konwekcją i dyfuzją z poruszającej się kuli. Siatka jest adaptacyjna i ponownie obliczana co 5 krok.
DC Operator C ube danych _
DT Przepływ danych _ _ NPB 3.2

Linki zewnętrzne