Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.



Podobne dokumenty
Wydajność programów sekwencyjnych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

System pamięci. Pamięć wirtualna

Architektura komputerów

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Organizacja pamięci współczesnych systemów komputerowych : pojedynczy procesor wielopoziomowa pamięć podręczna pamięć wirtualna

System pamięci. Pamięć wirtualna

Dr inż. hab. Siergiej Fialko, IF-PK,

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

System pamięci. Pamięć wirtualna

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Architektura komputerów

Architektura komputerów

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Systemy operacyjne III

Zarządzanie pamięcią operacyjną

architektura komputerów w. 8 Zarządzanie pamięcią

Schematy zarzadzania pamięcia

Zarządzanie zasobami pamięci

Stronicowanie w systemie pamięci wirtualnej

Zrównoleglenie i przetwarzanie potokowe

dr inż. Jarosław Forenc

Wykład 7. Zarządzanie pamięcią

Budowa Mikrokomputera

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

Ograniczenia efektywności systemu pamięci

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

Podstawy. Pamięć wirtualna. (demand paging)

Architektura komputerów

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Ograniczenia efektywności systemu pamięci

Pamięci. Pamięci DDR DIMM SDR SDRAM

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Architektura systemów informatycznych

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Materiały pomocnicze do laboratorium. 1. Miary oceny efektywności 2. Mnożenie macierzy 3. Znajdowanie liczb pierwszych

Budowa systemów komputerowych

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Tom II: SZCZEGÓŁOWY OPIS PRZEDMIOTU ZAMÓWIENIA (SOPZ): Przedmiotem zamówienia jest dostawa sprzętu infrastruktury serwerowej i sieciowej.

Dydaktyka Informatyki budowa i zasady działania komputera

Zarządzanie pamięcią operacyjną

Architektura mikroprocesorów z rdzeniem ColdFire

Budowa komputera Komputer computer computare

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

Błąd pamięci karty graficznej lub Uszkodzona lub źle podpięta karta graficzna

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

Współpraca procesora ColdFire z pamięcią

Architektura komputerów egzamin końcowy

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego.

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Pamięć wirtualna w AS/400

Urządzenia wejścia-wyjścia

Chipset i magistrala Chipset Mostek północny (ang. Northbridge) Mostek południowy (ang. Southbridge) -

Numeryczna algebra liniowa. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Systemy Operacyjne Pamięć wirtualna cz. 2

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

LEKCJA TEMAT: Zasada działania komputera.

Wydajność obliczeń a architektura procesorów

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Mikroprocesory rodziny INTEL 80x86

Hierarchia pamięci w systemie komputerowym

MATERIAŁY POMOCNICZE DO LABORATORIUM Z PRZETWARZANIA RÓWNOLEGŁEGO KWIECIEŃ 2018

Wydajność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Obliczenia Wysokiej Wydajności

WPROWADZENIE Mikrosterownik mikrokontrolery

Algorytmy dla maszyny PRAM

Wprowadzenie do systemów operacyjnych

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci

Od programu źródłowego do procesu

Architektura komputerów

Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych

Urządzenia zewnętrzne

Przetwarzanie potokowe pipelining

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1

Architektura systemów informatycznych

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż.

Budowa pamięci RAM Parametry: tcl, trcd, trp, tras, tcr występują w specyfikacjach poszczególnych pamięci DRAM. Czym mniejsze są wartości tych

System pamięci. Pamięć podręczna

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Teoretyczne podstawy informatyki

Architektura i administracja systemów operacyjnych

Organizacja pamięci wewnętrznej komputerów

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Zarządzanie pamięcią. Podstawy Wymiana (swapping). Przydział ciągły pamięci. Stronicowanie. Segmentacja. Segmentacja ze stronicowaniem.

Pamięć wirtualna. Jan Tuziemski Źródło części materiałów: os-book.com

Zaleta duża pojemność, niska cena

Architektura systemów komputerowych. Przetwarzanie potokowe I

Transkrypt:

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Organizacja pamięci Organizacja pamięci współczesnych systemów komputerowych pojedynczy procesor wielopoziomowa pamięć podręczna pamięć wirtualna komputery wieloprocesorowe pamięć wspólna (UMA, NUMA, cc NUMA) pamięć rozproszona Krzysztof Banaś, Obliczenia wysokiej wydajności. 2

