Przejdź do zawartości

Prawo Gustafsona: Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
lit.
Funkcja sugerowania linków: dodane 2 linki.
 
(Nie pokazano 17 wersji utworzonych przez 17 użytkowników)
Linia 1: Linia 1:
'''Prawo Gustafsona''' (znane także jako '''prawo Gustafsona-Barsisa''') jest prawem w [[inżynieria komputerowa|inżynierii komputerowej]], które stanowi, że każdy wystarczająco duży problem może być efektywnie [[Obliczenia równoległe|zrównoleglony]]. Prawo Gustafsona jest ścisle związane z [[prawo Amdahla|prawem Amdahla]], które określa limit przyspieszenia spowodowanego zrównolegleniem. Zostało po raz pierwszy sformułowane przez [[John L. Gustafson|J. Gustafsona]] w 1988 roku.
'''Prawo Gustafsona''' (znane także jako '''prawo Gustafsona-Barsisa''') prawo w [[inżynieria komputerowa|inżynierii komputerowej]], które stanowi, że każdy wystarczająco duży problem może być efektywnie [[Obliczenia równoległe|zrównoleglony]]. Prawo Gustafsona jest ściśle związane z [[prawo Amdahla|prawem Amdahla]], które określa limit przyspieszenia spowodowanego zrównolegleniem. Zostało po raz pierwszy sformułowane przez [[John L. Gustafson|J. Gustafsona]] w 1988 roku.
:: <math>S(P) = P - \alpha\cdot(P-1),</math>


gdzie:
:<math>S(P) = P - \alpha\cdot(P-1)</math>.
: <math>P</math> – liczba procesorów,
: <math>S</math> – przyspieszenie,
: <math>\alpha</math> – część procesu, której nie da się zrównoleglić.


Prawo Gustafsona odnosi się do wad [[prawo Amdahla|prawa Amdahla]], które nie jest skalowalne do tego stopnia, aby brać pod uwagę dostępność [[Moc obliczeniowa|mocy obliczeniowej]] przy rozrastaniu się maszyny. Usuwa problem ustalonego rozmiaru problemu lub ustalonego ładowania obliczeń na równoległych procesorach: zamiast tego proponuje koncepcję ustalonego czasu, która prowadzi do skalowanego przyspieszenia.
gdzie ''P'' jest ilością procesorów, ''S'' jest przyspieszeniem a <math>\alpha</math> częścią procesu której nie da się zrównoleglić.


Prawo Amdahla bazuje na ustalonym obciążeniu roboczym lub znanym rozmiarze problemu. Wynika z tego, że sekwencyjna część programu nie zmienia się wraz z rozmiarem maszyny (np. liczba procesorów), natomiast zrównoleglona część jest równomiernie rozdzielona na <math>n</math> procesorów.
Prawo Gustafsona odnosi się do wad [[prawo Amdahla|prawa Amdahla]], które nie jest skalowalne do tego stopnia, aby brać pod uwage dostępność mocy obliczeniowej przy rozrastaniu się maszyny. Usuwa problem ustalonego rozmiaru problemu lub ustalonego ładowania obliczeń na równoległych procesorach: zamiast tego, proponuje koncepcje ustalonego czasu, która prowadzi do skalowanego przyspieszenia.

Prawo Amdahla bazuje na ustalonym obciążeniu roboczym lub znanym rozmiarze problemu. Wynika z tego, że sekwencyjna część programu nie zmienia się wraz z rozmiarem maszyny (np. ilość procesorów), natomiast zrównoleglona część jest równomiernie rozdzielona na n procesorów.


Efektem prawa jest przesunięcie w rozwoju tworzenia zrównoleglających kompilatorów i redukcja szeregowych części rozwiązań w celu poprawy wydajności [[Obliczenia równoległe|systemów równoległych]].
Efektem prawa jest przesunięcie w rozwoju tworzenia zrównoleglających kompilatorów i redukcja szeregowych części rozwiązań w celu poprawy wydajności [[Obliczenia równoległe|systemów równoległych]].


== Implementacja prawa Gustafsona ==
== Interpretacja prawa Gustafsona ==
Niech <math>n</math> będzie miarą rozmiaru problemu.

Niech ''n'' bedzie miarą rozmiaru problemu.


Przetwarzanie programu na równoległym komputerze zostaje zdekomponowane do:
Przetwarzanie programu na równoległym komputerze zostaje zdekomponowane do:
:: <math>a(n) + b(n) = 1,</math>


gdzie:
:<math>a(n) + b(n) = 1</math>
: <math>a</math> – część sekwencyjna,
: <math>b</math> – część równoległa, na razie ignorując narzut.


