Równoległa architektura komputerów - modele
Przetwarzanie równoległe zostało opracowane jako skuteczna technologia w nowoczesnych komputerach, aby sprostać wymaganiom dotyczącym wyższej wydajności, niższych kosztów i dokładnych wyników w rzeczywistych zastosowaniach. Współbieżne zdarzenia są powszechne w dzisiejszych komputerach ze względu na praktykę wieloprogramowania, przetwarzania wieloprocesowego lub multikomputera.
Nowoczesne komputery mają potężne i rozbudowane pakiety oprogramowania. Aby przeanalizować rozwój wydajności komputerów, najpierw musimy zrozumieć podstawy rozwoju sprzętu i oprogramowania.
Computer Development Milestones - Istnieją dwa główne etapy rozwoju komputera - mechanical lub electromechanicalCzęści. Współczesne komputery ewoluowały po wprowadzeniu komponentów elektronicznych. Elektrony o wysokiej ruchliwości w komputerach elektronicznych zastąpiły części operacyjne w komputerach mechanicznych. W celu transmisji informacji sygnał elektryczny, który porusza się prawie z prędkością światła, zastąpił mechaniczne koła zębate lub dźwignie.
Elements of Modern computers - Nowoczesny system komputerowy składa się ze sprzętu komputerowego, zestawów instrukcji, programów użytkowych, oprogramowania systemowego i interfejsu użytkownika.
Problemy komputerowe są klasyfikowane jako obliczenia numeryczne, logiczne rozumowanie i przetwarzanie transakcji. Niektóre złożone problemy mogą wymagać połączenia wszystkich trzech trybów przetwarzania.
Evolution of Computer Architecture- W ciągu ostatnich czterech dekad architektura komputerów przeszła rewolucyjne zmiany. Zaczęliśmy od architektury Von Neumanna, a teraz mamy multikomputery i procesory wieloprocesorowe.
Performance of a computer system- Wydajność systemu komputerowego zależy zarówno od możliwości maszyny, jak i zachowania programu. Możliwości maszyny można ulepszyć dzięki lepszej technologii sprzętowej, zaawansowanym funkcjom architektonicznym i wydajnemu zarządzaniu zasobami. Zachowanie programu jest nieprzewidywalne, ponieważ zależy od aplikacji i warunków w czasie wykonywania
Multiprocesory i multikomputery
W tej sekcji omówimy dwa typy komputerów równoległych -
- Multiprocessors
- Multicomputers
Multikomputery z pamięcią współdzieloną
Trzy najpopularniejsze modele wieloprocesorów z pamięcią współdzieloną to -
Jednolity dostęp do pamięci (UMA)
W tym modelu wszystkie procesory równomiernie współużytkują pamięć fizyczną. Wszystkie procesory mają równy czas dostępu do wszystkich słów pamięci. Każdy procesor może mieć prywatną pamięć podręczną. Ta sama zasada obowiązuje dla urządzeń peryferyjnych.
Gdy wszystkie procesory mają równy dostęp do wszystkich urządzeń peryferyjnych, system nazywa się a symmetric multiprocessor. Gdy tylko jeden lub kilka procesorów ma dostęp do urządzeń peryferyjnych, system nosi nazwęasymmetric multiprocessor.
Niejednolity dostęp do pamięci (NUMA)
W modelu wieloprocesorowym NUMA, czas dostępu zależy od lokalizacji słowa pamięci. Tutaj pamięć współdzielona jest fizycznie rozdzielana między wszystkie procesory, zwane pamięcią lokalną. Zbiór wszystkich lokalnych pamięci tworzy globalną przestrzeń adresową, do której mają dostęp wszystkie procesory.
Architektura pamięci podręcznej (COMA)
Model COMA to szczególny przypadek modelu NUMA. Tutaj wszystkie rozproszone główne pamięci są konwertowane na pamięci podręczne.
Distributed - Memory Multicomputers- System z wieloma komputerami z rozproszoną pamięcią składa się z wielu komputerów, zwanych węzłami, połączonych ze sobą siecią przesyłania wiadomości. Każdy węzeł działa jako autonomiczny komputer z procesorem, pamięcią lokalną i czasami urządzeniami we / wy. W takim przypadku wszystkie lokalne pamięci są prywatne i są dostępne tylko dla lokalnych procesorów. Dlatego nazywa się tradycyjne maszynyno-remote-memory-access (NORMA) maszyn.
Komputery wielowektorowe i SIMD
W tej sekcji omówimy superkomputery i procesory równoległe do przetwarzania wektorowego i równoległości danych.
Superkomputery wektorowe
W komputerze wektorowym procesor wektorowy jest dołączony do procesora skalarnego jako funkcja opcjonalna. Komputer hosta najpierw ładuje program i dane do pamięci głównej. Następnie skalarna jednostka sterująca dekoduje wszystkie instrukcje. Jeśli zdekodowane instrukcje są operacjami skalarnymi lub operacjami programu, procesor skalarny wykonuje te operacje przy użyciu skalarnych potoków funkcjonalnych.
Z drugiej strony, jeśli zdekodowane instrukcje są operacjami wektorowymi, wówczas instrukcje zostaną przesłane do jednostki sterującej wektorem.
Superkomputery SIMD
W komputerach SIMD liczba procesorów „N” jest połączonych z jednostką sterującą, a wszystkie procesory mają swoje indywidualne jednostki pamięci. Wszystkie procesory są połączone siecią połączeń.
Modele PRAM i VLSI
Idealny model zapewnia odpowiednią strukturę do tworzenia równoległych algorytmów bez uwzględniania fizycznych ograniczeń lub szczegółów implementacji.
Modele mogą być egzekwowane w celu uzyskania teoretycznych granic wydajności na równoległych komputerach lub w celu oceny złożoności VLSI w obszarze chipa i czasu pracy przed wytworzeniem chipa.
Równoległe maszyny o dostępie swobodnym
Sheperdson i Sturgis (1963) modelowali konwencjonalne komputery jednoprocesorowe jako maszyny o swobodnym dostępie (RAM). Fortune i Wyllie (1978) opracowali model równoległej maszyny o swobodnym dostępie (PRAM) do modelowania wyidealizowanego komputera równoległego z zerowym narzutem dostępu do pamięci i synchronizacją.
Pamięć PRAM z procesorem N ma moduł pamięci współdzielonej. Ta pamięć współdzielona może być scentralizowana lub rozproszona między procesorami. Te procesory działają w zsynchronizowanej pamięci odczytu, pamięci zapisu i cyklu obliczeniowym. Zatem modele te określają sposób obsługi współbieżnych operacji odczytu i zapisu.
Poniżej przedstawiono możliwe operacje aktualizacji pamięci -
Exclusive read (ER) - W tej metodzie w każdym cyklu tylko jeden procesor może czytać z dowolnej lokalizacji pamięci.
Exclusive write (EW) - W tej metodzie co najmniej jeden procesor może jednocześnie zapisywać dane do miejsca w pamięci.
Concurrent read (CR) - Umożliwia wielu procesorom odczyt tych samych informacji z tego samego miejsca w pamięci w tym samym cyklu.
Concurrent write (CW)- Umożliwia jednoczesne operacje zapisu w tej samej lokalizacji pamięci. Aby uniknąć konfliktu zapisu, skonfigurowano pewne zasady.
Model złożoności VLSI
Komputery równoległe wykorzystują chipy VLSI do wytwarzania macierzy procesorów, macierzy pamięci i dużych sieci przełączających.
Obecnie technologie VLSI są dwuwymiarowe. Rozmiar układu VLSI jest proporcjonalny do ilości dostępnej przestrzeni dyskowej (pamięci) w tym układzie.
Możemy obliczyć złożoność przestrzenną algorytmu na podstawie obszaru chipa (A) implementacji chipu VLSI tego algorytmu. Jeśli T jest czasem (opóźnieniem) potrzebnym do wykonania algorytmu, to AT określa górną granicę całkowitej liczby bitów przetwarzanych przez chip (lub we / wy). W przypadku niektórych obliczeń istnieje dolna granica f (s), taka że
W 2 > = O (f (s))
Gdzie A = obszar wióra, a T = czas
Tory rozwoju architektury
Ewolucję komputerów równoległych rozprzestrzeniam wzdłuż następujących ścieżek -
- Wiele ścieżek procesora
- Ścieżka wieloprocesorowa
- Ścieżka z wieloma komputerami
- Wiele ścieżek danych
- Tor wektorowy
- Ścieżka SIMD
- Śledzenie wielu wątków
- Ścieżka wielowątkowa
- Ścieżka przepływu danych
W multiple processor trackZakłada się, że różne wątki są wykonywane jednocześnie na różnych procesorach i komunikują się za pośrednictwem pamięci współdzielonej (ścieżka wieloprocesorowa) lub systemu przekazywania komunikatów (ścieżka wielokomputera).
W multiple data track, zakłada się, że ten sam kod jest wykonywany na ogromnej ilości danych. Odbywa się to poprzez wykonanie tych samych instrukcji na sekwencji elementów danych (ścieżka wektorowa) lub poprzez wykonanie tej samej sekwencji instrukcji na podobnym zestawie danych (ścieżka SIMD).
W multiple threads trackzakłada się, że przeplatane wykonywanie różnych wątków na tym samym procesorze w celu ukrycia opóźnień synchronizacji między wątkami wykonującymi się na różnych procesorach. Przeplatanie wątków może być zgrubne (ścieżka wielowątkowa) lub drobna (ścieżka przepływu danych).