Konwergencja architektur równoległych
Opracowano równoległe maszyny z kilkoma różnymi architekturami. W tej sekcji omówimy różne równoległe architektury komputerów i charakter ich zbieżności.
Architektura komunikacji
Architektura równoległa wzbogaca konwencjonalne koncepcje architektury komputerowej o architekturę komunikacyjną. Architektura komputera definiuje krytyczne abstrakcje (takie jak granice użytkownika-systemu i sprzętu-oprogramowania) oraz strukturę organizacyjną, podczas gdy architektura komunikacji definiuje podstawowe operacje komunikacyjne i synchronizacyjne. Dotyczy również struktury organizacyjnej.
Model programowania to warstwa wierzchnia. Aplikacje są napisane w modelu programistycznym. Modele programowania równoległego obejmują -
- Wspólna przestrzeń adresowa
- Przekazywanie wiadomości
- Programowanie równoległe danych
Shared addressprogramowanie przypomina korzystanie z tablicy ogłoszeń, gdzie można komunikować się z jedną lub wieloma osobami, umieszczając informacje w określonej lokalizacji, które są udostępniane wszystkim innym osobom. Indywidualna aktywność jest koordynowana poprzez notowanie, kto wykonuje jakie zadanie.
Message passing przypomina rozmowę telefoniczną lub listy, w których określony odbiorca otrzymuje informacje od określonego nadawcy.
Data parallelprogramowanie to zorganizowana forma współpracy. Tutaj kilka osób jednocześnie wykonuje akcję na oddzielnych elementach zbioru danych i udostępnia informacje globalnie.
Pamięć współdzielona
Wieloprocesory z pamięcią współdzieloną to jedna z najważniejszych klas maszyn równoległych. Zapewnia lepszą przepustowość w przypadku obciążeń wieloprogramowych i obsługuje programy równoległe.
W tym przypadku wszystkie systemy komputerowe umożliwiają procesorowi i zestawowi kontrolerów we / wy dostęp do zbioru modułów pamięci poprzez połączenie sprzętowe. Pojemność pamięci jest zwiększana przez dodanie modułów pamięci, a pojemność we / wy jest zwiększana przez dodawanie urządzeń do kontrolera we / wy lub przez dodanie dodatkowego kontrolera we / wy. Wydajność przetwarzania można zwiększyć, czekając na dostępność szybszego procesora lub dodając więcej procesorów.
Wszystkie zasoby są zorganizowane wokół centralnej szyny pamięci. Poprzez mechanizm dostępu do magistrali każdy procesor może uzyskać dostęp do dowolnego adresu fizycznego w systemie. Ponieważ wszystkie procesory są w równej odległości od wszystkich lokalizacji pamięci, czas dostępu lub opóźnienia wszystkich procesorów są takie same w jednej lokalizacji pamięci. To się nazywasymmetric multiprocessor.
Architektura przekazywania wiadomości
Architektura przekazywania wiadomości jest również ważną klasą maszyn równoległych. Zapewnia komunikację między procesorami w postaci jawnych operacji we / wy. W tym przypadku komunikacja jest łączona na poziomie we / wy zamiast w systemie pamięci.
W architekturze przekazywania komunikatów komunikacja z użytkownikiem wykonywana przy użyciu systemu operacyjnego lub wywołań bibliotek, które wykonują wiele czynności niższego poziomu, w tym rzeczywistą operację komunikacyjną. W rezultacie istnieje dystans między modelem programowania a operacjami komunikacyjnymi na fizycznym poziomie sprzętu.
Send i receiveto najczęstsze operacje komunikacyjne na poziomie użytkownika w systemie przekazywania wiadomości. Wyślij określa lokalny bufor danych (który ma być przesłany) i odbierający zdalny procesor. Odbierz określa proces wysyłania i lokalny bufor danych, w którym zostaną umieszczone przesyłane dane. W operacji wysyłania plikidentifier lub a tag jest dołączony do wiadomości, a operacja odbierania określa regułę dopasowania, taką jak określony znacznik z określonego procesora lub dowolny znacznik z dowolnego procesora.
Połączenie wysyłania i pasującego odbioru kończy kopiowanie z pamięci do pamięci. Każdy koniec określa swój lokalny adres danych i zdarzenie synchronizacji parami.
Konwergencja
Rozwój sprzętu i oprogramowania zatarł wyraźną granicę między pamięcią współdzieloną a obozami przekazywania wiadomości. Przekazywanie wiadomości i współdzielona przestrzeń adresowa reprezentują dwa różne modele programowania; każdy daje przejrzysty paradygmat udostępniania, synchronizacji i komunikacji. Jednak podstawowe struktury maszyn zbiegły się w kierunku wspólnej organizacji.
Przetwarzanie równoległe danych
Inna ważna klasa maszyn równoległych jest różnie nazywana - macierze procesorów, architektura równoległa danych i maszyny z jedną instrukcją i wieloma danymi. Główną cechą modelu programowania jest to, że operacje mogą być wykonywane równolegle na każdym elemencie dużej regularnej struktury danych (takiej jak tablica lub macierz).
Języki programowania równoległego danych są zwykle wymuszane przez przeglądanie lokalnej przestrzeni adresowej grupy procesów, po jednym na procesor, tworząc jawną przestrzeń globalną. Ponieważ wszystkie procesory komunikują się ze sobą i istnieje globalny widok wszystkich operacji, można więc użyć wspólnej przestrzeni adresowej lub przekazywania komunikatów.
Podstawowe zagadnienia projektowe
Opracowanie modelu programowania nie może tylko zwiększyć wydajności komputera, ani sam rozwój sprzętu nie może tego zrobić. Jednak rozwój architektury komputera może mieć wpływ na wydajność komputera. Możemy zrozumieć problem projektowy, koncentrując się na tym, jak programy używają maszyny i jakie podstawowe technologie są dostarczane.
W tej sekcji omówimy abstrakcję komunikacji i podstawowe wymagania modelu programowania.
Abstrakcja komunikacji
Abstrakcja komunikacji jest głównym interfejsem między modelem programowania a implementacją systemu. Jest to zestaw instrukcji, który zapewnia platformę, dzięki której ten sam program może działać poprawnie w wielu implementacjach. Operacje na tym poziomie muszą być proste.
Abstrakcja komunikacji jest jak umowa między sprzętem a oprogramowaniem, która pozwala sobie nawzajem na poprawę elastyczności bez wpływu na pracę.
Wymagania dotyczące modelu programowania
Program równoległy ma co najmniej jeden wątek działający na danych. Model programowania równoległego definiuje, jakie dane mogą zawierać wątkiname, który operations można wykonać na nazwanych danych i po jakiej kolejności następują operacje.
Aby potwierdzić, że zależności między programami są wymuszane, program równoległy musi koordynować aktywność swoich wątków.