Jestem tylko mistrzem, więc nie wiem zbyt wiele o dynamice „gry”. Dlatego mogę tylko wyrazić opinię widza.
Jeden z moich przełożonych lubi mieć brutalnie szczere wątki w swoich artykułach. Jego praca koncentruje się na skalowaniu algorytmów równoległych. Na początek wybiera mocne skalowanie zamiast słabego skalowania. Ten pierwszy ma ustalony rozmiar problemu i używa większej liczby procesorów $ P $ do uruchomienia. Idealnie byłoby, gdybyś uzyskał spadek w czasie o 1 USD / P $. Wykonując podwójny wykres logarytmiczny czasu w funkcji liczby procesów, a także wykreślając idealną krzywą 1 $ / P $, szybko zobaczysz, kiedy idzie źle.
Słabe skalowanie to skalowanie rozmiaru problemu za pomocą zasobów. Wtedy potrzebny czas powinien pozostać stały. W przypadku problemów, które stają się trudne do zrównoleglenia na jakimś dobrym poziomie, nigdy nie zobaczysz niczego interesującego w słabym skalowaniu. Dzięki silnemu skalowaniu możesz wejść w skrajności, takie jak „jeden piksel na rdzeń” lub „jeden atom na wątek”.
Powiedział, że interesujące części (w nauce) to te, które jeszcze nie działają. Z pewnością potrafi ułożyć fabułę, dzięki której algorytm będzie wyglądał świetnie. Ale nie to go interesuje. Chce wiedzieć, jak daleko można to posunąć.
Naprawdę podziwiam tę brutalną szczerość. Jeśli ktoś ma wyniki, które są tylko takie sobie, to ta metoda jasno pokaże, że nie są one takie wspaniałe. Z drugiej strony, jeśli sam pozbędziesz się całej powierzchni ataku, nikt nie będzie mógł cię później rozerwać na strzępy za ukrycie czegokolwiek.
Dlatego sporządziłbym wykresy, które pokazują, jak słaba jest dokładność, gdy optymalizujesz pod kątem szybkości. Zawarłbym uczciwy wykres dokładności w funkcji prędkości (lub odwrotnie). Wtedy można albo sprawdzić, czy w środku znajduje się słodki punkt i jak dobrze jest.
Jeśli twój algorytm idzie do skrajności, ale ma fajny środek, myślę, że warto o tym wspomnieć . A jeśli ekstrema są tylko o kilka procent wolniejsze lub mniej dokładne, to również jest wynik.