Czy istnieje jakiś standard eksperymentalnego porównywania środowisk wykonawczych?

10

Moja sytuacja

Piszę artykuł prezentujący moduł oprogramowania, który opracowałem i chcę porównać jego środowisko wykonawcze z innymi modułami dla tego samego zadania. Zdaję sobie sprawę z wad eksperymentów w środowisku uruchomieniowym , ale proszę założyć, biorąc pod uwagę, że w moim przypadku nie można tego obejść. (Potrafię teoretycznie wydedukować niektóre właściwości, ale nie wszystko to wystarcza).

Konkretne scenariusze, których chcę użyć do testów porównawczych, mają dwa parametry: złożoność  problemu i losowe ziarno  które określa szczegółowy problem. Głównie chcę pokazać zależność od  . Po wstępnych badaniach i teorii wpływ na środowisko wykonawcze jest niewielki lub nieistotny. Wykonanie pojedynczego zadania zajmuje najwyżej dziesięć minut.r n rnrnr

Rzeczywiste pytanie

Szukam jakiejś powszechnie akceptowanej lub opublikowanej procedury przeprowadzania takich eksperymentów lub przynajmniej listy typowych pułapek (najlepiej opublikowanych).

Co znalazłem do tej pory

Nic. Wyszukiwania internetowe ujawniają różnego rodzaju niepowiązane wyniki, ale wtedy mogę nie używać właściwej terminologii. Uwzględnienie minimum słowa kluczowego , które uważam za dobry standard (patrz poniżej), również nie pomogło.

Jak bym to zrobił

  • Przeprowadź wszystkie eksperymenty na tym samym komputerze z potencjalnie zakłócającym oprogramowaniem, takim jak GUI, wyłączonym w miarę możliwości.

  • Poddaj wszystkie moduły tej samej selekcji scenariuszy, tj. Tym samym i  .rnr

  • Dla każdego scenariusza przetestuj różne moduły bezpośrednio jeden za drugim w losowej kolejności. Innymi słowy, pętla między różnymi modułami jest najbardziej wewnętrzna. Powinno to uniknąć stronniczości różnych modułów ze względu na powolne wahania wydajności maszyny (np. Z powodu zmian temperatury). Losowa kolejność powinna unikać stronniczości dzięki takim efektom, jak buforowanie lub testowanie jednego modułu zawsze po tym samym.

  • Dla każdego weź minimalny czas działania dla kilku scenariuszy z różnymi ziarnami jako punktem odniesienia. Powinno to uniknąć stronniczości na różnych modułach z powodu krótkotrwałych wahań wydajności maszyny, które powodują, że poszczególne przebiegi są wyjątkowo złe.n

Wrzlprmft
źródło
Może to pomóc wyjaśnić twoje rozumowanie, dlaczego uważasz, że „w moim przypadku nie można tego obejść”. Ale oczywiście prawdopodobnie jako osobne pytanie i link tam, ponieważ to pytanie jest wystarczająco dobrze ukierunkowane.
Apiwat Chantawibul
@Billiska: Nie jestem do końca pewien, co chcesz, żebym zrobił. Dlaczego powinienem wyjaśnić moje uzasadnienie eksperymentalnego podejścia w osobnym pytaniu? Nie mam co do tego pytania.
Wrzlprmft
Muszę się nie zgodzić z tym, że podejmujesz minimalny czas wykonywania powtarzanego eksperymentu. Wydaje się, że myślisz, że może istnieć kontur w górę. Czy można mieć również kontur w dół? Bardziej typowe jest badanie wielu statystyk jednocześnie, np. Średnia, mediana, maks. Kto wie, że mogą pokazać coś, czego się nie spodziewałeś. W końcu to eksperyment empiryczny.
Apiwat Chantawibul
2
To jest bardzo szerokie; na ten temat można napisać książki, np. „Przewodnik po algorytmach eksperymentalnych” McGeocha. Można nawet powiedzieć, że pytasz: „Czy istnieje jakiś standard uprawiania nauki?”. Nie jestem więc pewien, czy jest to uzasadnione. Czy masz bardziej szczegółowe pytania?
Raphael

Odpowiedzi:

2

„Przewodnik po algorytmach eksperymentalnych” CC McGeocha jest dobrym odniesieniem

  • jak skonfigurować eksperymenty na algorytmach,
  • jak interpretować i wykorzystywać wyniki oraz
  • jak iterować w kierunku bardziej znaczących wyników, jeśli to konieczne.
Raphael
źródło
2

Oprócz upływu czasu dla każdego uruchomienia należy zgłosić sekundy trybu użytkownika i systemu oraz całkowitą liczbę pakietów IP i całkowitą liczbę operacji we / wy dysku, choćby po to, aby sprawdzić, czy niektóre liczby są stale „niskie” i mają nieistotny wpływ na upływający czas.

Na https://wiki.freebsd.org/BenchmarkAdvice PHK i inni oferują dobre porady, w tym

Użyj ministat, aby sprawdzić, czy twoje liczby są znaczące. Zastanów się nad zakupem „Kreskówki przewodnika po statystykach”

J_H
źródło