Na sekwencyjnym komputerze odpowiedni czas przedstawia się jako <math>a(n) + p\cdot b(n),</math> gdzie <math>p</math> jest liczbą procesorów w przypadku zrównoleglenia.
gdzie ''a'' jest częścią sekwencyjną a ''b'' częścią równoległą, na razie ignorując narzut.

Na sekwencyjnym komputerze, odpowiedni czas przedstawia się jako <math>a(n) + p\cdot b(n)</math> gdzie ''p'' jest ilością procesorów w przypadku zrównoleglenia.


W takim przypadku przyspieszenie wynosi:
W takim przypadku przyspieszenie wynosi:
:: <math>(a(n) + p\cdot{}b(n))</math> (zrównoleglenie, odpowiednie dla sekwencyjnego <math>a(n)+b(n)=1</math>),

:<math>(a(n) + p\cdot{}b(n))</math> (zrównoleglenie, odpowiednie dla sekwencyjnego <math>a(n)+b(n)=1</math>)


a więc
a więc
:: <math>S= a(n) + p\cdot{}(1-a(n)),</math>

:<math>S= a(n) + p\cdot{}(1-a(n))</math>


gdzie <math>a(n)</math> jest funkcją szeregującą.
gdzie <math>a(n)</math> jest funkcją szeregującą.


Zakładając że funkcja szeregująca <math>a(n)</math> zmniejsza się wraz z rozmiarem problemu ''n'', przyspieszenie zmierza do ''p'' jako że ''n'' zmierza do nieskończoności, jak zamierzono.
Zakładając, że funkcja szeregująca <math>a(n)</math> zmniejsza się wraz z rozmiarem problemu <math>n,</math> przyspieszenie zmierza do <math>p,</math> jako że <math>n</math> zmierza do nieskończoności, jak zamierzono.


W związku z tym, prawo Gustafsona próbuje ratować przetwarzanie równoległe przed efektem prawa Amdahla.
W związku z tym, prawo Gustafsona próbuje ratować przetwarzanie równoległe przed efektem prawa Amdahla.


Prawo Gustafsona utrzymuje, że nawet użycie masowych równoległych systemów komputerowych, nie wpływa na szeregową część programu, której czas wykonania jest stały. Tak więc, hipoteza zawarta w prawie Amdahla wynika z pomysłu, że wpływ części szeregowej rośnie wraz ze wzrostem ilości procesorów.
Prawo Gustafsona utrzymuje, że nawet użycie masowych równoległych systemów komputerowych, nie wpływa na szeregową część programu, której czas wykonania jest stały. Tak więc, hipoteza zawarta w prawie Amdahla wynika z pomysłu, że wpływ części szeregowej rośnie wraz ze wzrostem liczby procesorów.


== Metafora kierowcy ==
== Metafora kierowcy ==

Prawo Amdahla (w przybliżeniu) proponuje:
Prawo Amdahla (w przybliżeniu) proponuje:
* Przypuśćmy, że samochód podróżuje między dwoma miastami odległymi od siebie 80 km i spędził godzinę, pokonując połowę trasy z prędkością 40 km/h. Niezależnie jak szybko będzie jechał przez następną godzinę, jest niemożliwe aby osiągnął średnią prędkość 120 km/h przed dotarciem do drugiego miasta. Ze względu na fakt, że do tej pory jechał godzinę i ma za sobą 40 kilometrów, jadąc nieskończenie szybko, może osiągnąć maksymalną prędkość równą 80 km/h.

* Przypuśćmy, że samochód podróżuje między dwoma miastami odległymi od siebie 80km i spędził godzinę, pokonując połowę trasy z prędkością 40km/h. Niezaleznie jak szybko będzie jechał przez następną godzinę, jest niemożliwe aby osiągnął średnią prędkość 120km/h przed dotarciem do drugiego miasta. Ze względu na fakt, że do tej pory jechał godzinę i ma za sobą 40 kilometrów, jadąc nieskończenie szybko, może osiągnąć maksymalną prędkość równą 80km/h.


Prawo Gustafsona (w przybliżeniu) stanowi że:
Prawo Gustafsona (w przybliżeniu) stanowi że:
* Przypuśćmy, że samochód podróżował przez pewien czas z prędkością mniejszą niż 120 km/h. Dając mu wystarczającą ilość czasu i zwiększając długość trasy, średnia prędkość samochodu może zawsze osiągnąć 120 km/h, niezależnie jak długo i jak wolno podróżował do tej pory. Na przykład jeśli samochód spędził godzinę, jadąc z prędkością 40 km/h, może osiągnąć to jadąc z prędkością 160 km/h przez następne dwie godziny lub 200 km/h przez godzinę itd.

