1
Prawo Amdahla to sformułowana przez Gene Amdahla zależność mówiąca, że jeśli część
procesu zajmująca aktualnie
x
×
100%
czasu zostanie przyspieszona n-krotnie, to cały proces
zostanie przyspieszony jedynie
razy.
Oznacza to, że nawet jeśli uda się bardzo mocno przyspieszyć jakąś część procesu, to ta część,
której przyspieszyć się nie uda, stanie się dominującym składnikiem całkowitego czasu (to samo
można powiedzieć o koszcie, pojemności dyskowej, transferze sieciowym itd.).
2
Na przykład jeśli 90% czasu procesora zajmują operacje arytmetyczne, a 10% dostęp do pamięci,
i operacje te przyspieszone zostaną 10-krotnie (przy niezmienionym czasie dostępu do pamięci),
to po tej zmianie procesor będzie operował tylko
razy szybciej.
Jeśli przyspieszy się je nawet 100-krotnie, wzrost wydajności będzie wynosił tylko
razy, pomimo że prawie wyeliminowany został czas przedtem
dominującego składnika czasu operacji. Nowym dominującym składnikiem stał się bowiem czas
dostępu do pamięci.
Konwencjonalne maszyny sekwencyjne nazywamy SISD (single instruction stream over a data
stream - pojedyńczy strumień instrukcji ponad strumieniem danych). Komputery wektorowe są
wyposażone w skalarną i wektorową architekturę lub pojawiają się jako SIMD (single instruction
stream over multiple data streams - pojedyńczy strumień instrukcji ponad wieloma strumieniami
danych). Dla równoległych komputerów zarezerwowano pojęcie MIMD (multiple instruction
streams over multiple data streams - wiele strumieni instrukcji ponad wieloma strumieniami
danych). Jest jeszcze czwarty rodzaj maszyn - typu MISD (multiple instruction streams over
single data stream - wiele strumieni instrukcji ponad jednym strumieniem danych). Ten sam
strumień danych przepływa przez liniową tablicę procesorów, wykonujących różne strumienie
instrukcji. Ta architektura jest także znana pod inną nazwą - architektura systolic i jest
wykorzystywana do wykonywania skomplikowanych instrukcji w trybie pipelined.
Zakleszczenie (
deadlock) jest pojęciem z
opisującym sytuację, w której co
najmniej dwie różne akcje czekają na siebie nawzajem, więc żadna nie może się zakończyć.
Gracze zdobyli pewne unikatowe warunki niezbędne do wykonania kolejnego ruchu, ale żaden
nie ma wszystkich i gra nie może być kontynuowana. Problem zakleszczenia występuje w
, gdzie wiele zadań w tym samym czasie konkuruje o
wyłączny dostęp do zasobów. Zjawisko jest również ważne w systemach zarządzania
. W pierwszym przypadku zasobami są
(często powiązane z fizycznymi
urządzeniami takimi jak na przykład
), w drugim przypadku
zasobami są obiekty bazy danych, na przykład
(tabele) lub poszczególne
Zakleszczeniu mogą ulec zadania takie jak na przykład
a w bazach danych
3
Zbiór niezależnych komputerów, które są postrzegane przez użytkowników systemu jako jeden
komputer.
Zalety systemów rozproszonych
1. Ekonomiczne - zbiór (mikro) procesorów może mieć lepszy współczynnik ceny do
wydajności (price/performance ratio) niż odpowiadający mu jeden procesor (w dużym
komputerze - mainframe).
2. Szybsze - system rozproszony może mieć więcej mocy obliczeniowej niż system
zcentralizowany.
3. Wykorzystanie faktu iż niektóre aplikacje są z natury rozproszone.
4. Bardziej niezawodne - awaria jednego komputera nie musi prowadzić do awarii całego
systemu.
5. Możliwość przyrostowego rozwoju - stopniowe dodawanie nowych komputerów
zwiększających zasoby systemu.
Wady systemów rozproszonych
1. Stosunkowo nowe podejście, mało doświadczeń z budowy i eksploatacji takich systemów,
brak oprogramowania.
2. Działanie systemu silnie zależy od niezawodności i przepustowości sieci.
3. Autoryzacja dostępu tridniejsza do zaimplementowania.
4
Broadcast- Jeden procesor(root) rozsyła jedną daną do wszytkich.
5
6
7
Funkcja rozproszenia ("scatter") danych między procesami. Działa w ten sposób, że proces
root
rozsyła zawartość
send_buff
między wszystkie procesy. Jest ona dzielona na
p
segmentów, każdy składający się z
send_count
elementów. Pierwszy segment trafia do procesu
0, drugi do procesu 1 itp. Oczywiście argumenty, których nazwy zaczynają się na Send mają
znaczenie tylko dla procesu który jest nadawcą.
8
9
10
11
12
Patrz Master-Slave
13
14
15
16