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

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

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

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

  • 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