Whetstone är ett syntetiskt riktmärke för datorer. [1] Ursprungligen skrivet i november 1972 i programmeringsspråket Algol 60 vid National Physical Laboratory i Storbritannien baserat på programbeteendestatistik erhållen på KDF9 -datorn med en modifierad Whetstone Algol 60-kompilator. Programbeteendestatistik återspeglar typiska vetenskapliga problem lösta av KDF9 . Whetstone-kompilatorn byggdes av Atomic Power-avdelningen av English Electric i Whetstone , Leicestershire , [2] varefter den har fått sitt namn. Den senaste KDF9-datorn stängdes av 1980, men det är möjligt att köra originaltestet på en emulator.
Fortran-versionen av riktmärket (FOPR12 och FOPR13) var det första allmänt använda riktmärket. Det utvecklades av Harold Curnow från HM Treasury Technical Support Unit (TSU - senare del av Central Computer and Telecommunications Agency - CCTA ). Denna version utvecklades vidare av Roy Longbottom, även han från TSU/CCTA.
Whetstone-riktmärket mätte ursprungligen prestanda i enheter av kilo-Whetstone-instruktioner per sekund (kWIPS, tusentals Whetstone-instruktioner per sekund). Senare blev MWIPS standardenheten - miljontals sådana instruktioner per sekund. Historiska resultat för olika minidatorer , stordatorer och superdatorer publiceras på webbplatsen Whetstone Benchmark History and Results . Tillverkningsår för systemen och deras kostnad anges också. Som jämförelse ges flera resultat som erhållits på persondatorer: Detaljerade resultat på datorer .
Det finns PC-källkodsversioner i C / C++ , Basic , Visual Basic , Fortran , Java , publicerade på Roy Longbottom PC Benchmark Collection- webbplatsen . Sammanställda program för DOS , OS/2 , Windows har också utarbetats .
Whetstone mäter i första hand prestandan för aritmetik med flyttal. Ett liknande riktmärke för heltals- och strängoperationer är Dhrystone .
Testet är väldigt enkelt och består av endast 150 satser med 8 aktiva loopar, varav tre körs i subrutiner. Utförandet av flyttalsräkning, funktionsanrop, uppdrag, arbete med fasta tal, grenar testas. Den mest komplexa slingan, som körs 30 till 50 % av tiden, gör flyttalsberäkningar och ett subrutinsamtal.
En mycket liten mängd data används, vilket passar helt och hållet in i L1-cachen hos de flesta processorer. Således påverkar inte hastigheten för den andra nivåns cache och minne den resulterande prestandan. Testresultatet är proportionellt mot processorfrekvensen.
Koden var designad på ett sådant sätt att kompilatorer inte kunde optimera den. Det togs dock inte med i beräkningen att kompilatorer kan infoga funktioner vid anropspunkten (inline-optimering). Med användning av moderna kompilatorer fördubblas hastigheten för testkörning ungefär på grund av inline, instruktionsval och borttagning av mellanliggande överföringar genom minnet.