Programowanie współbieżne Wykład 2. Iwona Kochańska

Podobne dokumenty
4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe

projektowanie systemu

4. Procesy pojęcia podstawowe

Analiza ilościowa w przetwarzaniu równoległym

Zarządzanie procesami i wątkami

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

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015

Analiza efektywności przetwarzania współbieżnego

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Nowoczesne technologie przetwarzania informacji

Procesy, wątki i zasoby

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

Zarządzanie pamięcią w systemie operacyjnym

Proces y i y w i ąt ą ki

1.1 Definicja procesu

Zarządzanie procesorem

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Programowanie współbieżne i rozproszone

Prezentacja systemu RTLinux

Programowanie współbieżne Wstęp do obliczeń równoległych. Rafał Skinderowicz

Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Podstawy Informatyki Systemy sterowane przepływem argumentów

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Podstawy programowania komputerów

Architektura komputerów

Architektura komputerów II - opis przedmiotu

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

Celem wykładu jest wprowadzenie fundamentalnych pojęć, integralnie związanych z systemem operacyjnym, na których opiera się przetwarzanie we

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Wykład 2 Podstawowe pojęcia systemów równoległych, modele równoległości, wydajność obliczeniowa, prawo Amdahla/Gustafsona

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Systemy operacyjne. Paweł Pełczyński

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

LEKCJA TEMAT: Zasada działania komputera.

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów współbieżnych.

Mogą pracować w środowisku: Scentralizowanym -mikrokontroler Rozproszonym sieć sterująca, systemy hierarchiczne. Komunikacja z syst.

Systemy operacyjne III

Numeryczna algebra liniowa

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Systemy Operacyjne - zarządzanie procesami

Wprowadzenie do programowania współbieżnego

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny procesu

Architektura komputerów

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Planowanie przydziału procesora

Równoległość i współbieżność

Równoległość i współbieżność

Architektura potokowa RISC

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Zarządzanie pamięcią operacyjną

Informatyka, systemy, sieci komputerowe

dr inż. Jarosław Forenc

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

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

Architektura i administracja systemów operacyjnych

Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Planowanie przydziału procesora

Planowanie przydziału procesora

Wstęp do programowania 2

Działanie systemu operacyjnego

UKŁADY MIKROPROGRAMOWALNE

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Budowa komputera Komputer computer computare

5. Model komunikujących się procesów, komunikaty

Technologie informacyjne (2) Zdzisław Szyjewski

Budowa Mikrokomputera

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Mikroprocesor Operacje wejścia / wyjścia

Budowa systemów komputerowych

Algorytmy dla maszyny PRAM

Zarządzanie pamięcią operacyjną

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

Podstawy Informatyki Systemy operacyjne

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem.

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Urządzenia wejścia-wyjścia

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

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

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Przełączanie kontekstu. Planista średnioterminowy. Diagram kolejek. Kolejki planowania procesów. Planiści

41. System operacyjny. Postrzeganie systemu operacyjnego przez warstwę oprogramowania użytkowego

Struktury systemów operacyjnych

Diagramy czynności. Widok logiczny. Widok fizyczny

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Budowa i zasada działania komputera. dr Artur Bartoszewski

Analityczne modelowanie systemów równoległych

System operacyjny MACH

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Programowanie współbieżne Wykład 7. Iwona Kochaoska

Transkrypt:

Programowanie współbieżne Wykład 2 Iwona Kochańska

Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas obliczeń dla algorytmu równoległego przy pomocy p procesorów Przyspieszenie (ang. speedup) S(p) Idealnie: S(p)=p (przyspieszenie liniowe), W niektórych sytuacjach (rzadko): S(p)>p (przyspieszenie superliniowe ang. superlinear). Najczęściej: S(p)<p.

Miary skalowalności algorytmu równoległego Wydajność Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas obliczeń dla algorytmu równoległego przy pomocy p procesorów Wydajność (ang. efficiency) E(p) Wydajność jest stosunkiem osiągniętego przyspieszenia do idealnego przyspieszenia liniowego. E(p) = 1 oznacza przyspieszenie liniowe.

Prawo Amdahla Gene Amdahl twórca architektur komputerowych Wywód Amdahla używany jest do znajdowania maksymalnego spodziewanego zwiększenia wydajności całkowitej systemu jeżeli tylko część systemu została ulepszona. Założenia: pewna część programu w ogóle nie ulega przyspieszeniu przez równoległe przetwarzanie danych (przetwarzanie sekwencyjne). pozostała część jest przyspieszona p-krotnie na p procesorach (przyspieszenie liniowe) t s czas sekwencyjnego wykonania całego programu f stosunek czasu wykonania fragmentu nie dającego się przyspieszyć do czasu t s Prawo: zwiększenie szybkości wykonywania się programu przy użyciu wielu procesorów w obliczeniach równoległych jest ograniczane przez czas potrzebny do sekwencyjnego dzielenia programu.

Prawo Amdahla PRZYSPIESZENIE: Źródło: http://aragorn.pb.bialystok.pl/~wkwedlo/pc1.pdf

Prawo Amdahla Dysponując nawet nieskończoną liczbą procesorów, nie można przekroczyć przyspieszenia 1/f!

Prawo Amdahla W rzeczywistych problemach skalowalność jest gorsza od wynikającej z prawa Amdahla. Koszty komunikacji procesorów (rosną wraz ze wzrostem ich liczby) Niezrównoważenie obciążenia (ang. load imbalance) Potrzeba duplikacji obliczeń na różnych procesorach. Istotnym założeniem w prawie Amdahla jest stały rozmiar problemu. To założenie rzadko jest spełnione. Szybkie komputery buduje się po to aby rozwiązywać coraz bardziej skomplikowane problemy

