• Nie Znaleziono Wyników

Wstęp. Procesy i wątki.

N/A
N/A
Protected

Academic year: 2021

Share "Wstęp. Procesy i wątki."

Copied!
14
0
0

Pełen tekst

(1)

Krzysztof Banaś Przetwarzanie współbieżne, równoległe i rozproszone 1

Wstęp.

Procesy i wątki.

(2)

Cel zajęć

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów równoległych

Przedstawienie sprzętu wykorzystywanego do obliczeń równoległych

Nauczenie sposobów tworzenia i implementacji algorytmów równoległych

Zapoznanie z technikami analizy programów równoległych oraz rozwiązywania pojawiających się w nich problemów

programistycznych

Przedstawienie wybranych dziedzin zastosowań przetwarzania

równoległego oraz występujących tam algorytmów

(3)

Krzysztof Banaś Obliczenia równoległe 3

Po co obliczenia równoległe ?

Lepsze wykorzystanie

dostępnego sprzętu

(4)

Po co obliczenia równoległe ?

Zwiększenie maksymalnej

mocy obliczeniowej

(5)

Krzysztof Banaś Obliczenia równoległe 5

Motywacja

(6)

Historia i pojęcia wstępne

Obliczenia równoległe:

dwa lub więcej procesów (wątków) jednocześnie współpracuje (komunikując się wzajemnie) w celu rozwiązania pojedynczego zadania (najczęściej z określonej dziedziny zastosowań)

rozwój związany z powstaniem w latach siedemdziesiątych komputerów równoległych

problemy obliczeń równoległych (poza klasycznymi zagadnieniami współbieżności) są najczęściej związane z konkretnymi algorytmami

obliczenia równoległe były silnie związane z dziedziną obliczeń wysokiej wydajności (i obliczeniami naukowo-technicznymi)

dziś, w czasach procesorów wielordzeniowych,

programowanie równoległe jest koniecznością - przetwarzanie równoległe jest jedynym sposobem wykorzystania pełnej mocy współczesnego sprzętu

(7)

Krzysztof Banaś Obliczenia równoległe 7

Klasyfikacja Flynna

Zwielokrotnienie strumieni przetwarzania rozkazów i danych

klasyfikacja Flynna

SISD (oryginalna architektura von Neumanna)

SIMD – jeden strumień rozkazów i wiele strumieni danych

MISD – wiele strumieni rozkazów i jeden strumień danych – nie

stosowane w praktyce (nie jest to przetwarzanie potokowe, gdzie różne rozkazy są wykonywane na tym samym egzemplarzu danych, ale w kolejnych chwilach czasu )

MIMD – wiele strumieni danych i wiele strumieni rozkazów

współczesne systemy komputerowe są złożone, realizują zazwyczaj różne typy przetwarzania, z pojedynczymi elementami odpowiadającymi

architekturom SISD, SIMD oraz całością odpowiadającą architekturze MIMD – z pamięcią wspólna lub rozproszoną

(8)

Rodzaje przetwarzania równoległego

Równoległość na poziomie:

pojedynczego rozkazu (instruction level parallelism - ILP) – potokowość, superskalarność – poza kontrolą programisty, w gestii projektanta

procesora

sekwencji rozkazów tworzących zadanie (task level parallelism), pętli (loop level parallelism) – w gestii programisty i twórców kompilatorów – wykorzystanie wątków (thread level parallelism) i procesów

• rozdział kolejno wykonywanych rozkazów pomiędzy procesory/rdzenie

• podział zadania obliczeniowego na podzadania, przydział poszczególnych zadań procesorom/rdzeniom

programów (job level parallelism) – jednoczesne wykonywanie

