Jak sprawdzić szybkość obliczeniową komputera?


(XOR) #1

Witam. Zastanawia mnie czy da się jakoś, może jakimś wzorem, sprawdzić szybkość obliczeniową komputera w zależności od wielkości problemu obliczeniowego? Nie chodzi mi tu o benchamrki tylko konkretne czasy wykonania zadania. Np. mamy wygenerować jakaś symulację czy wyliczyć 10000 element ciągu Fibonachciego. wiadomo więc, ,ze na komputerze z prockiem 1GHz 1-core wykona się to wolniej niż na procesorze 3GHz i7. Pytanie jak zmierzyć i przewidzieć czas wykonania takiego zadania? Czy istnieją jakieś programy symulujące takie rzeczy?


(Drobok) #2

jest masa takowego softu, np taki superpi (na forum jest kilka tematów, gdzie użytkownicy sobie porównują wyniki)


(Pablo_Wawa) #3

Albo program Winrtgen (generacja tęczowych tablic do łamania haseł): http://www.oxid.it/downloads/winrtgen.zip


(XOR) #4

Bardziej chodzi mi o badanie teoretycznego czasu wykonywania/rozwiązywania zadania na rożnych procesorach.


(Pablo_Wawa) #5

Można sobie samemu napisać taki prosty programik - może on nawet być mocno nieoptymalny - i będzie można porównywać czas jego pracy na różnych komputerach. Z tym, że prosto jest napisać takie coś na 1 procesor/rdzeń/wątek, gdybyś chciał to rozszerzyć na więcej rdzeni/wątków, to już wymaga więcej doświadczenia - stąd też różne testy/benchmarki, np. mierzące szybkość kompresji pliku (zip), kodowania obrazu czy renderowania sceny 3D.


(XOR) #6

O właśnie przykład takiego benchmarka chciałbym wiedzieć.

To co chce policzyć zapewne mógłbym zrobić "na kartce". Nie wiem jednak jakie parametry wziąć pod uwagę? Skąd wiedzieć czy dany procek poradzi sobie z jakimś problemem obliczeniowym np. w 3 lub 7 minut.


(Pablo_Wawa) #7

Przykładowo (darmowy) program 7-Zip (http://www.dobreprogramy.pl/7Zip,Program,Windows,12559.html), jak po uruchomisz jego graficzny Manager, w menu Narzędzia ma pozycję Test wydajności. :slight_smile:

Innym programem testującym wydajność procesora oraz grafiki 3D jest Cinebench (http://www.dobreprogramy.pl/Cinebench,P ... 23774.html) - też darmowy.


(XOR) #8

To nadal są zwykle benchmarki, które mogę odpalać na komputerze - mi zależy na bardziej ogólnym wzorze. Na razie przychodzą mi do głowy 2 opcji mierzenia czasu wykonywania zadania przez dowolny procesor w zależności od znajomości jego parametrów:

  1. przemnożenie podanej przez producenta ilości FLOPS przez bitowość komputera - lecz nie wiem czy dobrze rozumuję, czy bitowość jest składnikiem FLOPS?

  2. lub pomnożyć częstotliwość przez liczbę rdzeni, a następnie podzielić to wielkość bloku pamięci?

potem uwzględnić wielkość danych do obrobki

Czy myślcie, że na tej podstawie mogę wyznaczyć teoretyczną/zbliżoną czasochłonność obliczeń?


(Pablo_Wawa) #9

To nie jest takie proste, bo szybkość obliczeń zależy od:

  • częstotliwości procesora;

  • liczby rdzeni/wątków;

  • wielkości pamięci cache;

  • wielkości oraz szybkości pamięci RAM;

  • konstrukcji użytego programu (czy jest wrażliwy na powyższe);

  • generacji procesora.

I pewnie jeszcze kilku zmiennych. Po to są benchmarki, bo gdyby był wzór, takie testy byłyby niepotrzebne. :stuck_out_tongue: