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 macierzwektor. 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 110 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