OWW_L03_pomiar_czasu..

Transkrypt

OWW_L03_pomiar_czasu..
Obliczenia wysokiej wydajności
Laboratorium „Metody pomiaru czasy wykonania programów”
Cel: ●
porównanie różnych sposobów pomiaru czasu wykonania programów i procedur
Zadania:
1. Utworzenie katalogu roboczego (np. lab_pomiar_czasu).
2. Skopiowanie do katalogu roboczego pliku „pomiar_mat_vec.tgz”
3. Rozpakowanie plików: pliku Makefile sterującego programem „make”, kodu źródłowego procedur pomiaru czasu: pomiar_czasu.c oraz odpowiadającego pliku nagłówkowego: pomiar_czasu.h
4. Uruchomienie programu „moj_program” (kompilacja za pomocą „make”, ewentualne zwiększenie rozmiaru problemu dla lepszej dokładności pomiarów – tak żeby czas wykonania wynosił kilka sekund)
5. Porównanie różnych metod pomiaru czasu realizacji programu:
a) pomiar czasu zegarkiem
b) obserwacja danych prezentowanych przez polecenie top
c) pomiar za pomocą komendy times
d) pomiar z wykorzystaniem profilu wykonania kodu:
• modyfikacja pliku Makefile: opcja ­p do tworzenia pliku profilu (mon.out lub gmon.out)
• przeglądanie pliku profilu za pomocą polecenia prof (lub gprof)
• wykorzystanie liczników sprzętowych (hardware counters) udostępnianych przez np. program oprofile 6. Modyfikacja dostarczonej procedury sterującej moj_program.c, tak aby umożliwić pomiar czasu realizacji operacji poprzez:
a) włączenie pliku nagłówkowego pomiar_czasu.h z deklaracjami procedur pomiaru czasu
b) wywołanie przed wykonaniem operacji procedur:
• inicjuj_czas() lub t1=czas_zegara(); t2=czas_CPU()
c) wywołanie po operacjach procedur:
• drukuj_czas() lub t1=czas_zegara()­t1; t2=czas_CPU()­t2
7. Modyfikacja pliku Makefile pozwalająca na skompilowanie napisanego programu z wykorzystaniem procedur pomiaru czasu
8. Kompilacja poleceniem „make”
9. Uruchomienie programu i dokonanie pomiaru czasu działania operacji mnożenia macierz­wektor.
10.Porównanie uzyskanych czasów działania z innymi metodami (porównanie ewentualnych błędów z danymi z tabeli pomiary.jpg)
11.Utworzenie z pliku pomiar_czasu.o biblioteki (ar ­rs libpomiar_czasu.a pomiar_czasu.o), dla ułatwienia późniejszego dokonywania pomiarów
12. Modyfikacja pliku Makefile i rekompilacja z biblioteką
13.Rozpakowanie i uruchomienie dostarczonego programu (c_test_perf.tgz)
14.Analiza wydajności na podstawie:
a) profilu uzyskanego przez gprof (profil płaski i drzewo wywołań)
b) danych z liczników sprzętowych
Warunki zaliczenia:
1. Obecność na zajęciach i wykonanie co najmniej kroków 1­10
2. Oddanie jednostronicowego sprawozdania z krótkim odręcznym opisem realizacji zadania i porównaniem działania i wyników różnych sposobów pomiaru czasu wykonywania operacji