wykład 11
Transkrypt
wykład 11
Wykład jest przygotowany dla IV semestru kierunku Elektronika i Telekomunikacja. Studia I stopnia Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie „Innowacyjna dydaktyka bez ograniczeń – zintegrowany rozwój Politechniki Łódzkiej – zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych” Zadanie nr 30 – Dostosowanie kierunku Elektronika i Telekomunikacja do potrzeb rynku pracy i gospodarki opartej na wiedzy 90-924 Łódź, ul. Żeromskiego 116, tel. 042 631 28 83 www.kapitalludzki.p.lodz.pl Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Ocena działania komputera • • • Performance-to-cost-ratio Współczynnik ten powinien być maksymalizowany, czyli jak największe przetwarzanie przy jak najmniejszych kosztach Trzy główne aspekty z punktu zwiększania przetwarzania: - przepustowość procesora (szybkość wykonywania instrukcji) - przepustowość pamięci (szybkość sprawdzania i zapisywania danych i instrukcji) - przepustowość I/O (jak największy strumień przepływu) W zależności od tego, co jest głównym ograniczeniem dla danej aplikacji, jest ona: - processor bound, memory bound, I/O bound [uwięziona przez ..] Architektura komputerów, część 11 2 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Miary oceny działania • • • • • • MIPS – milion instrukcji na sekundę MOPS – milion operacji na sekundę MFLOPS (lub megaflops) – milion operacji zmiennoprzecinkowych na sekundę GFLPS (gigaflops) – miliard operacji zmiennoprzecinkowych na sekundę Teraflops – trylion (1012) operacji zmiennoprzecinkowych na sekundę MLIPS – milion logicznych działań na sekundę Architektura komputerów, część 11 3 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Przykład obliczeń • Cykl instrukcji SHL wymaga 4 małych cykli. Zakładając, że jeden mały cykl zajmuje 1 ns, to: komputer może wykonać 1/(4x10-9) instrukcji SHL na sekundę (IPS), czyli 0,25 x 109 IPS czyli 250 MIPS LDA (Load Indirect) wymaga 12 cykli – co da w wyniku 83,3 MIPS Sprzedawca będzie dążył do podawania przykładu pierwszego, krytyczny klient przytoczy drugi … Żadna z tych miar nie jest obiektywna Architektura komputerów, część 11 4 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Średnia ilość cykli na instrukcję • • • • Arytmetyczna średnia ilość małych cykli przypadających na instrukcję też jest nieobiektywna, gdyż różne instrukcje wykonywane są z różną częstotliwością Wybór średniej ważonej, lub zestawu reprezentatywnych instrukcji będzie wpływał na wynik MIPS Peak rate – podanie największego MIPS dla danego komputera (CPU już szybciej nie wykona żadnej instrukcji) Sustained rate – szybkość uśredniona; najczęściej stosuje się średnią geometryczną (pierwiastek n-tego stopnia z iloczynu n zmiennych) średnią harmoniczną – H = n/(1/a1 + 1/a2 + … + 1/an), która nigdy nie jest wyższa od arytmetycznej i geometrycznej Architektura komputerów, część 11 5 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Współczynnik kosztu (cost factor) • • • • • Koszt jednostkowy podaje się zazwyczaj w dolarach na MIPS lub MFLOPS. Ważne jest by porównanie dotyczyło podobnego poziomu przepustowości architektury Jeżeli wymaga się przynajmniej N MIPS, nie można brać pod uwagę kosztu jednostkowego maszyny, która charakteryzuje się M MIPS gdzie M jest niższe od N Przy porównaniu układów wieloprocesorowych, sieciowych itd., które dopiero trzeba będzie zintegrować do pracy z układami o większej mocy chociaż droższymi, trzeba wziąć pod uwage koszty dostosowania Koszty sprzętu maleją bardzo szybko (ale nigdy nie mogą zostać pominięte; dochodzą tu koszty testowania, konserwacji, wymiany) Koszty oprogramowania rosną; jakieś koszty obsługi również należy do nich doliczyć Architektura komputerów, część 11 6 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego ... • Przy rozważaniu kosztu jednostkowego należy rozważyć również możliwość rozbudowy systemu, przewidywany czas życia itd. • Generalna wskazówka przy budowie systemu: architektura powinna być jak najbardziej ogólna, aby mogła nadawać się do dużej liczby aplikacji, również zmienianych i rozbudowywanych w czasie Architektura komputerów, część 11 7 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Benchmark – wskaźnik działania • • Są to standaryzowane zestawy programów uruchamianych na maszynie w celu oceny jej działania. Wyniki działania benchmark na jednej maszynie mogą być porównane z inną, znaną lub znormalizowaną, podając kryteria takie, jak: - wykorzystanie procesora - wykorzystanie pamięci - przepustowość urządzeń - wykorzystanie urządzeń itd. Nadają się do oceny i porównania sprzętu i oprogramowania, systemów jedno i wieloprocesorowych. Mogą być narzędziem do oceny dokonanych zmian itd Architektura komputerów, część 11 8 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Najczęściej używane benchmark’i • • • Real World/Application Benchmarks: Stosują kod systemowy lub oprogramowania użytkowego zaczerpniętego z rzeczywistego algorytmu. Zazwyczaj posiadają olbrzymie wymagania co do kodu i danych Derived Benchmarks: oparte na algorytmie; są ekstraktem z najważniejszych algorytmów i generują realistyczne dane. Stosowane do analizy odpluskwiania, wewnętrznej inżynierii, do porównań Single Processor Benchmarks: niskiego poziomu, do pomiaru działania podstawowej architektury komputera. Służą do pomiaru teoretycznych parametrów które opisują nadmiarowe lub zbyt wąskie kanały, albo właściwości poszczególnych części sprzętu Architektura komputerów, część 11 9 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego ... • • • Kernel Benchmarks: kody odpowiedzialne za najdłuższe czasy wykonywania (przy najmniejszym rozmiarze kodu); najbardziej znane Linpack – LINear algebra PACage - obliczanie MFLOPS dla rozwiązywania układu równań z podwójną precyzją, w danym języku – C, Java, Fortran… oraz pętle Lawrece’a Livermore’a – MFLPS dla 24 pętli przetwarzających zestaw 1001 lub więcej danych Local Benchmarks: specyficzne dla danego zakładu, miejsca itd. – wytwarzane lokalnie Partial Benchmarks: jak wyżej, ponieważ tylko ich twórca wie, jakiej części i jakiego kodu użył – nie nadają się do żadnych szerszych porównań Architektura komputerów, część 11 10 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego ... • • • Istnieje wiele Benchmarks dla systemu UNIX, np. SPEC (system/standard performance evaluaton cooperative effort) – zawiera 10 scenariuszy i został zaakceptowany przez konsorcjum sprzedawców sprzętu. Wskaźniki dane przez SPEC dotyczą OSG – komputerów stacjonarnych, stacji roboczych i serwerów; GPCG – grafiki i systemów multimediów, HPG – superkomputerów i systemów wieloprocesorowych Synthetic Benchmarks: statystycznie oceniają przybliżone średnie parametry rzeczywistych programów (np. Whetstone Benchmark, lub Dhrystone Benchmark) Benchmarki do oceny architektury równoległej – rekomendacje NIST (National Institute of Standards), lub np. SLALOM (1 minuta pracy – pomiar wykonanych działań Architektura komputerów, część 11 11 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego ... • • • Do porównań architektury RISC i CISC (np. Stanford Small Programs – 8 programów w języku C dla liczb całkowitych i 2 programy dla zmiennoprzecinkowych Transaction Processing Benchmarks: wydawane przez konsorcjum producentów i sprzedawców, oceniające głównie I/O i komunikację I tak dalej, i tak dalej … Architektura komputerów, część 11 12 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Optymalizacja kodu • • • • • • Używanie różnych nazw dla skalarów – powtarzalne części kodu mogą być wywoływane wielokrotnie i są niezależne Unikanie pętli, jeżeli są bardzo krótkie (lepiej przepisać 2 razy linijkę niż wywoływać dwukrotną pętlę z jednej linijki) Łączenie pętli (pętle wywoływane tę sama ilość razy można łączyć w jedną) Pętle, które zawierają zmienne zależne, powinny być jak najkrótsze (nawet kosztem ich dzielenia) Najbardziej wewnętrzna pętla powinna być najdłuższa Unikać krótkich podprogramów (wywołanie podprogramu zabiera 10 – 15 cykli, jeżeli nie przenosi się żadnego argumentu; jeden argument prawie podwaja tę ilość) Architektura komputerów, część 11 13 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Procesy i wątki • • • • • Proces oznacza alokowanie wirtualnego adresu do przechowywania odwzorowania procesu; proces posiada kontrolę nad wydzielonymi zasobami, jak pliki, urządzenia I/O, itd. Wątek (thread, lightweight process) jest ścieżką wykonywania poprzez jeden lub więcej programów – posiada stan wykonywania – zablokowany, biegnący, gotowy (blocked, running, ready) i pierwszeństwo wykonywania; może nakładać się przemiennie z innymi wątkami Kontekst wątku jest zapamiętany, gdy wątek nie jest wykonywany. Wątek ma przydzielony stos i pamięć na lokalne zmienne; ma dostęp do przestrzeni adresowej pamięci i zasobów swojego procesu WSZYSTKIE WĄTKI JEDNEGO PROCESU WSPÓŁDZIELĄ ZASOBY PROCESU Architektura komputerów, część 11 14 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Wątki • • • Kiedy wątek zmienia pozycję w pamięci (współdzielonej), wszystkie pozostałe wątki procesu mają dostęp do pliku otwartego przez niego Każdy wątek ma przydzieloną swoją część stosu jądra (Kernel stack) oprócz stosu użytkownika Zalety: - szybsze jest utworzenie wątku niż procesu (używa przestrzeni adresowej procesu) - szybsze jest zakończenie wątku niż procesu - szybsze jest przełączanie pomiędzy wątkami niż procesami - nadmiar komunikacyjny jest znacznie zmniejszony, gdyż wątki współdzielą zasoby Architektura komputerów, część 11 15 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Zdalne wywoływanie procedury • • • RPC (remote procedure call) – technika, która pozwala programowi na wywołanie podprogramu lub procedury, wykonywanej w innej przestrzeni adresowej, zwykle na innym komputerze Inna nazwa – RMI – remote method invocation Po wykonaniu RPC (i przekazaniu argumentu wywołania do zdalnej procedury), wątek zostaje zablokowany i nie jest przetwarzany aż do uzyskania odpowiedzi, lub upłynięciu założonego czasu. (Klient wysyła żądanie do serwera i czeka) Architektura komputerów, część 11 16 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Możliwości systemów operacyjnych • • • • Pojedynczy proces z pojedynczym wątkiem – np. MS-DOS Pojedynczy proces – wiele wątków – np. wcześniejsze Windows Wiele procesów z pojedynczymi wątkami – np. UNIX Wiele procesów z wieloma wątkami WindowsXP, Solaris … • Jeżeli aplikacja ma działać w ststemie wieloprocesorowym, wymagania współbieżności tłumaczone są na wątki i procesy; treść programu nie zależy od liczby dostępnych procesorów WRAZ Z DODAWANIEM LUB ZABIERANIEM PROCESORÓW APLIKACJA W SPOSÓB PRZEZROCZYSTY ROZKŁADA SIĘ NA WIĘKSZĄ LUB MNIEJSZĄ ILOŚĆ, POPRAWIAJĄC EFEKTYWNOŚĆ WYKONYWANIA • Architektura komputerów, część 11 17 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Przetwarzanie rozproszone • • • • Przy rozproszonym przetwarzaniu zadanie obliczeniowe jest podzielone na mniejsze pod - zadania, z których każde może być wykonywane niezależnie od drugiego – więc równolegle, przez niezależne i zupełnie różne procesory. Jeżeli nie da się tak zdefiniować zadania – nie ma mowy o przetwarzaniu rozproszonym. Po zrealizowaniu zadanych zadań, wyniki zbierane są przez jeden procesor (najczęściej ten, który zainicjował przetwarzanie – wysłał zadania do wszystkich innych procesorów) Czas, który trzeba dołożyć na podział, przesłanie, zebranie wyników powinien być znacznie mniejszy od czasu wykonania całego przetwarzania przez jeden system. Najprostszym modelem przetwarzania rozproszonego jest klient / serwer (jeden serwer i wielu klientów) Architektura komputerów, część 11 18 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Struktura klient/serwer • • Serwer generuje pakiety do wykonania (work packages), które wysyła do klientów, do wykonania Po wykonaniu zadanej pracy, klient wysyła wyniki do serwera • Serwer ma trzy fazy pracy: - inicjalizacja, - utworzenie i dostarczenie pod – zadań do klientów - zbieranie i przetworzenie wyników • Klient ma dwie fazy: - zażądanie zadania i czekanie - wykonanie zadania, przesłanie wyników i przejście w fazę zażądania Architektura komputerów, część 11 19 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego ... • Z punktu widzenia sieci – i serwer i klient są węzłami, a komunikacja między nimi odbywa się tak samo, jak każda inna • Przykład: klienci wykonują żądanie http (zgodnie z protokołem Hypertext Transfer Protocol) do URL (Uniform Resource Locator); serwer przesyła do nich pakiety Pierwsza światowa inicjatywa przetwarzania rozproszonego Search for Extra-Terrestrial Intelligence – poszukiwanie życia we Wszechświecie. Każdy posiadacz komputera (a w sumie zebrało się ich wiele milionów) mógł pobrać fragment danych otrzymywanych przez teleskopy i przeprowadzić w dowolnym czasie na swoim własnym CPU obliczenia; inicjatywa SETI@home stała się prekursorem GRID • Architektura komputerów, część 11 20 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Aplikacja RPC • Trzeba uwzględnić trzy aspekty aplikacji: - specyfikacja protokołu klient/serwer - opracowanie programu klienta - opracowanie programu serwera • Przy przetwarzaniu rozproszonym muszą zostać zdefiniowane i umożliwione łącza między odpowiednimi bibliotekami, autoryzacja i rejestracja • Ponieważ zasoby mogą być współdzielone przez procesory i łącza o różnej prędkości, wydajności itp. Niezbędna jest synchronizacja całego procesu i wzajemnych wyłączeń; szczególnie uważnie należy odnieść się do krytycznych sekcji kodu Architektura komputerów, część 11 21 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Typowe struktury synchronizacji • • Koordynator – algorytm z centralnym serwerem. Jeden z procesów zostaje wybrany na koordynatora. Kiedy proces ma wejść w krytyczna sekcję, wysyła żądanie (z identyfikacją sekcji krytycznej) do koordynatora. Jeżeli żaden inny proces nie jest aktualnie w tej sekcji – otrzymuje pozwolenie od koordynatora, który zaznacza sekcję jako zajętą. Gdy następny proces zażąda wejścia w sekcję – nie otrzyma odpowiedzi (z pozwoleniem), zostanie zablokowany i będzie musiał wejść do kolejki procesów czekających na tę sekcję. Gdy proces kończy korzystanie z krytycznej sekcji, wysyła do Koordynatora sygnał zwalniający i Koordynator daje pozwolenie czekającemu w kolejce (według określonego algorytmu czekania) Wady: wąskie gardło, cały system zależy od błędu – awarii Koordynatora Architektura komputerów, część 11 22 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Rozproszone wzajemne wykluczanie • • • • Kiedy proces ma wejść w krytyczna sekcję, wysyła żądanie (ze swoją identyfikacją, identyfikacją sekcji krytycznej i podaniem czasu time stamp) do WSZYSTKICH procesów w grupie. Czeka na pozwolenie OD WSZYSTKICH procesów Gdy proces otrzymuje żądanie a sam jest w krytycznej sekcji – nie odpowiada, wstawia żądanie do kolejki żądań - gdy nie jest w krytycznej sekcji i nie chce jeszcze tam wchodzić – wysyła pozwolenie - gdy nie jest, ale sam już wysłał żądanie do wszystkich – porównuje czas; wygrywa czas najwcześniejszy Gdy wygrywa czas najwcześniejszy – Zwycięzca nic nie wysyła – odkłada żądania do kolejki a sam wchodzi do krytycznej sekcji Przegrany wysyła pozwolenie Po wyjściu z sekcji proces wysyła pozwolenie do procesów z kolejki i kasuje kolejkę Architektura komputerów, część 11 23 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Pierścień ze znacznikami (Token Ring) • • • • Każdy proces zna swoich sąsiadów w pierścieniu. Struktura jest zamknięta (ostatni graniczy również z pierwszym) Inicjalizacja pierścienia polega na daniu znacznika procesowi z nr 0. Proces, który otrzymuje znacznik (token), może wejść do krytycznej sekcji. Przy wyjściu z niej, lub jeżeli nie wchodzi, przekazuje znacznik następnemu procesowi Tylko jeden proces posiada w danym momencie znacznik Wada: Jeżeli znacznik zostaje utracony – wykrycie tego faktu może dość długo potrwać. Później znacznik musi zostać wygenerowany ponownie. Architektura komputerów, część 11 24 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Grid • • • System, który integruje i zarządza zasobami będącymi pod kontrolą różnych domen (od instytucji po OS) i połączonymi siecią komputerową (np. w zasobach Internetu); używa standardowych, publicznych protokołów i interfejsów ogólnego przeznaczenia (z różnymi procedurami dostępu do zasobów, autoryzacji, uwierzytelniania) oraz dostarcza usług odpowiedniej jakości (QoS, oferuje usługi wyższego poziomu). Celem GRID jest utworzenie wielkiego i potężnego, wirtualnego komputera z ogromnej ilości połączonych, niejednorodnych systemów współdzielących różnego rodzaju zasoby – przy tym PROSTEGO I JEDNOLITEGO W ZARZĄDZANIU W sensie ogólnym "grid computing" oznacza przetwarzanie danych traktowane jako usługa użyteczności publicznej Architektura komputerów, część 11 25 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego ... • • • Od strony usługodawcy ‘grid computing’ oznacza alokację zasobów, współużytkowanie informacji oraz konieczność zapewnienia wysokiej dostępności Idea wciąż się rozwija, wciąż znajdowane są nowe obszary zastosowań Technologię grid computing najwcześniej wprowadzono w branżach finansowej, energetycznej i naukowej Architektura komputerów, część 11 26 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego ZASOBY • • • • • • • Są rozproszone geograficznie Są różnorodne (heterogeniczne) programowo i sprzętowo Dostępność jest zmienna w czasie (dynamiczna) Są potencjalnie zawodne Są w posiadaniu różnych podmiotów – instytucji, organizacji, osób prywatnych Stosują różne wymagania dotyczące bezpieczeństwa Są połączone różną sprzętowo i programowo siecią Architektura komputerów, część 11 27 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Wirtualne organizacje • • • • • Celem tworzenia gridu jest umożliwienie organizacjom wzajemnej wymiany np. mocy obliczeniowej i innych zasobów z zachowaniem lokalnych polityk dostępu i bezpieczeństwa. Tworzone są w ten sposób Wirtualne Organizacje (VO, ang. Virtual Organizations). Użytkownik nie musi wiedzieć na którym serwerze zostaną wykonane jego obliczenia Nie musi znać fizycznego położenia infrastruktury – poza punktem dostępu – portalem Głównym założeniem technologii GRID jest rozdzielenie zadań na poszczególne wątki Opracowywaniem standardów dotyczących techniki grid computing zajmują się np. organizacje Global Grid Forum (GGF) ; The Organization for the Advancement of Structured Information Standards (OASIS) Architektura komputerów, część 11 28 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego CLUSTERIX • • • Pierwszy akademicki GRID w Polsce (12 dużych ośrodków, w tym PŁ) – uruchomiony oficjalnie w grudniu 2004 roku – wtedy mniej więcej na 130 miejscu w świecie pod względem mocy obliczeniowej – 4,4 TFLOPS CLUSTERIX – Krajowy Klaster Linuksowy Obecnie istnieje w Polsce więcej VO; trwają projekty krajowe i międzynarodowe Architektura komputerów, część 11 29 KONIEC CZĘŚCI JEDENASTEJ Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Dr inż. Małgorzata Langer Architektura komputerów „Innowacyjna dydaktyka bez ograniczeń – zintegrowany rozwój Politechniki Łódzkiej – zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych” Zadanie nr 30 – Dostosowanie kierunku Elektronika i Telekomunikacja do potrzeb rynku pracy i gospodarki opartej na wiedzy 90-924 Łódź, ul. Żeromskiego 116, tel. 042 631 28 83 www.kapitalludzki.p.lodz.pl