Skocz do: nawigacji, wyszukiwania

Amphsms3


Ponowna analiza


W przypadku kiedy w trakcie tworzenia projektu wybrano pierwszy sposób uruchamiania aplikacji

  1. Uruchamiamy ponownie analizę Advanced Hotspots dla zmodyfikowanej aplikacji.


W przypadku kiedy w trakcie tworzenia projektu wybrano drugi sposób uruchamiania aplikacji

  1. Uruchamiamy terminal
  2. Kopiujemy aplikacje do koprocesora wpisując polecenie scp ./matrix.out mic0:/tmp/
  3. Uruchamiamy ponownie analizę Advanced Hotspots dla zmodyfikowanej aplikacji.



Interpretacja rezultatów


Rezultat ponownej analizy wygląda następująco:

Vtune10.png

Na podstawie danych przedstawionych w sekcji Eplased Time widzimy, że czas potrzebny na wykonanie aplikacji zmalał o ponad 40 sekund. Zmianie uległy również pozostałe metryki. Jednakże, żadna z nich (oprócz CPI Rate) nie uległa zmianie co oznacza, że zdarzenia z nimi związane nie wpływają negatywnie na wydajność analizowanej aplikacji. Patrząc na wykres przedstawiony w sekcji CPU Usage Histogram widzimy, że aplikacja wykorzystuje w obliczeniach 244 logiczne rdzenie.

  1. Przechodzimy do zakładki Bottom-up
Vtune11.png

Jak widać w zakładce Bottom-up funkcja Multipication przez większość czasu wykorzystuje oferowane przez system zasoby w idealny sposób o czym świadczy kolor zielony. Jednakże metryka CPI Rate oznaczona jest kolorem różowym i przyjmuje ona zbyt dużą wartość. Oznacza to, że wydajność obliczeń wykonywanych wewnątrz funkcji jest niska. Przyczyną tego może być nieefektywne wykorzystanie pamięci podręcznej. Patrząc na wykres przedstawiający wydajność wątków (znajdujący się poniżej) widzimy, że rozkład obciążeń pomiędzy wątki nie jest stosunkowo dobrze zbalansowany.



Rozwiązanie problemu


  1. Otwieramy plik matrix.cpp przy pomocy dowolnego edytora tekstowego
  2. Stosujemy technikę loop interchange dla dwóch najbardziej zagnieżdzonych pętli (zamieniamy miejscami pętle iterujące po j oraz k)
  3. Zapisujemy zmiany
  4. Uruchamiamy terminal
  5. Używając polecenia cd przechodzimy do katalogu, w którym znajduje się analizowana aplikacja
  6. Budujemy aplikację wpisując polecenie make



< Wstecz

Dalej >