* Przypuśćmy, że samochód podróżował przez pewien czas z prędkością mniejszą niż 120km/h. Dając mu wystarczającą ilość czasu i zwiększając długość trasy, średnia predkość samochodu może zawsze osiągnąć 120km/h, niezależnie jak długo i jak wolno podróżował do tej pory. Na przykład, jeśli samochód spędził godzinę, jadąc z predkością 40km/h, może osiągnąc to jadąc z prędkością 160km/h przez następne dwie godziny lub 200km/h przez godzinę itd.


== Ograniczenia ==
== Ograniczenia ==
Niektóre problemy nie posiadają zasadniczo większych zbiorów danych. Na przykład, przetwarzanie jednego punktu danych na jednego mieszkańca świata, zwiększa się tylko o mały procent rocznie.
Niektóre problemy nie posiadają zasadniczo większych [[Zbiór danych|zbiorów danych]]. Na przykład przetwarzanie jednego punktu danych na jednego mieszkańca świata, zwiększa się tylko o mały procent rocznie.


Nieliniowe algorytmy mogą sprawiać trudność w korzystaniu z zalet równoległości ukazanych przez prawo Gustafsona. Snyder wykazał że algorytmy o złożoności obliczeniowej O(N<sup>3</sup>) przy podwojeniu współbieżności osiągają tylko 9% wzrostu w rozmiarze problemu. Tak więc, podczas gdy możliwe jest duże wykorzystanie współbieżności, może to przynieść jedynie niewielkie korzyści, nad oryginalnym, mniej współbieżnym rozwiązaniem -- jednak w praktyce występują masowe usprawnienia, szczególnie używając klastrów lub rozproszonych systemów obliczeniowych takich jak [[Condor High-Throughput Computing System|Condor]].
{{fakt|Nieliniowe algorytmy mogą sprawiać trudność w korzystaniu z zalet równoległości ukazanych przez prawo Gustafsona. Snyder wykazał, że algorytmy o złożoności obliczeniowej O(N³) przy podwojeniu współbieżności osiągają tylko 9% wzrostu w rozmiarze problemu. Tak więc, podczas gdy możliwe jest duże wykorzystanie współbieżności, może to przynieść jedynie niewielkie korzyści, nad oryginalnym, mniej współbieżnym rozwiązaniem -- jednak w praktyce występują masowe usprawnienia, szczególnie używające klastrów lub rozproszonych systemów obliczeniowych takich jak [[HTCondor]].|data=2014-07}}


== Zobacz też ==
== Zobacz też ==
Linia 59: Linia 56:


== Linki zewnętrzne ==
== Linki zewnętrzne ==
* {{Cytuj stronę | url = http://www.scl.ameslab.gov/Publications/Gus/AmdahlsLaw/Amdahls.html | tytuł = ''Reevaluating Amdahl’s Law'' | opublikowany = scl.ameslab.gov | archiwum = https://web.archive.org/web/20120623214836/http://www.scl.ameslab.gov/Publications/Gus/AmdahlsLaw/Amdahls.html | zarchiwizowano = 2012-06-23}} – dokument w którym John Gustafson po raz pierwszy opisał swoje prawo. Oryginalnie opublikowano w [[Communications of the ACM]] 31(5), 1988. s. 532–533

* Lawrence Snyder, [http://www.cs.washington.edu/homes/snyder/TypeArchitectures.pdf ''Type Architectures, Shared Memory, and The Corrolary of Modest Potential''].
* [http://www.scl.ameslab.gov/Publications/Gus/AmdahlsLaw/Amdahls.html Reevaluating Amdahl's Law] - dokument w którym John Gustafson po raz pierwszy opisał swoje prawo. Oryginalnie opublikowano w [[Communications of the ACM]] 31(5), 1988. pp. 532-533
* [http://www.cs.washington.edu/homes/snyder/TypeArchitectures.pdf] -- Lawrence Snyder, "Type Architectures, Shared Memory, and The Corrolary of Modest Potential"


[[Kategoria:Obliczenia równoległe]]
[[Kategoria:Obliczenia równoległe]]

[[ar:قانون غوستافسون]]
[[de:Gustafsons Gesetz]]
[[en:Gustafson's law]]
[[es:Ley de Gustafson]]
[[ja:グスタフソンの法則]]
[[ru:Закон Густавсона — Барсиса]]
[[sv:Gustafson-Barsis lag]]
[[tr:Gustafson yasası]]

Aktualna wersja na dzień 02:48, 17 maj 2024

Prawo Gustafsona (znane także jako prawo Gustafsona-Barsisa) – prawo w inżynierii komputerowej, które stanowi, że każdy wystarczająco duży problem może być efektywnie zrównoleglony. Prawo Gustafsona jest ściśle związane z prawem Amdahla, które określa limit przyspieszenia spowodowanego zrównolegleniem. Zostało po raz pierwszy sformułowane przez J. Gustafsona w 1988 roku.

gdzie:

– liczba procesorów,
– przyspieszenie,
– część procesu, której nie da się zrównoleglić.

Prawo Gustafsona odnosi się do wad prawa Amdahla, które nie jest skalowalne do tego stopnia, aby brać pod uwagę dostępność mocy obliczeniowej przy rozrastaniu się maszyny. Usuwa problem ustalonego rozmiaru problemu lub ustalonego ładowania obliczeń na równoległych procesorach: zamiast tego proponuje koncepcję ustalonego czasu, która prowadzi do skalowanego przyspieszenia.

Prawo Amdahla bazuje na ustalonym obciążeniu roboczym lub znanym rozmiarze problemu. Wynika z tego, że sekwencyjna część programu nie zmienia się wraz z rozmiarem maszyny (np. liczba procesorów), natomiast zrównoleglona część jest równomiernie rozdzielona na procesorów.

Efektem prawa jest przesunięcie w rozwoju tworzenia zrównoleglających kompilatorów i redukcja szeregowych części rozwiązań w celu poprawy wydajności systemów równoległych.

Interpretacja prawa Gustafsona[edytuj | edytuj kod]

Niech będzie miarą rozmiaru problemu.

Przetwarzanie programu na równoległym komputerze zostaje zdekomponowane do:

gdzie:

– część sekwencyjna,
– część równoległa, na razie ignorując narzut.

Na sekwencyjnym komputerze odpowiedni czas przedstawia się jako gdzie jest liczbą procesorów w przypadku zrównoleglenia.

W takim przypadku przyspieszenie wynosi:

(zrównoleglenie, odpowiednie dla sekwencyjnego ),

a więc

gdzie jest funkcją szeregującą.

Zakładając, że funkcja szeregująca zmniejsza się wraz z rozmiarem problemu przyspieszenie zmierza do jako że zmierza do nieskończoności, jak zamierzono.

W związku z tym, prawo Gustafsona próbuje ratować przetwarzanie równoległe przed efektem prawa Amdahla.

Prawo Gustafsona utrzymuje, że nawet użycie masowych równoległych systemów komputerowych, nie wpływa na szeregową część programu, której czas wykonania jest stały. Tak więc, hipoteza zawarta w prawie Amdahla wynika z pomysłu, że wpływ części szeregowej rośnie wraz ze wzrostem liczby procesorów.

Metafora kierowcy[edytuj | edytuj kod]

Prawo Amdahla (w przybliżeniu) proponuje:

  • Przypuśćmy, że samochód podróżuje między dwoma miastami odległymi od siebie 80 km i spędził godzinę, pokonując połowę trasy z prędkością 40 km/h. Niezależnie jak szybko będzie jechał przez następną godzinę, jest niemożliwe aby osiągnął średnią prędkość 120 km/h przed dotarciem do drugiego miasta. Ze względu na fakt, że do tej pory jechał godzinę i ma za sobą 40 kilometrów, jadąc nieskończenie szybko, może osiągnąć maksymalną prędkość równą 80 km/h.

Prawo Gustafsona (w przybliżeniu) stanowi że:

  • Przypuśćmy, że samochód podróżował przez pewien czas z prędkością mniejszą niż 120 km/h. Dając mu wystarczającą ilość czasu i zwiększając długość trasy, średnia prędkość samochodu może zawsze osiągnąć 120 km/h, niezależnie jak długo i jak wolno podróżował do tej pory. Na przykład jeśli samochód spędził godzinę, jadąc z prędkością 40 km/h, może osiągnąć to jadąc z prędkością 160 km/h przez następne dwie godziny lub 200 km/h przez godzinę itd.

Ograniczenia[edytuj | edytuj kod]

Niektóre problemy nie posiadają zasadniczo większych zbiorów danych. Na przykład przetwarzanie jednego punktu danych na jednego mieszkańca świata, zwiększa się tylko o mały procent rocznie.

Nieliniowe algorytmy mogą sprawiać trudność w korzystaniu z zalet równoległości ukazanych przez prawo Gustafsona. Snyder wykazał, że algorytmy o złożoności obliczeniowej O(N³) przy podwojeniu współbieżności osiągają tylko 9% wzrostu w rozmiarze problemu. Tak więc, podczas gdy możliwe jest duże wykorzystanie współbieżności, może to przynieść jedynie niewielkie korzyści, nad oryginalnym, mniej współbieżnym rozwiązaniem -- jednak w praktyce występują masowe usprawnienia, szczególnie używające klastrów lub rozproszonych systemów obliczeniowych takich jak HTCondor.[potrzebny przypis]

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]