Prawo Gustafsona Prawo Amdahla bazuje na ustalonym obciążeniu roboczym lub znanym rozmiarze problemu. Wynika z tego, że sekwencyjna część programu nie zmienia się wraz z rozmiarem maszyny (np. liczba procesorów), natomiast zrównoleglona część jest równomiernie rozdzielona na n procesorów. Prawo Gustafsona (znane także jako prawo Gustafsona-Barsisa): każdy wystarczająco duży problem może być efektywnie zrównoleglony. S(p) = p α (p-1) α - część procesu, której nie da się zrównoleglić. Prawo Gustafsona odnosi się do wad prawa Amdahla usuwa problem ustalonego rozmiaru problemu lub ustalonego ładowania obliczeń na równoległych procesorach zamiast tego, proponuje koncepcje ustalonego czasu, która prowadzi do skalowanego przyspieszenia.

Podstawowe pojęcia Program - sekwencja symboli opisująca realizowanie obliczeń zgodnie z pewnymi regułami zwanymi językiem programowania, wykonywana przez komputer. Program sekwencyjny program przeznaczony do wykonania przez jeden procesor (rdzeń) pojedynczy przepływ sterowania Program współbieżny (ang. concurrent program) składa się ze zbioru programów sekwencyjnych lub zadań obliczeniowych (ang. task), które mogą być wykonywane równolegle Proces abstrakcja działającego programu. Program może składać się z większej liczby procesów. Każdy nowo powstały proces otrzymuje unikatowy numer, który go jednoznacznie identyfikuje, tzw. PID (od ang. process identifier). Wątek - część programu wykonywana współbieżnie w obrębie jednego procesu; w jednym procesie może istnieć wiele wątków.

Proces Każdemu procesowi przydzielone zostają zasoby: czas procesora, pamięć, dostęp do urządzeń wejścia-wyjścia, pliki. W skład procesu wchodzi: kod programu, licznik rozkazów, stos programu, sekcja danych. Pamięć procesu: heap: pamięć alokowana dynamicznie stack: lokalne zmienne, adresy powrotu, przekazywane parametry data: globalne zmienne i stałe text: kod programu

Proces Proces rozpoczyna wykonywanie w momencie: przełączenia przez jądro systemu operacyjnego przestrzeni adresowej na przestrzeń adresową danego procesu zaprogramowania procesora, by wykonywał kod procesu. Wykonanie procesu musi przebiegać sekwencyjnie. Może przyjmować kilka stanów: aktualnie wykonywany przez procesor, czekający na udostępnienie przez system operacyjny zasobów, uśpiony, przeznaczony do zniszczenia, proces zombie, właśnie tworzony itd.

Proces Blok kontrolny procesu - (ang. Process Control Block (PCB)) to rekord zawierający zestaw informacji o stanie procesu. System operacyjny przechowuje informacje o procesach -w postaci bloków kontrolnych i używa ich do planowania procesów. PCB zawiera następujące informacje:stan procesu, licznik instrukcji, wartości rejestrów procesora, informacje związane z planowaniem, informacje związane z zarządzaniem pamięcią, informacje rozliczeniowe, informacje o stanie wejścia-wyjścia. Gdy proces przechodzi do stanu aktywny jego PCB służy do odtworzenia stanu obliczenia. Gdy proces opuszcza stan aktywny, w PCB zapisuje się stan obliczenia, żeby można je było potem odtworzyć.

Proces Procesy nieaktywne czekają na przydział procesora w kolejkach. W systemie istnieje wiele takich kolejek: kolejka zadań - wszystkie procesy w systemie kolejka gotowych - procesy, które są gotowe do wykonania (ich stan to gotowy) kolejka do urządzenia - dla każdego urządzenia wejścia-wyjścia istnieje osobna kolejka. Procesy mogą przenosić się między kolejkami: po upłynięciu kwantu czasu procesowi odbiera się procesor i umieszcza na końcu kolejki gotowych po przydzieleniu procesowi procesora jest on usuwany z kolejki gotowych. gdy proces zleci wykonanie operacji wejścia-wyjścia, umieszcza się go w kolejce do urządzenia, na którym zlecił operację wejścia-wyjścia. po wykonaniu operacji wejścia-wyjścia, proces trafia z powrotem do kolejki gotowych.

Proces Procesy mogą też oczekiwać w innych kolejkach, np. oczekiwać na jakieś zdarzenie, albo na zakończenie działania procesu potomnego. Do obsługi każdej z tych kategorii oczekiwania służy oddzielna kolejka. Przełączanie kontekstu - zmiana wykonywanego procesu wiąże się ze złożonymi operacjami zapisania stanu obliczenia poprzedniego procesu i odtworzenia stanu obliczeń nowego procesu. Przełączenie kontekstu stanowi istotny narzut na działanie systemu. Planowanie procesów nie może zbyt często powodować zmiany wykonywanego procesu, ponieważ wówczas większość czasu pracy będzie poświęcona na ciągłe przełączanie kontekstu. Szybkość przełączania kontekstu zależy od wsparcia sprzętowego. W pewnych architekturach występuje po kilka zbiorów rejestrów. Wówczas przełączenie kontekstu polega na zmianie wskaźnika bieżącego zestawu rejestrów, nie trzeba ich natomiast zapamiętywać i odtwarzać z PCB.