In meinen Kursen zur numerischen Analyse habe ich gelernt, die Effizienz von Algorithmen zu analysieren, indem ich die Anzahl der erforderlichen Gleitkommaoperationen (Flops) im Verhältnis zur Größe des Problems gezählt habe. In Trefethen & Baus Text zur Numerischen Linearen Algebra finden sich beispielsweise sogar 3D-Bilder der Flop-Zählungen.
Jetzt ist es in Mode zu sagen, dass "Flops frei sind", weil die Speicherlatenz zum Abrufen von Dingen, die sich nicht im Cache befinden, so viel größer ist als die Kosten eines Flops. Aber wir bringen den Schülern immer noch bei, Flops zu zählen, zumindest in Kursen zur numerischen Analyse. Sollten wir ihnen beibringen, stattdessen Speicherzugriffe zu zählen? Müssen wir neue Lehrbücher schreiben? Oder ist der Speicherzugriff zu maschinenspezifisch, um Zeit darauf zu verwenden? Wie sieht der langfristige Trend dahingehend aus, ob Flops oder Speicherzugriff der Engpass sind?
Hinweis: Einige der folgenden Antworten scheinen eine andere Frage zu beantworten: "Soll ich meine Implementierung zwangsweise umschreiben, um ein paar Flops zu sparen oder die Cache-Leistung zu verbessern?" Was ich aber frage, ist eher wie folgt: " Ist es sinnvoller, die algorithmische Komplexität in Bezug auf arithmetische Operationen oder Speicherzugriffe abzuschätzen ?"