niezależnych programów przez system operacyjny (OS level parallelism) – w gestii projektantów systemów komputerowych (m.in. systemów

(9)

Krzysztof Banaś Przetwarzanie współbieżne, równoległe i rozproszone 9

Narzędzia programowania

Praktyczne alternatywy implementacji równoległej:

programowanie sekwencyjne ze zrównolegleniem niejawnym:

poprzez układ procesora superskalarnego

poprzez automatyczny kompilator zrównoleglający

programowanie w językach równoległości danych

programowanie w modelu z pamięcią wspólną

programowanie w modelu z przesyłaniem komunikatów

programowanie w modelu przerzucenia (offload) części obliczeń na układ wspomagający (koprocesor, akcelerator)

programowanie w rozmaitych modelach hybrydowych (łączących cechy modeli powyższych)

(10)

C/C++/Java/C# itp., itd.

(źródło - www.tiobe.com)

(11)

Krzysztof Banaś Obliczenia równoległe 11

Historia i pojęcia wstępne

Przetwarzanie współbieżne

realizacja wielu programów (procesów) w taki sposób, że ich trwanie od momentu rozpoczęcia do momentu zakończenia może się na siebie nakładać

współbieżność pojawiła się wraz z wielozadaniowymi

systemami operacyjnymi (lata 60-te, Multics – 1965) i nie wymusza równoległości

współbieżność związana jest z szeregiem problemów

teoretycznych wynikłych z prób realizacji wielozadaniowych systemów operacyjnych

istnieje wiele mechanizmów niskiego poziomu

(systemowych) do rozwiązywania problemów współbieżności

(12)

Procesy

Proces (jednowątkowy / wielowątkowy):

ciąg rozkazów (wątek główny) / ciągi rozkazów (wątek główny i inne wątki)

stos (wątku głównego) / odrębne stosy dla każdego wątku

przestrzeń adresowa

dodatkowe elementy tworzące m.in. kontekst procesu

Tworzenie procesu:

pid_t fork( void )

int execv(const char *filename, char *const argv [])

pid_t wait(pid_t pid, int *status)

(13)

Krzysztof Banaś Przetwarzanie współbieżne, równoległe i rozproszone 13

Tworzenie procesów

main(){

pid = fork();

if(pid==0){

wyn = execl(...); // np. execl(„/usr/bin/ls”, (char *) 0);

if(wyn==....) ....;

} else {

wyn = wait(&stan);

(if stan==....)....;

}

}

uwaga: zachowanie zmiennych (w tym globalnych)

(14)

Wątki

Wątek

ciąg rozkazów

stos

niektóre z elementów tworzących kontekst procesu

Tworzenie wątku (Linux):

int clone(int (*fn)(void *), void *child_stack, int flags, void *arg)

Przyczyna wprowadzenia wątków: łatwość komunikacji przy

użyciu pamięci wspólnej i wydajność przełączania kontekstu

Cytaty

Powiązane dokumenty

Środki finansowe na realizację Gminnego Programu Rozwiązywania Problemów Alkoholowych oraz Przeciwdziałania Narkomanii pochodzą z opłat za korzystanie z

Biorąc pod uwagę powyższe, to na wójcie, burmistrzu, prezydencie ciąży obowiązek zapewnienia, aby przetwarzanie danych przez gminne komisje odbywało się zgod- nie z RODO. W

Techniki biologii molekularnej wykorzystywane w diagnostyce chorób metabolicznych i zaburzeń wydzielania wewnętrznego.. Kod modułu wg standardów od A

Jeżeli w różnych perm utacjach,... ustalone przekształcenia rozw iąza nia

Przed- miotem mojej pracy nie jest jednak analiza historyczna, traktuję zatem Analekta jako całościowy materiał, który – mimo iż był kompilowany przez wiele pokoleń –

Student bardzo dobrze opanował wiedzę z zakresu otrzymywania promieniowania rentgenowskiego i jego oddziaływania z materią - umie interpretować widma promieniowania,

Student bardzo dobrze opanował wiedzę z zakresu zachodzących zjawisk na powierzchni. materiału podczas wytwarzani warstw i poszerza wiedzę przy użyciu

Proponowane programy są bardzo łatwe w obsłudze, nie potrzebują dużych wymagań sprzętowych a zasobne biblioteki elementów elektrycznych i elektronicznych pozwolą na