Lush Green
Transkrypt
Lush Green
Metody analizy wydajności i precyzji oprogramowania Wojciech Matuszewski Plan prezenetacji ● Tło i motywacja ● Ogólne pojęcia ● Analiza wydajności ● Analiza dokładności Tło i motywacja ● System nawigacji satelitarnej ● Przeliczenia współrzędnych ● Ograniczone zasoby sprzętowe ● Brak FPU ● Obliczenia w czasie rzeczywistym ● Zapewnienie odpowiedniej dokładności Podstawowe pojęcia ● Czarna skrzynka ● Biała skrzynka ● Analiza statyczna ● Analiza dynamiczna Analiza wydajnościowa Ograniczone zasoby: ● Czas ● Energia ● Pamięć Analiza algorytmów ● Metoda formalna ● Pozwala wstępnie porównać rozwiązania ● Pracochłonna Narzędzia typu CIT ● CIT – Compile-time Instrumenation Tools ● Przykłady: prof, gprof ● Procedury analityczne dodawane na etapie kompilacji ● Zmodyfikowany program ● Brak obsługi bibliotek dołączanych dynamicznie Narzędzia próbkujące ● ST – Sampling Tools ● Przykłady: qProf, OProfile ● Uruchamiane równolegle z programem ● Okresowe zbieranie danych o stanie ● Możliwe pominięcie krótkich funkcji ● Wydłużenie czasu działania Liczniki sprzętowe ● HCT – Hardware Counter-based Tools ● Przykłady: Perfsuite, hpccount ● Wykorzystanie sprzętowych liczników zdarzeń ● ● Ograniczona ilość liczników → konieczność wielu przebiegów Potrzebne wsparcie sprzętowe Narzędzie typu BIT ● BIT – Binary Instrumentation Tools ● Przykład: Pin ● ● Wstrzykiwanie wywołań procedur analitycznych do kodu uruchomionego programu Możliwość włączania i wyłączania Sondy ● Dynamic probes ● Przykład: Dtrace, ftrace ● ● „Sondy“ - procedury analityczne wbudowane w biblioteki, frameworki, system Odpalanie sond na podobnej zasadzie, co w BIT Testy wzorcowe ● ● ● Wygodne do testów porównawczych Tworzone do testowania konkretnych typów systemów fbench Analiza dokładności ● Niedoskonałość reprezentacji liczb ● Niedoskonałość algorytmów ● Wymagania dokładności Analiza numeryczna ● Metoda formalna ● Pomaga w wyborze odpowiedniego algorytmu Automatyczne szacowanie błędu ● Porównywanie wyników programu z „prawidłowymi“ ● Problem doboru danych ● Problem zdobycia danych wzorcowych Bibliografia ● ● ● An Overview of Software Performance Analysis Tools and Techniques: From GProf to DTrace, Justin Thiel Error analysis of system mathematical functions, Gaston Gonnet fbench - Trigonometry Intense Floating Point Benchmark, John Walker, 2014 ● Dynamic probes with ftrace, Jonathan Corbet, 2009 ● Performance Analysis Methodology, Brendan Gregg ● Wykorzystanie sprzętowych liczników zdarzeń do oceny wydajności algorytmów, Szymon Acedański, 2009 Dziękuję za uwagę ● Pytania?