Na moich kursach analizy numerycznej nauczyłem się analizować wydajność algorytmów, licząc liczbę wymaganych operacji zmiennoprzecinkowych (klap) w stosunku do wielkości problemu. Na przykład w tekście Trefethen & Bau na temat numerycznej algebry liniowej są nawet trójwymiarowe zdjęcia liczby flopów.
Teraz modne jest stwierdzenie, że „flopy są bezpłatne”, ponieważ opóźnienie pamięci do pobrania czegokolwiek poza pamięcią podręczną jest o wiele większe niż koszt flopa. Ale nadal uczymy studentów, jak liczyć klapy, przynajmniej na kursach analizy numerycznej. Czy zamiast tego powinniśmy ich uczyć liczenia dostępów do pamięci? Czy musimy pisać nowe podręczniki? A może dostęp do pamięci jest zbyt specyficzny dla urządzenia, aby spędzać czas? Jaki będzie długoterminowy trend, jeśli chodzi o to, czy wąskie gardło ma dostęp do klap lub pamięci?
Uwaga: niektóre z poniższych odpowiedzi wydają się odpowiadać na inne pytanie, takie jak „Czy mam obsesyjnie przepisać moją implementację, aby zaoszczędzić kilka flopów lub poprawić wydajność pamięci podręcznej?” Ale pytam bardziej w stylu: „ Czy bardziej przydatne jest oszacowanie złożoności algorytmicznej pod względem operacji arytmetycznych lub dostępu do pamięci ?”