Równoległe testy porównawcze NAS
Oryginalni autorzy | Program numerycznej symulacji aerodynamicznej NASA |
---|---|
Deweloperzy | NASA Advanced Supercomputing Division |
Pierwsze wydanie | 1991 |
Wersja stabilna | 3.4 |
Strona internetowa |
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) |
|
|
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
- Zmiany równoległych testów porównawczych NAS (oficjalna strona internetowa)