Gleitkommazahlen mit einfacher Genauigkeit belegen die Hälfte des Arbeitsspeichers und können auf modernen Maschinen (auch auf GPUs) fast doppelt so schnell ausgeführt werden wie mit doppelter Genauigkeit. Viele FDTD-Codes, die ich gefunden habe, verwenden ausschließlich Arithmetik und Speicherung mit einfacher Genauigkeit. Gibt es eine Faustregel, wann es akzeptabel ist, einfache Genauigkeit zum Lösen von spärlichen Gleichungssystemen im großen Maßstab zu verwenden? Ich gehe davon aus, dass es stark von der Matrixbedingungsnummer abhängen muss.
Darüber hinaus gibt es eine wirksame Technik, bei der bei Bedarf doppelte Genauigkeit und bei der keine doppelte Genauigkeit erforderlich ist. Zum Beispiel würde ich denken, dass es für eine Matrixvektormultiplikation oder ein Vektorpunktprodukt eine gute Idee sein könnte, die Ergebnisse in einer Variablen mit doppelter Genauigkeit zu akkumulieren (um Löschfehler zu vermeiden), aber dass einzelne Einträge miteinander multipliziert werden kann mit einfacher Genauigkeit multipliziert werden.
Ermöglichen moderne FPUs nahtlos die Umstellung von einfacher Präzision (Float) auf doppelte Präzision (Double) und umgekehrt? Oder sind diese kostspieligen Operationen?