Wydajność pamięci Parametrami pamięci wykorzystywanymi w oszacowaniach mogą być: czas dostępu do pamięci czas pobrania pojedynczej danej (w rzeczywistości pobrane zostaje do pamięci podręcznej więcej danych ten efekt daje się uwzględnić poprzez współczynnik trafień pamięci podręcznej, trudniej uwzględnić wielobankowość, wielokanałowość pamięci) teoretyczna przepustowość (która? wydajność magistrali (chipsetu), pamięci, sterownika pamięci?) przepustowość z testów układu pamięć procesor (uwzględnia pobieranie z pamięci z optymalnym wykorzystaniem pamięci podręcznej) Krzysztof Banaś, Obliczenia wysokiej wydajności. 3

Parametrami podawanymi przez producentów są: wydajność układu pamięci procesora (kiedyś w GB/s, obecnie w GT/s) wydajność chipsetu wydajność pamięci: częstotliwość i szerokość łącza: 1333 GHz, 64B wydajność: np. PC6400 Przy wydajności pamięci postaci W mem [liczba_dostępów/s] wydajność programu wynosi: GFLOPS = s pm * W mem Krzysztof Banaś, Obliczenia wysokiej wydajności. 4

Wydajność pamięci Przykład: obliczenie iloczynu macierz wektor, rozmiar macierzy nxn, stosunek liczby operacji do optymalnej liczby odniesień, s pm = 1 wydajność pamięci z testów 8GB/s (109 dostępów = liczb podwójnej precyzji na sekundę) założenie: każda liczba pobrana z pamięci z taką właśnie szybkością, każda liczba z algorytmu pobrana tylko raz, nie pobierane żadne inne liczby maksymalna wydajność dla optymalnego wykorzystania pamięci 1GFLOPS Krzysztof Banaś, Obliczenia wysokiej wydajności. 5

Wydajność pamięci Przykład cd.: w algorytmach nieoptymalnych może dojść do niepotrzebnego pobierania danych, ze względu na nieuwzględnienie mechanizmu pamięci podręcznej wersja_2 każdy element macierzy pobrany 8 razy (linia pamięci podręcznej 64B=8 liczb, pobranie każdej liczby powoduje przeładowanie pamięci podręcznej, a więc pobranie jednej potrzebnej i 7 niepotrzebnych liczb, które nie zostaną wykorzystane) s pm = 0.125 maksymalna wydajność 0.125GFLOPS Krzysztof Banaś, Obliczenia wysokiej wydajności. 6

Wydajność pamięci uwagi Dla wszystkich poziomów pamięci obowiązuje reguła: linie pamięci podręcznej, liczby banków pamięci RAM są zazwyczaj potęgami 2 aby uniknąć sporów o pamięć (memory contention) poprzez odwzorowanie kolejno pobieranych danych w tę samą linijkę pamięci podręcznej, ten sam bank pamięci itd. należy unikać wymiarów tablic będących potęgami 2 Krzysztof Banaś, Obliczenia wysokiej wydajności. 7

Pamięć wirtualna Pamięć wirtualna poszerzenie zakresu adresowania pamięci w stosunku do pamięci głównej (fizycznej) dokonywane przez system operacyjny Pamięć główna zawiera tylko fragment przestrzeni adresowej Pamięć główna dzielona jest na ramki, w których zawarte są strony pamięci wirtualnej Jeśli żądana przez procesor strona nie znajduje się w żadnej z ramek pamięci głównej następuje błąd strony (page fault) i podmiana stron (jak podmiana linii w pamięci podręcznej podobne strategie podmiany) Krzysztof Banaś, Obliczenia wysokiej wydajności. 8

Pamięć wirtualna Mechanizm tłumaczenia adresów z wirtualnych na rzeczywiste (uwzględniające stronicowanie pamięci) i sprawdzania czy strony znajdują się w pamięci głównej opiera się na wykorzystaniu tablicy stron Tablica stron może być bardzo duża, a dostęp do niej powinien być szybki do jej przechowywania stosuje się całą hierarchię pamięci, łącznie ze specjalną pamięcią podręczną zwaną buforem translacji adresów (translation lookaside buffer TLB) Krzysztof Banaś, Obliczenia wysokiej wydajności. 9

