Metodologia-17.pdf

(531 KB) Pobierz
Komputery równoległe -
Metodologia projektowania
1
1. Paradygmaty programowania równoległego
1.1 Wstęp
Problem podzielić należy na części, z których każda wykonywana będzie
na oddzielnym procesorze.
W idealnym przypadku n procesorów miałoby moc przetwarzania n-razy
większą od pojedynczego procesora. Każdy z procesorów wykonywałby
1/n część obliczeń.
Taki przyrost mocy obliczeniowej jest nieosiągalny z powodów:
1. Trudność w podzieleniu problemu na n równych części dających
się przetwarzać równolegle (istnieją części sekwencyjne).
2. Konieczność przesyłania danych pomiędzy procesami (narzut na
komunikację).
3. Konieczność synchronizacji pomiędzy procesami (czekanie).
Jędrzej Ułasiewicz
PDF created with pdfFactory Pro trial version
www.pdffactory.com
Komputery równoległe -
Metodologia projektowania
2
1.2 Klasyfikacja metod programowania równoległego:
Podział ze względu na
źródło
sterowania:
Programowanie z równoległym sterowaniem
Programowanie z równoległymi danymi
Podział ze względu na sposób komunikacji pomiędzy zadaniami:
Model wątków/procesów komunikujących się poprzez pamięć
dzieloną
Model wątków/procesów komunikujących się poprzez komunikaty
Programowanie z równoległym sterowaniem (ang.
control parallel
programming)
1. Problem dzielony jest na procesy (niekoniecznie identyczne).
2. Procesy dzielone są na procesory tak aby dociążyć je możliwie
równomiernie.
Model ten nazywa się granulacją gruboziarnista (ang.
coarse grain
paralleism).
Programowanie z równoległymi danymi (ang.
data parallel programming)
1. Każdy z procesorów wykonuje te same obliczenia, ale na innym
zbiorze danych.
2. Obliczenia niekoniecznie muszą być synchronizowane.
Model ten nazywa się granulacją drobnoziarnistą (ang.
fine grain
paralleism).
Jędrzej Ułasiewicz
PDF created with pdfFactory Pro trial version
www.pdffactory.com
Komputery równoległe -
Metodologia projektowania
3
1.3 Model programowania z pamięcią dzieloną
Programowanie multiprocesorów musi uwzględniać ich architekturę a w
szczególności charakterystyką dostępu do pamięci:
1. Wszystkie procesory mają dostęp do tego samego obszaru pamięci.
Czas tego dostępu jest:
- Równy dla każdego obszaru pamięci – architektura UMA
- Różny dla różnych obszarów pamięci – architektura NUMA
2. Dostęp do pamięci poprzez instrukcje LOAD i STORE. Jednostki
przesyłania danych to bajty, słowa, bloki.
3. Pamięć jest zbudowana hierarchiczne (CACHE, pamięć główna).
Czas dostępu do pamięci jest:
- Równy dla każdego obszaru pamięci – architektura UMA
- Różny dla różnych obszarów pamięci – architektura NUMA
4. Synchronizacja poprzez atomowe, wspierane sprzętowo operacje jak
muteksy, monitory semafory, pamięć transakcyjną.
5. Narzędzia programowania:
Języki przetwarzania równoległego jak FORTRAN, C, C++
Model wątków operujących na wspólnym obszarze pamięci. Wątki
komunikują się przez wspólną pamięć a wzajemne wykluczanie
zapewnione jest przez monitory, muteksy czy semafory.
OpenMP
Model może być zorganizowany w oparciu o watki lub procesy.
Podstawowe funkcjonalności wymagane w modelu programowania z
pamięcią dzieloną.
1. Narzędzia tworzenia i kończenia wątków lub procesów
2. Synchronizacja dostępu do obszarów pamięci dzielonej (muteksy,
monitory, semafory, pamięć transakcyjna)
Jędrzej Ułasiewicz
PDF created with pdfFactory Pro trial version
www.pdffactory.com
Komputery równoległe -
Metodologia projektowania
4
Sterowanie
Proces
P1
Proces
P2
Proces
P3
P3
Obszar
pamięci
lokalnej
P1
L21
L11
P2
P3
L31
G2
P1
P2
G3
P3
L32
Obszar
pamięci
dzielonej
L12
Rysunek 1-1 Model programowania z pamięcią dzieloną
Jędrzej Ułasiewicz
PDF created with pdfFactory Pro trial version
www.pdffactory.com
Komputery równoległe -
Metodologia projektowania
5
1.4 Model programowania z przekazywaniem
komunikatów
Własności architektury multikomputerów które muszą być uwzględnione
przy programowaniu.
1. Każdy z procesorów ma dostęp tylko do swej lokalnej pamięci.
2. Procesory komunikują się ze sobą poprzez system wejścia /
wyjścia a dalej poprzez sieć połączeń.
Do programowania komputerów z pamięcią lokalną wykorzystywany jest
model procesów komunikujących się poprzez wymianę komunikatów.
Komunikat
Proces
P1
Proces
P2
Proces
P5
Proces
Proces
P3
komputer 1
Proces
P4
komputer 2
Proces
P6
komputer 3
Rysunek 1-2 Model programowania z przekazywaniem komunikatów
Jędrzej Ułasiewicz
PDF created with pdfFactory Pro trial version
www.pdffactory.com
Zgłoś jeśli naruszono regulamin