Miara Karpa-Flatta

Z Wikipedii, wolnej encyklopedii

Miara Karpa-Flatta – miara równoległości (parallelization) kodu w systemach z procesorami równoległymi. Miara ta istnieje jako dodatek do prawa Amdahla oraz prawa Gustafsona jako wskazówka w jakim stopniu dany program komputerowy jest zrównoleglony. Została ona zaproponowana przez Alana H. Karpa and Horace’a P. Flatta w 1990 roku.

Opis[edytuj | edytuj kod]

Biorąc pod uwagę obliczenia wykazujące przyspieszenie (speedup) na procesorach, gdzie na drodze eksperymentu określono frakcję szeregową (serial fraction) definiuje się jako miarę Karpa-Flatta, mianowicie:

Im mniejsza wartość tym lepsza współbieżność (zrównoleglenie).

Uzasadnienie[edytuj | edytuj kod]

Istnieje wiele sposobów na zmierzenie wydajności algorytmu równoległego (parallel algorithm) wykonującego się na procesorze równoległym. Miara Karpa-Flatta definiuje miarę, która ujawnia aspekty wydajnościowe, które nie są zbyt łatwo dostrzegalne w innych miarach. Pseudo-„wyprowadzenie” wynika z prawa Amdahla, co można zapisać jako:

gdzie:

– całkowity czas wykonania się kodu na -procesorowym systemie,
– czas wykonywania się szeregowej części kodu,
– czas wykonywania się równoległej części kodu na jednym procesorze,
– liczba procesorów.

Wynik otrzymywany jest poprzez dzielenie mianowicie jeśli zdefiniujemy szeregową frakcję wówczas równanie można zapisać jako:

In terms of the speedup

Rozwiązując frakcję szeregową, otrzymujemy miarę Karpa-Flatta jak wyżej. Należy zaznaczyć, że to nie pochodzi z prawa Amdahla, jako że lewa strona reprezentuje miarę (metric), a nie matematycznie obliczoną ilość. Powyższe działania pokazują, że miara Karpa-Flatta jest zgodna z prawem Amdahla.

Użycie[edytuj | edytuj kod]

Podczas gdy szeregowa frakcja jest często opisywana w literaturze informatycznej, jest rzadko używana jako narzędzie diagnostyczne do sprawdzania wzrostu wydajności (speedup) oraz efektywności algorytmów (efficiency). Karp and Flatt mieli nadzieję to zmienić, proponując tę miarę. Wskaźnik ten odnosi się do niedoskonałości innych praw i ilości używanych do pomiaru zrównoleglenia kodu programu komputerowego. W szczególności prawo Amdahla nie bierze pod uwagę problemów związanych z rozłożeniem obciążenia obliczeniowego (load balancing) ani z zależnościami dotyczącymi overhead. Wykorzystanie frakcji szeregowej pozwoliło na zdobycie przewagi nad innymi miarami, w szczególności jako że liczba procesorów wzrasta.

Jeśli chodzi o problem stałego rozmiaru, efektywność zazwyczaj spadała wraz ze wzrostem liczby procesorów. Dzięki użyciu szeregowej frakcji uzyskanej metodami doświadczalnymi przy użyciu miary Karpa-Flatta, można stwierdzić czy spadek wydajności jest wynikiem ograniczonych możliwości związanych z przetwarzaniem równoległym lub wzrost wydajności związany z zastosowanymi algorytmicznymi lub architekturalnymi zależnościami overhead.

Przypisy[edytuj | edytuj kod]

  • Quinn Michael J., Parallel Programming in C with MPI and OpenMP, McGraw-Hill Inc., 2004, ISBN 0-07-058201-7.
  • Karp Alan H. and Flatt Horace P., Measuring Parallel Processor Performance, Communication of the ACM, Volume 33 Number 5, May 1990.

Linki zewnętrzne[edytuj | edytuj kod]