Co to jest lista top500 Lista top500 to lista 500 najbardziej wydajnych systemów komputerowych na świecie. Lista uaktualniana jest 2 razy do roku. Głównym celem listy top500 jest możliwość śledzenia postępu jaki ma miejsce w HPC. Wydajność komputerów mierzona jest przy pomocy benchmarka HPL(High-Performance LINPACK), przenośnego benchmarka, przeznaczonego dla komputerów z pamięcią rozproszoną. Omów mikrotechnologię Core Intel Core microarchitecture (wcześniej znana jako Intel Next-Generation Micro- Architecture, lub NGMA) jest architekturą wielordzeniowych procesorów. Charakteryzuje się mniejszym zużyciem energii. Architektura ta posiada wiele rdzeni, wspiera sprzętową wirtualizację oraz technologię Intel 64 oraz SSSE3. Pierwszymi procesorami, które oparte były na tej architekturze był procesor o nazwie kodowej Merom, Conroe oraz Woodcrest. Pomimo tej samej architektury, te trzy linie procesorów różniły się wykorzystywanymi gniazdami, szybkościami magistrali oraz zużyciem energii. Procesory mainstream owe wykorzystujące tą architekturę to Pentium Dual Core oraz low-endowe Celerony. Ponad to procesory wykorzystujące tą architekturę to przeznaczone do serwerów Xeony, oraz desktopowe i mobilne Core2. Pomimo swej mylącej nazwy procesory IntelCore nie wykorzystują mikroarchitektury Core. Intel Core Microarchitecture jest zaprojektowana w całości od nowa. Ilość kroków w jednym potoku wynosi w przypadku tych układów 14, co oznacza znaczne zmniejszenie z liczby 31 kroków stosowanych w rdzeniach Prescott. Nowa architektura jest zaprojektowana tak, aby obydwa rdzenie korzystały z tej samej pamięci podręcznej drugiego (L2) poziomu i oddzielnych banków pamięci podręcznej pierwszego (L1) poziomu. Pozwala to na osiągnięcie korzystnego przelicznika pobieranej mocy na oferowane możliwości. Jedną z nowych technologii zastosowanych przy projektowaniu układów serii Core jest Macro-Ops Fusion, która łączy dwie instrukcje typu x86 w jedną "mikroinstrukcję". Przykładem niech będzie operacja kopiowania poprzedzona zamianą: obydwie instrukcje zostaną złożone w jeden rozkaz. Inna z zastosowanych technologii umożliwia odczytanie każdej ze 128-bitowych instrukcji SSE w ciągu jednego cyklu zegara (wcześniej wymagało to dwóch cykli) W takim wypadku procesor dokona inicjalizacji wszystkich komponentów i postawi je w stan oczekiwania, który umożliwi natychmiastowe uruchomienie procesu z pełną wydajnością. Pozwala to jednostce wytwarzać mniej ciepła i tym samym zmniejsza jej zapotrzebowanie na energię. Intel twierdzi, że znacznie zmniejszył zużycie energii swoich nowych układów - średnie zużycie energii waha się pomiędzy 1 a 2 watami w wersjach pracujących z obniżonym napięciem, zaś wskaźniki Thermal Design Point (TDP) zostały przez Intela ustalone na poziomie 60 watów w przypadku Conroe i 80 watów dla Woodcrest. Te wyniki mają jednak szansę jeszcze się zmienić. Dla porównania, układ AMD Opteron 875HE pobiera tylko 55 watów mocy. Merom, wariant mobilny procesorów Core, według producenta pobiera 35 watów w wersji standardowej oraz 5 watów w wersji Ultra Low Voltage (ULV)
Omów metody poprawy wydajności procesora HyperThreading (hiperwątkowość) - Powoduje ona, że procesor jednordzeniowy jest widziany przez system jako jednostka z podwójnym jądrem, a komputer staje się wieloprocesorowy. Technologia ta sprawia, że CPU pracuje z dwoma niezależnymi wątkami na raz, a nie jeden po drugim. Ma to znaczenie, jeśli obciążymy komputer wieloma programami. Pomimo fizycznej obecności jednego rdzenia, rozkazy rozdzielone są pomiędzy dwa wątki, co przyśpiesza ich wykonywanie przez procesor. Elementy powielone: rejestry systemowe, jednostki kontroli Współdzielone zasoby: Trace Cache, Data Caches, Jednostki wykonawcze Multithreading (Wielowątkowość) oznacza możliwość jednoczesnego wykonywania wielu wątków sprzętowych na pojedynczej jednostce wykonawczej rdzeniu. Wielowątkowość w procesorach możliwa jest dzięki temu że nie wszystkie części jednostki wykonawczej są w jednakowym stopniu wykorzystywane przez pojedynczy wątek (ciąg instrukcji). Nieaktywne części jednostki wykonawczej mogą w tym czasie wykonywać inny wątek zwiększając efektywność wykorzystania całego procesora. W zależności od rodzaju technik zastosowanych do obsługi dodatkowych wątków sprzętowych spotyka się od 2 (najczęściej) do nawet 8 wątków sprzętowych na pojedynczy rdzeń procesora (core). Potokowość (ang. pipelining) technika budowy procesorów polegająca na podziale logiki procesora odpowiedzialnej za proces wykonywania programu (instrukcji procesora) na specjalizowane grupy w taki sposób, aby każda z grup wykonywała część pracy związanej z wykonaniem rozkazu. Grupy te są połączone sekwencyjnie potok (ang. pipe) i wykonują pracę równocześnie, pobierając dane od poprzedniego elementu w sekwencji. W każdej z tych grup rozkaz jest na innym stadium wykonania. Można to porównać do taśmy produkcyjnej. Zmniejszanie procesu technologicznego a co za tym idzie zwiększenie gęstości upakowania tranzystorów, zmniejszenie mocy przełączania tranzystorów, zwiększenie szybkości przełączania tranzystorów Zwiększanie liczby rdzeni wydajność jaką można uzyskać poprze zwiększenie ilości procesorów, jest silnie uzależniona od algorytmów oraz implementacji programów. W szczególności, możliwe do uzyskania korzyści są ograniczone przez oprogramowanie, które może zostać zrównoleglone do pracy na wielu rdzeniach jednocześnie. Ten efekt jest opisany przez prawo Amdahla. Nie wiedziałem czy superskalarnosc też tu pasuje, bo nie wiem czy ona nie obejmuje potokowości itp.
Wymień sposoby klasyfikacji maszyn wieloprocesorowych. Luźno powiązane systemy wieloprocesorowe Każdy procesor ma własną pamięć główną i kanały wejścia-wyjścia. Procesory wyspecjalizowane funkcjonalnie Istnieje główny procesor i pomocnicze, które są przez niego sterowane. Silnie powiązane systemy wieloprocesorowe - Zbiór procesorów o wspólnej pamięci głównej pod kontrolą jednego systemu operacyjnego. Systemy z przetwarzaniem równoległym Silnie powiązane systemy wieloprocesorowe, które mogą współpracować, pracując równolegle nad jednym zadaniem. Omów SMP oraz MPP SMP (ang. Symmetric Multiprocessing, przetwarzanie symetryczne) - architektura komputerowa, która pozwala na znaczne zwiększenie mocy obliczeniowej systemu komputerowego poprzez wykorzystanie 2 lub więcej procesorów do jednoczesnego wykonywania zadań. W architekturze SMP każdy procesor może zostać przypisany do wykonywania każdego zadania, tak aby wyrównać obciążenie ("obowiązki" są dzielone "po równo"). W architekturze SMP procesory te współdzielą zasoby pamięci oraz wejścia/wyjścia przy pomocy magistrali. Ważną rzeczą jest wykorzystanie wielowątkowości przez programy komputerowe (oraz obsługa wielowątkowości przez system operacyjny) - upraszcza to możliwość "podzielenia" procesu dla kilku procesorów. Szczególną korzyść z przetwarzania równoległego czerpią aplikacje do renderingu i edycji wideo oraz nowoczesne gry, małą natomiast pakiety biurowe.
Massive parallel processing (MPP) is a term used in computer architecture to refer to a computer system with many independent arithmetic units or entire microprocessors, that run in parallel. The term massive connotes hundreds if not thousands of such units. Early examples of such a system are the Distributed Array Processor, the Goodyear MPP, the Connection Machine, and the Ultracomputer. Some years ago many of the most powerful supercomputers were MPP systems. In this class of computing, all of the processing elements are connected together to be one very large computer. This is in contrast to distributed computing where massive numbers of separate computers are used to solve a single problem. The earliest massively parallel processing systems all used serial computers as individual processing elements, in order to achieve the maximum number of independent units for a given size and cost. Omów sposoby określania wydajności komputerów Cel: określić jak sprawnie (szybko) komputer będzie realizował wyznaczone zadania. Miary oparte na charakterystykach sprzętu Częstotliwość zegara Drożność procesora Przepustowość magistrali pamięćprocesor MIPS, MFLOPS (teoretyczne) nie uwzględniają złożoności działania komputerów dla najważniejszych i najpopularniejszych programów użytkowych Miary oparte na parametrach wykonania specjalnie zaprojektowanych programów wzorcowych benchmarków komputerowych Rodzaje programów wzorcowych: Własne: najlepsze, lecz wymagają osobistego testowania, co z kolei wymaga czasu, pieniędzy i dostępu do systemów Nieformalne: opracowywane przez grupy użytkowników (np. LINPACK, STREAM) Przemysłowe: utrzymywane przez organizacje (np. SPEC, TPC), firmy i instytucje Podział ze względu na charakter zadań testowych: Algorytmy np. LINPACK Aplikacje np. testy SPEC
Specyfikacje np. testy TPC Taxonomia Flynna: SIMD SISD (VON NEUMANN) MIMD MISD Modele programowania równoległego: Message Passing przesyłanie komunikatów Data parallelism równoległość danych ( a także Single Program Multiple Data SPMD ) Shared memory wspólna pamięć Maly słowniczek: NUMA - Non-Uniform Memory Access - architektura komputerowa, służąca do przetwarzania współbieżnego. Architektura NUMA charakteryzuje się tym, że udostępnia użytkownikowi spójną logicznie przestrzeń adresową, chociaż pamięć jest fizycznie podzielona. Komputery zbudowane w tej architekturze posiadają wiele procesorów.niejednorodność w dostępie do pamięci polega na tym, że dany
procesor szybciej uzyskuje dostęp do swojej lokalnej pamięci, niż do pamięci pozostałych procesorów lub pamięci współdzielonej. CC-NUMA (ang. Cache Coherent Non-Uniform Memory Access) - maszyny o takiej architekturze są maszynami o "niejednorodnym dostępie do pamięci, ze spójną pamięcią podręczną". Udostępniają użytkownikowi spójną logicznie przestrzeń adresową, pomimo tego, że pamięć jest fizycznie podzielona. Komputery zbudowane w tej architekturze posiadają wiele procesorów. Niejednorodność w dostępie do pamięci polega na tym, że procesor uzyskuje szybciej dostęp do pamięci swojej niż do innych. W wieloprocesorach typu NUMA istnieje pojedyncza wirtualna przestrzeń adresowa widoczna przez wszystkie procesory. Wartość zapisana, przez dowolny procesor jest natychmiastowo widoczna dla wszystkich pozostałych, dlatego też następna operacja odczytu z tej komórki pamięci przez dowolny procesor poda właśnie tą wartość. W CC-NUMA pamięci podręczne musza być spójne. Spójność ta jest zrealizowana za pomocą dodatkowego sprzętu oraz protokołu. Wykorzystywany do tego jest katalog czyli dodatkowa pamięć, która służy do zapamiętywania faktu pobrania danych z pamięci i przesłania ich do węzła lub w bardziej skomplikowanych przypadkach miejsca pobytu wszystkich kopii danych. Amdahl's law, also known as Amdahl's argument,[1] is named after computer architect Gene Amdahl, and is used to find the maximum expected improvement to an overall system when only part of the system is improved. It is often used in parallel computing to predict the theoretical maximum speedup using multiple processors. The speedup of a program using multiple processors in parallel computing is limited by the time needed for the sequential fraction of the program. For example, if a program needs 20 hours using a single processor core, and a particular portion of 1 hour cannot be parallelized, while the remaining promising portion of 19 hours (95%) can be parallelized, then regardless of how many processors we devote to a parallelized execution of this program, the minimum execution time cannot be less than that critical 1 hour.