LITERATURA M.Ben-Ari, Podstawy programowania współbieżnego i rozproszonego, WN-T, 1996 I.Foster, Designing and Building parallel programs, Cocepts and.

Slides:



Advertisements
Podobne prezentacje
20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
Advertisements

JĘZYK VHDL Geneza: komputerowa symulacja układu cyfrowego, Departament Obrony USA opis skomplikowanego systemu w postaci schematu jest nieczytelny, szybkie.
Klasyfikacja danych Metoda hierarchiczne
Programowanie w PMC.
Sortowanie przez scalanie
Podstawowe pojęcia programowania współbieżnego
Zadania jednorodne 5.A.Modele przetwarzania równoległego
Architektura SAP R/3 Wybrane zagadnienia.
METODY ANALIZY PROGRAMÓW
Metody rozwiązywania układów równań liniowych
Obliczenia równoległe
Programowanie I Rekurencja.
Zadanie z dekompozycji
PROMIENIE KANALIKOWE, SPEKTROGRAFIA MASOWA
Systemy Rozproszone Wprowadzenie.
Techniki konstrukcji algorytmów
PROGRAMOWANIE STRUKTURALNE
Systemy Równoległe.
Zrównoleglanie programu sekwencyjnego
Wprowadzenie System rozproszony jest kolekcją niezależnych, autonomicznych komputerów, które dla użytkownika prezentują się jak jeden komputer. Można wyróżnic.
Architektury komputerów (1)
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 4: Wyrażenia i operatory. Podstawowe instrukcje języka.
ZŁOŻONOŚĆ ALGORYTMÓW RÓWNOLEGŁYCH
Wykład nr 1: Wprowadzenie. Pojęcia podstawowe
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Systemy operacyjne.
Magistrala & mostki PN/PD
Inżynieria Oprogramowania dla Fizyków
Pomiary w inżynierii oprogramowania
Pomiary w inżynierii oprogramowania
Instytut Fizyki Teoretycznej
Programowanie współbieżne i rozproszone
TEORETYCZNE MODELE KOMPUTERÓW RÓWNOLEGŁYCH
Programowanie współbieżne
Zastosowanie technologii CUDA w sztucznej inteligencji
POZNAŃ SUPERCOMPUTING AND NETWORKING CENTER WP 2.1 Zdalny dostęp do bibliotek naukowych Udział w projekcie: 6,51% Osoby kontaktowe: PCSS: Maciej Brzeźniak.
Komputery macierzowe.
Parallel Extension czyli programowanie równoległe != współbieżne na platformie .NET Framework 4.0 Wojciech Grześkowiak
Równoległe algorytmy genetyczne w optymalizacji kombinatorycznej
Interfejsy urządzeń peryferyjnych
Wstęp do algorytmiki Program ELI Marek Magiera
Programowanie obiektowe III rok EiT dr inż. Jerzy Kotowski Wykład VIII.
Programowanie obiektowe III rok EiT dr inż. Jerzy Kotowski Wykład IX.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Użytkowanie i programowanie Matlaba
S IMON SAYS … A RCHITECTURE ! Usługi zdalne Technologie, techniki i praktyki implementacji.
W ą t e k (lekki proces) thread.
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
Algorytmika.
Procesor, pamięć, przerwania, WE/WY, …
Algorytmy- Wprowadzenie do programowania
Java profiler based on byte code analysis and instrumentation for apdaptation the source code in many-core hardware accelerators Marcin Pietroń, Dominik.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Algorytmy równoległe Algorytm równoległy pozwala na wykonywanie w danej chwili więcej niż jednej operacji. EREW - wyłączny odczyt i wyłączny zapis; CREW.
Metody komunikacji i synchronizacji w obliczeniach równoległych Michał Radziszewski.
WPROWADZENIE DO MIKROPROCESORÓW. Klasyfikacja mikroprocesorów SIMD – ang. Single Instruction Multiple Data SISD – ang. Single Instruction Single Data.
Temat 3: Podstawy programowania Algorytmy – 2 z 2 _________________________________________________________________________________________________________________.
Wstęp do programowania Wykład 1
Wstęp do programowania Wykład 7
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Metody analizy wydajności i precyzji oprogramowania Wojciech Matuszewski.
Algorytmy i Struktury Danych Algorithms and Data Structures dr inż. Lech Jamroż Wydział Fizyki, Matematyki I Informatyki.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Efektywność algorytmów
Podział mikroprocesorów
IEEE SPMP Autor : Tomasz Czwarno
Informacje ogólne Mgr Inż. Jerzy Orlof
Zapis prezentacji:

LITERATURA M.Ben-Ari, Podstawy programowania współbieżnego i rozproszonego, WN-T, 1996 I.Foster, Designing and Building parallel programs, Cocepts and Tools for Parallel Software Engineering, Addison-Wesley Publ.Comp., 1995 , http://www.mcs.anl.gov/dbpp/ V.Kumar,A.Grama, A.Gupta, G.Karypis, Introduction to Parallel Computing. Design and Analysis of Algorithms, The Benjamin/Cummings Publ.Comp.,Inc., 1994. PVM:Parallel Virtual Machine. A Users' Guide and Tutorial for Networked Parallel Computing, A.Geist at al., Ultra60: /STORE/mpi/doc/ pvm-book.ps MPI: A Message Passing Interface Standard Ultra60: /STORE/mpi/doc/mpi.guide.ps J.H.Reif (ed.), Synthesis of parallel Algorithms, Morgan Kaufmann Pub., 1993

