Programowanie Równoległe i Rozproszone Lucjan Stapp Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska (l.stapp@mini.pw.edu.pl) 1/38 PRiR WYDAJNOŚĆ KOMPUTERÓW (L. D. Fosdick, C. J. Schauble, E. R. Jessup) Przez wydajność komputerów rozumiemy efektywność wykonywanych na nich operacji, sprawdzaną zazwyczaj przy użyciu odpowiedniego programu. Miernikiem tej wydajności są między innymi: szybkość, koszt, czas odpowiedzi, opoźnienie. 2/38 PRiR Różne czynniki mają wpływ na wydajność komputera: 1. Prędkość procesora (CPU) przy: operacjach na rejestrach, operacjach na liczbach całkowitych, operacjach na liczbach zmiennoprzecinkowych, operacjach na łańcuchach znaków; 2. Czas operacji na pamięci (zapis i odczyt danych) dla: pamięci podręcznej (ang. cache), pamięci głównej, pamięci pomocniczej; 3. Rozmiar pamięci; 4. System operacyjny i system plików; 5. Kompilator; 6. Wejście / Wyjście; 7. Komunikacja (zwłaszcza w odniesieniu do komputerów równoległych). 3/38 PRiR Przygotował: Lucjan Stapp 1
Wydajność komputera nie powinna być utożsamiana tylko z szybkością procesora. Miary wydajności mówią nam, jak szybko procesor może wykonywać dane zadanie. 4/38 PRiR Jednostki (czas): milisekundy (msec): jedna tysięczna (0.001 lub 1x10-3 ) sekundy, mikrosekundy (µsec): jedna tysięczna milisekundy, nanosekunda (nsec): jedna tysięczna mikrosekundy, pikosekunda (psec): jedna tysięczna nanosekundy. Jednostki (częstotliwość): Herc (Hz): jednostka częstotliwości (1Hz oznacza jeden cykl na sekundę), Megaherc (MHz): milion Herców (milion (10 6 ) cykli na sekundę), Gigaherc (GHz): miliard Herców (miliard (10 9 ) cykli na sekundę). wg L.D.Fosdick, C.J.C.Schauble, E.R.Jessup 5/38 PRiR Jeden cykl procesora jest najmniejszą operacją, jaką można wyszczególnić w pracy procesora. Szybkość procesora może być zdefiniowana poprzez: Częstotliwość zegara: liczba cykli wykonywanych na sekundę (zazwyczaj podawana w MHz lub GHz) Szybkość zegarowa: ilość czasu potrzebna procesorowi na wykonanie jednego cyklu (zazwyczaj podawana w mikrosekundach albo nanosekundach, czasem w pikosekundach). wg L.D.Fosdick, C.J.C.Schauble, E.R.Jessup 6/38 PRiR Przygotował: Lucjan Stapp 2
Aby zdefiniować wydajność komputera, musimy zmierzyć czas wykonywania przez niego różnych zadań. Wyróżnia się następujące rodzaje czasów związanych z wykonywaniem zadania: user time (czas użytkownika): czas, jaki procesor poświęca na dane zadanie, wyłączając narzut związany z systemem operacyjnym system time (czas systemowy): czas, jaki system operacyjny poświęca na wykonanie zadania elapsed time (czas, który upłynął): czas, w sensie ogólnym, który upłynął od momentu rozpoczęcia wykonywania zadania do momentu zakończenia wykonywania zadania. Ponieważ większość komputerów umożliwia wykonywanie wielu procesów jednocześnie (tzw. wielozadaniowość), czas ten nie musi być równy sumie user time i system time. by L.D.Fosdick, C.J.C.Schauble, E.R.Jessup 7/38 PRiR Aby zdefiniować wydajność komputera, musimy zmierzyć czas wykonywania przez niego różnych zadań. Wyróżnia się następujące rodzaje czasów związanych z wykonywaniem zadania: wall clock time (czas zegara ściennego): kolejna nazwa elapsed time response time (czas odpowiedzi): kolejna nazwa elapsed time, gdyż wyraża czas, jaki użytkownik musi czekać na zakończenie zadania. wg L.D.Fosdick, C.J.C.Schauble, E.R.Jessup 8/38 PRiR Poniższe jednostki zostały zdefiniowane w celu opisu wydajności: mips: wyraża prędkość komputera poprzez miliony instrukcji, które może wykonać w ciągu sekundy mops: termin ten wyraża prędkość komputera w milionach operacji na sekundę, które może wykonać CPI: termin ten wyraża prędkość komputera w sensie ilości cykli poświęcanych przez procesor na wykonanie jednej instrukcji flop: Liczba operacji na liczbach zmiennoprzecinkowych, którą komputer może wykonać w ciągu sekundy megaflop (Mflop): liczba operacji na liczbach zmiennoprzecinkowych w milionach, którą komputer może wykonać w ciągu sekundy gigaflop (Gflop): liczba operacji na liczbach zmiennoprzecinkowych w miliardach, którą komputer może wykonać w ciągu sekundy 9/38 PRiR Przygotował: Lucjan Stapp 3
Poniższe jednostki zostały zdefiniowane w celu opisu wydajności: teraflop (Tflop): liczba operacji na liczbach zmiennoprzecinkowych w tysiącach miliardów, którą komputer może wykonać w ciągu sekundy petaflop (Pflop): liczba operacji na liczbach zmiennoprzecinkowych w milionach miliardów, którą komputer może wykonać w ciągu sekundy 10/38 PRiR Przykład 1 Pewien komputer wykonuje 15000 instrukcji w ciągu 3 milisekund. Możemy przyjąć, że każda instrukcja dla tego komputera składa się z trzech operacji. Stąd mops wynosi 15 dla tego komputera, bo: (15000 instrukcji * 3 operacje / instrukcje ) / 3 milisekundy = 15 mops 11/38 PRiR Przykład 2 Pewien komputer pracuje z częstotliwością zegara 20MHz. Oznacza to, że jeden cykl trwa 50 nanosekund. Maszyna ta pracuje z prędkością 5mips: wykonuje 5 milionów instrukcji na sekundę albo jedną instrukcję w ciągu 200 nanosekund. Stąd każda instrukcja wykonywana jest przeciętnie w ciągu 4 cykli, zatem CPI dla maszyny wynosi 4. 12/38 PRiR Przygotował: Lucjan Stapp 4
Lista Top 500 The TOP500 project was started in 1993 to provide a reliable basis for tracking and detecting trends in high-performance computing. Twice a year, a list of the sites operating the 500 most powerful computer systems is assembled and released. The best performance on the LINPACK benchmark is used as performance measure for ranking the computer systems. The list contains a variety of information including the system specifications and its major application areas. 13/38 PRiR Lista Top500 Rmax - maksymalna wydajność osiągnięta w teście LINPACK Rpeak - teoretyczna wydajność szczytowa LINPACK Benchmark został stworzony przez Jack a Dongerra. Szczegółowy opis oraz wyniki osiągnięte przez różne maszyny są dostępne na stronie http://www.netlib.org Równoległa implementacja Benchmarka LINPACK oraz instrukcje, jak go uruchomić, znajdują się na stronie: http://www.netlib.org/benchmark/hpl/ 14/38 PRiR Lista Top 500 Program użyty w LINPACK Benchmark rozwiązuje gęste układy równań liniowych. Wersja tego programu używana w TOP500 umożliwia użytkownikowi wybór skali zadania oraz optymalizację oprogramowania, w celu osiągnięcia największej wydajności dla testowanej maszyny. Test ten nie odzwierciedla w pełni wydajności maszyny, ponieważ wydajności nie da się wyrazić jednym tylko numerem (wynikiem testu). Jedyne, co test LINPACK pokazuje, to wydajność systemu w rozwiązywaniu gęstych układów równań liniowych. Ponieważ problem jest bardzo regularny, osiągana szybkość/wydajność jest wysoka, a wyniki testu są dobrym szacowaniem wydajności szczytowej. www.top500.org 15/38 PRiR Przygotował: Lucjan Stapp 5
lista Top 500 listopad 2011 Lp Usytuowanie System Liczba rdzeni 1 RIKEN Advanced Institute for Computational Science (AICS) Japan 2 National SuperComputer Center in Tianjin China 3 Oak Ridge National Laboratory United States 4 National Supercomputing Centre in Shenzhen (NSCS) China K computer, SPARC64 VIIIfx 2.0GHz, Tofu interconnect, Linux Fujitsu 2011. Tianhe -1 (Tianhe 1A) (River in the Sky) NUDT TH-1 Cluster, Xeon E5540/E5450, ATI Radeon HD 4870 2, Infiniband NUDT 2010 Jaguar Cray XT5 QC 2.3 GHz Cray Inc. 2009 Nebulae - Dawning TC3600 Blade, Intel X5650, NVidia Tesla C2050 GPU / Dawning 2010 R max R peak Typ architektury 705 024 10 510 11 280.38 Cluster 186 368 2 566 4 701 MPP 224 162 1 759 2 331 MPP 120 640 1 271 2 984.3 Cluster 16/38 PRiR lista Top 500 listopad 2011 Lp Usytuowanie System Liczba rdzeni 5 GSIC Center, Tokyo Institute of Technology Japan 6 DOE/NNSA/LANL/SNL USA 7 NASA/Ames Research Center/NAS United States 8 DOE/SC/LBNL/NERSC USA 9 Commissariat a l'energie Atomique (CEA) France TSUBAME 2.0 - HP ProLiant SL390s G7 Xeon 6C X5670, Nvidia GPU, Linux/Windows / HP 2010 R max R peak Typ architektury 73 278 1 192 2 287.63 Cluster CIELO - Cray XE6, Opteron 6136 142 272 1 110 1 365.811 MPP 8C 2.40GHz, Custom CRAY 2011 111 104 1 088 1 315.328 MPP Pleiades SGI Altix ICE 8200EX, Xeon QC 3.0/2.66 GHz SGI 2010/2011 HOPPER XE6, Opteron 6172 12C 2.10GHz, Custom Cray 2010 TERA-100 - Bull bullx supernode S6010/S6030 / Bull SA 2010 153 408 1 054 1 288,627 MPP 138 368 1 050 1 254.6 Cluster 17/38 PRiR lista Top 500 listopad 2011 Lp Usytuowanie System Liczba rdzeni 10 DOE/NNSA/LANL United States 11 National Institute for Computational Sciences/University of Tennessee 12 HWW/Universitaet Stuttgart Germany 13 Forschungszentrum Juelich (FZJ) Germany ROADRUNNER BladeCenter QS22/LS21 Cluster, PowerXCell 8i 3.2 Ghz / Opteron DC 1.8 GHz, Voltaire Infiniband, IBM 2009 KRAKEN, Cray XT5-HE Opteron Six Core 2.6 GHz Cray 2009 R max R peak Typ architektury 122 400 1 042 1375,78 Cluster 98 928 831,7 1028,85 MPP HERMIT Cray XE6, Opteron 6276 113 472 831,4 1043,94 MPP 16C 2.30 GHz, Cray Gemini interconnect Cray 2011 Jugene Blue Gene/P Solution 294 912 825,5 1002,7 MPP IBM 2009 18/38 PRiR Przygotował: Lucjan Stapp 6
lista Top 500 listopad 2011 Lp Usytuowanie System Liczba rdzeni 88 Cyfronet Kraków Poland 279 Gdansk University of Technology, CI Task Gdańsk, Poland 296 Interdisciplinary Centre for Mathematical and Computational Modelling, University of Warsaw, Warszawa, Poland ZEUS - Cluster Platform 3000 BL2x220, L56xx 2.26 Ghz, Infiniband / HP 2010/2011 R max R peak Tflops Typ architektury 15 264 128,79 162,4 Cluster GALERA PLUS ACTION Xeon HP BL2x220/BL490 E5345/L5640 Infiniband ACTION 2008/2011 10 384 655,88 977,6 Cluster BOREAS Power 775, POWER7 8C 2 560 643,27 785,61 MPP 3.84 GHz, Custom IBM 2011 19/38 PRiR lista Top 500 listopad 2011 Lp Usytuowanie System Liczba rdzeni 298 Poznan Supercomputing and Networking Center, Rackable C1103-G15, Opteron Institute of Bioorganic 6234 12C 2.40 GHz, Infiniband Chemistry QDR Poznań, Poland SGI 2011 348 Grupa Allegro Poznań, Poland 360 Wroclaw Centre for Networking and Supercomputing Wrocław, Poland Cluster Platform 3000 BL 2x220, Xeon L5420 4C 2.50 GHz, Gigabit Ethernet HP 2009/2011 Cluster Platform 3000 BL2x220, X56xx 2.66 Ghz, Infiniband HP 2011 R max R peak Typ architektury 5 640 638,9 1363 Cluster 10 748 591,14 1075 Cluster 6 348 574,10 675 Cluster 20/38 PRiR K( 京 ) K komputer nazwa pochodzi od japońskiego słowa "kei", oznaczającego 10 biliardów (=10 16 ). Jest to superkomputer zbudowany przez Fujitsu dla Instytutu Badań Fizycznych i Chemicznych RIKEN pododział Next-Generation Supercomputer R&D Center w Kobe. Jest to komputer zbudowany w architekturze rozproszonej, z 88 128 procesorów 8 rdzeniowych SPARC64 VIIIfx zbudowanych w technologii 45 nm CMOS. 21/38 PRiR Przygotował: Lucjan Stapp 7
K( 京 ) Każdy z procesorów jest 8 rdzeniowy, co w sumie daje 705 024 rdzeni. Nie wykorzystano procesorów graficznych. Zużywa też najwięcej energii ze wszystkich superkomputerów. Gdy K działał z prędkością jednego petaflopa, pochłaniał 9,89 megawata rocznie. Jest jednocześnie najbardziej efektywnym energetycznie 824.6 GFlop/kWat. 22/38 PRiR K( 京 ) K wykorzystuje specjalnie dla niego zaprojektowaną sieć będąca 6 wymiarowym torusem o nazwie Tofu 豆 腐 (twarożek sojowy). Wykorzystuje zoptymalizowany Message Passing Interface oparty na opensourcowej bibliotece Open MPI. Użytkownicy tworzą aplikacje mogą działać w oparciu o sieć będącą jedno-, dwu lub trzywymiarowym torusem. 23/38 PRiR Tianhe 1A Tianhe-IA, Tianhe-1A orth-1a ( 天 河 一 号 ) (transkrypcja: Tiān hé yī hào), po polsku "Droga Mleczna 1 (dosłownie Niebiańska Rzeka ) - superkomputer o wydajności 2,566 petaflops, czyli ponad 2½ biliarda operacji zmiennoprzecinkowych na sekundę. Jest to upgrade supercomputera Tianhe -1. Znajduje się w National Supercomputing Center w mieście Tiencin w Chinach i jest drugim najszybszym superkomputerem na świecie (w listopadzie 2011 był numerem 1) 24/38 PRiR Przygotował: Lucjan Stapp 8
Tianhe 1A Pracuje w systemie operacyjnym LINUX. Zbudowany przez Chinese National University of Defense Technology (NUDT). Wykorzystano procesory Xeon X5670 w liczbie: 14 336, GPU ogólnego zastosowania Nvidia Tesla M2050: 7 168 oraz heterogeniczne procesory NUDT FT1000: 2 048 Posiada 262 TB pamięci operacyjnej oraz 5 PB dysku twardego w systemie plików Lustre 25/38 PRiR Tianhe 1A Energooszczędny zużywa 4,4 megawaty energii elektrycznej Oficjalne wykorzystanie: symulowanie maszyn latających badania geologiczne (petrochemiczne) 26/38 PRiR Jaguar Jaguar - znajduje się DOE Oak Ridge Leadership Computing Facility. W 2009 roku został rozbudowany. Osiąga wydajność rzędu 1,75 petaflop/s wykonując Linpack benchmark. Jaguar osiągnął sukces z nowymi procesorami o teoretycznej wydajności do 2.3 petaflop/s i prawie ćwierć milionem rdzeni. W czerwcu 2010 jeszcze na pozycji 1. 27/38 PRiR Przygotował: Lucjan Stapp 9
Nabulae brak szczegółów technicznych. Prawdopodobnie jest to Tianhe- 1. Nabulae 28/38 PRiR Nr 10 - Roadrunner Roadrunner* - superkomputer zbudowany przez IBM dla amerykańskiego Departamentu Energii, mieszczący się w Narodowym Laboratorium Los Alamos w stanie Nowy Meksyk w Stanach Zjednoczonych. 25 maja 2008 roku osiągnął moc obliczeniową 1,026 PFLOPSa. Czyni go to pierwszym w historii superkomputerem o mocy obliczeniowej przewyższającej 1 PFLOPS. Roadrunner zbudowany jest w oparciu o 12960 mikroprocesorów PowerXCell 8i oraz 6912 dwurdzeniowych mikroprocesorów AMD Opteron. Roadrunner działa pod kontrolą systemów operacyjnych Red Hat Enterprise Linux oraz Fedora. Zajmuje powierzchnię 560 m².został uruchomiony w 2008 roku. 29/38 PRiR Nr 10 - Roadrunner Roadrunner* jest wykorzystywany do symulacji procesu starzenia się materiałów nuklearnych, co ma pomóc w odpowiedzeniu na pytanie, jak długo amerykańskie głowice nuklearne mogą być uznawane za sprawne. Poza tym zastosowania Roadrunnera obejmują takie dziedziny jak nauki ścisłe, ekonomia, przemysł lotniczy i samochodowy. *http://pl.wikipedia.org/wiki/roadrunner 30/38 PRiR Przygotował: Lucjan Stapp 10
Nr 10 - Roadrunner Roadrunner 31/38 PRiR Nr 13 - FZJ The Jülich Research Centre (German: Forschungszentrum Jülich, short FZJ) is based near Jülich, North Rhine-Westphalia, Germany. It is a member of the Helmholtz-Gemeinschaft. Founded in 1956 as the Kernforschungsanlage Jülich (nuclear research institute Jülich, short KFA) it was originally focused on nuclear research. It was the site of three nuclear reactors, all now shut down: AVR reactor, the world's first pebble bed reactor, operating from 1966 till 1988. MERLIN reactor, also known as FRJ-1, a 5 MWt pool-type reactor operating from 1962 until 1985 (not to be confused with MERLIN reactor at Aldermaston). A DIDO class reactor simply called DIDO operating from 1962 (not to be confused with the original DIDO at Harwell Research Establishment), 32/38 PRiR Nr 13 - FZJ In 1990 the institute was renamed to the more neutral name as other fields of research were added in the meantime. More recently it has become involved in a number of Grid computing projects, such as UNICORE, DEISA and EUROGRID. It is also part of the European Gauss Centre for Supercomputing. Recent scientific breakthroughs at the research centre include the discovery of the Giant magnetoresistive effect in 1988 (simultaneously with the Université de Paris Sud). 33/38 PRiR Przygotował: Lucjan Stapp 11
88 Zeus Cyfronet Klaster obliczeniowy - Zeus Klaster Zeus jest przeznaczony do obliczeń naukowych w projekcie PL-Grid. system operacyjny: Scientific Linux konfiguracja: HP Cluster Platform 3000 BL 2x220 pamięć operacyjna: 18 TB procesory:intel Xeon pamięć dyskowa: 1500 TB moc obliczeniowa: 105 oprogramowanie: Aces3, ADF, ANSYS FLUENT, CFOUR, GAMESS, Gaussian, Gromacs, Maple, Mathematica, Matlab, Molcas, NAMD, NWChem, OOMF, Turbomole. 34/38 PRiR 88 Zeus Cyfronet więcej informacji: http://www.cyfronet.pl/uslugi_obliczeniowe/?a=rack 35/38 PRiR Wykorzystywane systemy operacyjne Forget UNIX - it will be gone in 5 years. Tom Jermoluk, SGI (1990s) 36/38 PRiR Przygotował: Lucjan Stapp 12
Rozwój wydajności do 2009 37/38 PRiR Przewidywany rozwój wydajności 38/38 PRiR Przygotował: Lucjan Stapp 13