====== Modele programowania równoległego. ======

===== Modele (praradygmaty) obliczeniowe =====
  * Model z wymianą wiadomości (komunikatów)
  * Model z równoległością danych

==== Model z wymianą wiadomości (komunikatów) ====

  * Message-passing paradigm
  * Explicit parallel programming
Wykorzystuje popularne środowiska obliczeń, np. Parallel Virtual Machine (PVM), Massage Passing Interface (MPI)

**W modelu z wymiana komunikatów** – odrębne procesy współpracują ze sobą w celu rozwiązania danego problemu. Współpraca ta polega na wymianie danych między procesami realizowanej w oparciu o przesyłanie komunikatów.

{{:9.4_image002.jpg}}

Rodzaje komunikatów:
  * jeden-jeden – wymiana komunikatu między procesem wysyłającym i odbierającym
  * jeden-wielu (ang. Broadcast) – jeden proces rozsyła ten sam komunikat do wielu innych procesów
  * wielu- jeden (ang. Reduction) – wiele procesów wysyła komunikat do jednego wybranego procesu

Do przesłania dowolnego komunikatu system musi posiadać następujące informacje:
  * gdzie znajdują się dane do wysłania
  * jaki jest ich typ i rozmiar
  * do którego procesu będzie wysłany
  * gdzie będą przechowane otrzymane dane

Model z wymianą komunikatów powinien:
  * zapewnić równoważenie obciążenia pomiędzy procesorami
  * zminimalizować ilość przesyłanych informacji
  * zminimalizować czas wykonania całego zadania

==== Model z równoległością danych ====
  * Data-parallel programming
  * Implicit parallel programming
  * Data parallelism

Posługuje się językiem programowania wysokiego poziomu\\
Większość współczesnych kompilatorów wyposażona jest w możliwość obliczeń w tym modelu.\\
Przykładami środowisk programowania są: High Performance Fortran (HPF), pFortran, pC, środowisko OpenMP\\

Obecnie nadal większą efektywność obliczeń równoległych uzyskuje się korzystając z modelu wymiany wiadomości.\\

===== Zakres zastosowań powyższych modeli: =====

Model z przesyłaniem komunikatów
  * Sieci stacji roboczych
    * Homogenicznej
    * Heterogenicznej
  * Komputer wieloprocesorowy

Model z równoległością na poziomie danych
  * Komputer wieloprocesorowy

===== Pobierz dokument =====
{{:9.4.doc|9.4.doc}}