Pamięć wirtualna W momencie kiedy procesor tłumaczy adres wirtualny na rzeczywisty sprawdza najpierw czy dany wpis znajduje się w pamięci TLB Jeśli nie, następuje obsługa chybienia pamięci TLB Programy zajmujące duże obszary pamięci mogą nie mieścić adresów wszystkich swoich stron w pamięci TLB Aby przeciwdziałać znacznemu spadkowi wydajności (do kilkudziesięciu razy!) w takich przypadkach, można próbować zwiększyć rozmiar pojedynczych stron związanych z programem (współczesne systemy operacyjne zazwyczaj Krzysztof Banaś, Obliczenia wysokiej wydajności. 10

Pamięć wirtualna Procedura obsługi dostępu do pamięci w przypadku błędu strony jest złożona i czasochłonna W programach wysokiej wydajności nie powinno się dopuszczać do błędów stron (poza początkowymi, gdy program i dane po raz pierwszy ładowane są do pamięci) Nie można powodować szamotania (thrashing) ciągłego przeładowywania stron mogącego zużywać ponad 90% czasu CPU Krzysztof Banaś, Obliczenia wysokiej wydajności. 11

Przykład Jak wiele czasu może zająć pobranie jednej liczby z pamięci: translacja adresu z TLB, liczba w L1 kilka taktów zegara translacja adresu: miejsce w tablicy stron poza TLB, poza pamięcią RAM na dysku, strona poza pamięcią RAM na dysku, liczba poza pamięcią podręczną L1, poza pamięcią podręczną L2, w pamięci RAM (przed chwilą pobrana z dysku) kilka milionów taktów zegara Różnica w czasie dostępu: kilka rzędów wielkości Krzysztof Banaś, Obliczenia wysokiej wydajności. 12

Opteron Krzysztof Banaś, Obliczenia wysokiej wydajności. 13

Wydajność pamięci podsumowanie Analizując teoretyczną wydajność danego układu procesorpamięć możemy uzyskać kilka charakterystyk, np.: maksymalną wydajność przetwarzania rozkazów (MIPS jako iloczyn drożności procesora i częstości taktowania) maksymalną wydajność przetwarzania rozkazów zmiennoprzecinkowych (jak wyżej, ale tylko w odniesieniu do operacji zmiennoprzecinkowych MFLOPS) maksymalną przepustowość układu pamięć procesor (wynikającą z częstości taktowania i drożności magistrali oraz własności pamięci MB/s) opóźnienie w dostępie do pamięci (czas dostępu) Krzysztof Banaś, Obliczenia wysokiej wydajności. 14

Wydajność pamięci podsumowanie Podobnie jak złożoność funkcjonowania procesora uniemożliwia określenie jego rzeczywistej wydajności w konkretnym programie, tak złożoność pamięci uniemożliwia szczegółowe szacowanie jej wydajności Dla niektórych algorytmów można posługiwać się pewnymi uproszczonymi modelami i szacować wydajność dla tych modeli, uwzględniając jednocześnie jak wydajność rzeczywista ma się do wydajności modelu Krzysztof Banaś, Obliczenia wysokiej wydajności. 15

Wydajność pamięci podsumowanie Podstawowym parametrem charakteryzującym konkretny program pod względem wykorzystania pamięci jest liczba odniesień do pamięci w programie Często stosowanym wskaźnikiem intensywności korzystania z pamięci jest stosunek liczby operacji na danych do liczby odniesień do pamięci koniecznych do realizacji operacji Dzięki temu wskaźnikowi i parametrom pamięci można obliczyć maksymalną wydajność jaką układ procesorpamięć może uzyskać w danych obliczeniach Krzysztof Banaś, Obliczenia wysokiej wydajności. 16

Wydajność pamięci podsumowanie Rzeczywista wydajność obliczeń jest zawsze mniejsza od optymistycznych oszacowań uzyskanych z analizy działania procesora i układu pamięć procesor Zawsze warto dokonać oszacowania jaka jest każda z tych teoretycznych wydajności dla konkretnego systemu i uzyskać pomiar wydajności rzeczywistej Rzeczywista wydajność na poziomie kilkudziesięciu procent minimum z wydajności teoretycznych oznacza prawidłową implementacje dla danego systemu Krzysztof Banaś, Obliczenia wysokiej wydajności. 17