Multitask Floating Point: SPECfp_rate_base2006
Wir setzen die SPEC-Benchmarks unter Windows Server 2008/R2 Enterprise x64 praxisnah ein und kompilieren sie für das Base-Rating. Dazu verwenden wir Intel C++ 10.1 und Fortran 10.1 in der 64-Bit-Version sowie MS Visual Studio 2005 .NET für alle Floating-Point-Tests. Spezielle Bibliotheken für die Optimierung auf den jeweiligen Prozessor kommen nicht zum Einsatz. Bei den Floating-Point-Berechnungen von SPECfp_rate_base2006 ermittelt die Benchmark-Suite CPU2006 den maximalen Durchsatz durch Verwendung mehrerer Tasks. Dabei arbeiten multiple Kopien des Benchmarks parallel. Die Ergebnisse geben einen guten Anhaltspunkt für die Floating-Point-Leistungsfähigkeit der Server-Prozessoren bei parallel arbeitender Standardsoftware.
Typischerweise entspricht die Anzahl der Tasks/Kopien von SPECfp_rate_base2006 der Anzahl der Prozessorkerne des Systems. Beispielsweise arbeiten beim 4-Sockel-Server mit Opteron-6166-CPUs 48 Kopien parallel. Im 4-Sockel-Xeon-X7560-Server laufen durch die insgesamt 32 Kerne sowie das zusätzliche Hyper-Threading 64 Kopien parallel. Pro Kopie ist ein Speicherbedarf von 2 GByte RAM notwendig.
Intels 10.1-Compiler bieten mit dem Switch -QxO eine offizielle SSE3-Unterstützung für "Non-Intel-Processors" (erstmals mit Version 10.0). Mit dieser Compiler-Option führten wir die CPU2006-Benchmarks für die Opteron-Prozessoren durch. Bei -QxO wird kein SSE4 verwendet. Zur optimalen Vergleichbarkeit testen wir den Xeon X5680 und X7560 ebenfalls mit -QxO. Zusätzlich überprüfen wir bei den Intel-CPUs die Leistungsfähigkeit mit dem Compiler-Flag -fast, der nicht mit den Opterons funktioniert. Hier wählen die Intel-Compiler automatisch die optimale Befehlssatzunterstützung.