STRONA GŁÓWNA PVM : http://www.epm.ornl.gov/pvm STRONA GŁÓWNA MPI : http://www-unix.mcs.anl.gov/mpi

SCHEMAT KOMPUTERA

Próby przyspieszenia obliczeń na maszynach jednoprocesorowych: pamięć z przeplotami potokowość (pipelinning) wektoryzacja rozwijanie pętli

Zagadnienia w obliczeniach równoległych : komputery równoległe algorytmy równoległe jakość algorytmów równoległych języki równoległe narzędzia wspomagające programowanie równoległe przenośność programów równoległych automatyczne oprogramowanie komputerów równoległychh

MULTIKOMPUTER

Klasyfikacja komputerów równoległych w/g FLYNNA : SISD ( Single Instruction stream, Single Data stream) SIMD ( Single Instruction stream , Multiply Data stream ) MISD ( Multiply Instruction stream, Single Data stream ) MIMD ( Multiply Instruction stream, Multiply Data stream )

systemy z pamięcią dzieloną (wspólną) (multiprocesory) shared - memory systems MIMD systemy z pamięcią rozproszoną ( multikomputery) distributed-memory systems

Źródła złożoności programów równoległych : współbieżność ( concurrency ) skalowalność ( scalability ) lokalność ( locality ) modularność ( modularity ) determinizm (determinism)

MODELE PROGRAMOWANIA RÓWNOLEGŁEGO : Równoległość danych ( dla SIMD) Pamięć wspólna (dla MIMD ze wspólną pamięcią ) Przesyłanie komunikatów (dla MIMD z rozproszona pamięcią )

MODEL TASK- CHANNEL

PODSTAWOWE OPERACJE

PRZYKŁAD DANE: X(0)  RN , N  0 , X(0) = ( X0(0), ... , XN-1(0) ); T  N WYNIK : X(T) : Xi(t+1) := ( Xi-1(t) + 2Xi(t) + Xi+1(t) ) / 4 0  i  N-1, 0  t < T

MODEL „Task and Channel”

Xi+1 Xi Xi Xi+1 Xi-1 Xi-1 Xi i  0, N-1

KOD dla Zi , i =1, ... N-2 : for t := 0 to T-1 do { Wyślij Xi ‘na lewo’ i ‘na prawo’; Odbierz Xi-1‘z lewej’; Odbierz Xi+1 ‘z prawej’; Oblicz Xi(t+1) ; }

MODEL „Message Passing” Xi+1 Xi Zi Zi+1 Zi-1 Xi Xi+1 Xi-1 Xi-1 Xi i  0, N-1

KOD dla Zi , i =1, ... N-2 : for t := 0 to T-1 do { Wyślij Xi do zadania Zi-1 i Zi+1; Odbierz Xi-1 od zadania Zi-1; Odbierz Xi+1 od zadania Zi+1; Oblicz Xi(t+1) ; }

podział dziedziny (domain decomposition) podział funkcjonalny (functional decomposition)

Podział dziedziny

Podział funkcjonalny

Po zaprojektowaniu podziału sprawdź : Czy ilość zadań jest większa niż liczba procesorów Czy unika się powtarzania obliczeń Czy zadania mają podobny rozmiar Czy ilość zadań zależy od rozmiaru problemu Czy zdefiniowano kilka alternatywnych podziałów

KOMUNIKACJA globalna strukturalna niestrukturalna statyczna dynamiczna lokalna globalna strukturalna niestrukturalna statyczna dynamiczna synchroniczna asynchroniczna

KOMUNIKACJA LOKALNA Metoda Jacobiego i metoda Gaussa-Seidla

KOMUNIKACJA GLOBALNA Równoległa operacja redukcji : S = i =0N-1Xi

Zmiana modelu - rozproszenie komunikacji i obliczeń Si = Xi + Si-1 i = 0 , ... , N-1 Strukturalna komunikacja, statyczna, regularna

Inny model - zastosowanie metody "dziel i zwyciężaj" Komunikacja strukturalna,statyczna, regularna, mała ilość sąsiadów. Dobre rozproszenie danych i obliczeń

KOMUNIKACJA NIESTRUKTURALNA

Po zaprojektowaniu komunikacji sprawdź : Czy wszystkie zadania wykonują mniej więcej taką samą ilość operacji komunikacji Czy każde zadanie komunikuje się z małą liczba sąsiadów Czy komunikacja może przebiegać współbieżnie Czy obliczenia w różnych zadaniach mogą przebiegać współbieżnie

AGLOMERACJA Zwiększanie "rozmiaru" zadania i zmniejszenie ilości przesyłanych danych między zadaniami replikacja obliczeń sklejanie kilku zadań w jedno zadanie

Po zaprojektowaniu aglomeracji sprawdź : Czy aglomeracja zredukowała koszt komunikacji przez zwiększenie lokalności Jeśli aglomeracja wprowadza replikację obliczeń , to czy jest z tego korzyść (mniejszy koszt np.) ......

Cel : zminimalizowanie całkowitego czasu wykonania obliczeń MAPOWANIE Cel : zminimalizowanie całkowitego czasu wykonania obliczeń Podstawowe strategie : Zadania, które mogą wykonywać się współbieżnie umieszczać na różnych procesorach Zadania, które często się komunikują umieścić na jednym procesorze, zwiększając lokalność komunikacji

Jak przydzielać ? : Problem NP - zupełny "Łatwo" : jeśli algorytmy używają techniki podziału dziedziny i jest stała liczba zadań o równym rozmiarze i strukturalnej lokalnej i globalnej komunikacji