Porównuję dwie iteracyjne metody odwracania losowych macierzy kwadratowych. Ponieważ macierze są losowe, każdy przypadek testowy wymaga zarówno różnych ilości iteracji, jak i różnych czasów, które upłynęły. Moje pytanie, oprócz średniego czasu procesora, to średnia wartość iteracji pobranych przez obie metody, przydatne informacje do porównania metod.
performance
benchmarking
srijan
źródło
źródło
Odpowiedzi:
Ogólnie rzecz biorąc, obie metody porównań wydajności mają swoje miejsce.
Porównywanie czasu procesora jest w pewnym sensie najciekawszą miarą, ponieważ pod koniec dnia naprawdę interesuje Cię, która z metod jest szybsza. (Ale upewnij się, że kryteria zakończenia są porównywalne; np. Obie metody dają przybliżenie z tą samą dokładnością). Wadą jest to, że mówi tylko, która metoda (a co ważniejsze, która implementacja ) jest szybsza na komputerze, na którym przeprowadziłeś testy. Nie ma gwarancji, że inna maszyna z inną architekturą lub oprogramowaniem wybierze tego samego zwycięzcę.
Z drugiej strony porównywanie liczb iteracyjnych jest niezależne od maszyny, ale może wprowadzać w błąd, jeśli obie metody mają bardzo różne iteracje - w tym przypadku metoda o mniejszej, ale droższej iteracji może nie być preferowana (np. Metody optymalizacji Newtona i gradientu jeśli potrzebujesz tylko bardzo niskiej dokładności).
Tak więc, sensowne jest podanie obu liczb [1], i często widziałem to w publikacjach. Istnieje również trzecia opcja:
[1] Zdecydowanie przedstawi statystyki w wielu przebiegach; jeśli wykażesz środki, nie zapomnij również o standardowych odchyleniach.
źródło
Uważam, że liczba iteracji jest wprowadzającą w błąd metryką, ponieważ sugeruje „szybkość”, gdy tak nie jest. Prosty przykład porównania kilku różnych warunków wstępnych wykazujących tę różnicę można znaleźć tutaj: http://www.dealii.org/developer/doxygen/deal.II/step_6.html#Possabilitiesforextensions
źródło
W przypadku, gdy w innych odpowiedziach nie jest jasne, dla jakiej liczby iteracji korzystna jest duża argumentacja.
Nie jest to dobre dla prędkości bezwzględnej, ponieważ zależy to od średniego czasu na iterację, który może różnić się między metodami w dużej mierze.
Na przykład istnieje tendencja do ignorowania kosztu obliczania indeksów tablic, co może również stanowić dużą część czasu procesora.
DODANO: Ponadto, jak wskazałem gdzie indziej, za każde wywołanie tej metody zazwyczaj wiąże się koszt instalacji. Następnie, jeśli matryce zwykle nie są bardzo duże, ten koszt instalacji może sam stanowić znaczną część czasu procesora (tak, że usunięcie go spowodowałoby dużą różnicę w szybkości).
źródło