SPECrate: SPECint92, SPECfp92

"În industria calculatoarelor există 3 feluri de minciuni: minciuni, minciuni blestemate si benchmark-uri" - si totusi, oricît ar fi de adevărat că merele nu se pot compara cu perele, este necesar să se poată compara, chiar cantitativ, puterea procesoarelor.

Valorile "brute" - MIPS ("Millions of Instructions Per Second") si MFLOPS ("Millions of FLoating-point Operations Per Second") - au fost repede completate de seturi de teste ceva mai complexe, care să spună ceva mai mult despre puterea si eficienta reală a unui procesor: Whetstone, Dhrystone si Linpack.

Whetstone este primul program special conceput pentru a permite evaluarea performantelor unui procesor. S-a pornit de la date statistice despre programe numerice utilizate pe la începutul anilor '70 la National Physical Laboratory din Anglia. Parcurgînd exact 1.000.000 de "instructiuni Whetstone" - instructiuni abstracte, independente de procesor - testul exprimă rezultatul în kWips (Kilo Whetstone Instructions Per Second).

Dhrystone a pornit de la un studiu relativ la frecventa anumitor elemente de program (atribuiri, tipuri de date, localitatea operanzilor) în programe de sistem: compilatoare, sisteme de operare, editoare etc. Spre deosebire de Whetstone, nu sînt incluse în test operatiuni de virgulă mobilă; unitatea de măsură utilizată îndeobste este de Dhrystones/s, sau cîte parcurgeri ale buclei de măsurare (100 instructiuni C) sînt realizate pe secundă.

Linpack nu este special conceput pentru evaluare, ci este un extras dintr-un pachet de programe utilizate în algebra lineară. Dimensiunea matricii de intrare permite calculul numărului de operatii în virgulă mobilă ce trebuiesc efectuate; rezultatul se dă în MFLOPS.

În 1988, s-a născut SPEC - System Performance Evaluation Cooperative - la care s-au afiliat între timp toti marii producători: AT&T, Bull, CDC, Compaq, Data General, DEC, Fujitsu, Hewlett-Packard, IBM, Intel, Intergraph, Mips, Motorola, NCR, Prime, Siemens Nixdorf, Silicon Graphics, Solbourne, Stardent, Sun, Unisys.

Scopul declarat - o secventă de programe, bazate pe aplicatii mari din "lumea adevărată", dar normate astfel încît să permită o evaluare decentă a puterii unui procesor (si a compilatorului folosit, si a optiunilor activate la compilare...) - s-a concretizat într-o primă suită de programe în 1989, revăzută si adăugită în 1992. Secventa de teste din 1992 cuprinde 6 programe ce lucrează cu întregi si 14 programe ce lucrează cu numere în virgulă mobilă. Valorile rezultate din teste generează un fel de "notă generală" - SPECint92 pentru partea de tratare a întregilor, SPECfp92 pentru partea de tratare a numerelor reprezentate în virgulă mobilă.

(Raportînd timpul de executie pentru o trecere prin programul de evaluare la timpul necesitat de executia programului pe un etalon - definit mai de mult ca fiind un VAX11/780 - se obtin niste valori a căror medie geometrică defineste SPECint92 si respectiv SPECfp92).

Programele ce definesc suita SPEC Benchmark:

CINT92

008.espresso (C, Logic Design) - generează si optimizează PLA-uri (circuite logice)

022.li (C, Interpreters) - utilizează un interpretor LISP pentru rezolvarea problemei celor nouă dame utilizînd un algoritm de backtracking recursiv

023.eqntott (C, Logic Design) - translatează reprezentarea logică a unei ecuatii Booleene într-o tabelă de adevăr

026.compress (C, Data Compression) - comprimă fisiere de intrare utilizînd algoritmul Lempel-Ziv

072.sc (C, Spreadsheet) - calculează bugete, amortizări etc. într-un speadsheet ce se bazează pe "curses" UNIX

085.gcc (C, Compiler) - translatează surse C preprocesate în cod masină optimizat pentru Sun-3

CFP92

013.spice2g6 (F- FORTRAN, Circuit Design) - simulează functionarea circuitelor analogice (dublă precizie - DP)

015.doduc (F, Simulation) - face simularea Monte-Carlo a evolutiei în timp a unui model termohidraulic a unui reactor nuclear (DP)

034.mdljdp2 (F, Quantum Chemistry) - rezolvă ec. de miscare pentru un model de 500 de atomi interactionînd via potentialului idealizat Lennard-Jones (DP)

039.wave5 (F, Electromagnetism) - rezolvă ecuatii de particule si Maxwell pe o celulă carteziană (simplă precizie - SP)

047.tomcatv (F, Geometric Translation) - generează sisteme de coordonate bidimensionale în jurul unor domenii geometrice generale (DP)

048.ora (F, Optics) - trasează raze printr-o suprafată optică continînd suprafete sferice si plane (DP)

052.alvinn (C, Robotics) - instruieste o retea neuronală utilizînd propagarea înapoi (SP)

056.ear (C, Medical Simulation) - simulează urechea umană prin conversia unui fisier de sunet într-o cochieagramă, utilizînd transformata Fourier rapidă si alte functii matematice (SP)

077.mdljsp2 (F, Quantum Chemistry) - ca si 034.mdljdp2, dar în simplă precizie

078.swm256 (F, Simulation) - rezolvă sistemul de ecuatii caracterizînd ape de mică adîncime utilizînd aproximări cu diferente finite (SP)

089.su2cor (F, Quantum Physics) - calculează masele particulelor elementare în cadrul teoriei Quark Gluon (DP)

090.hydro2d (F, Astrophysics) - foloseste ecuatiile hidrodinamice Navier Stokes pentru calculul unor jeturi galactice (DP)

093.nasa7 (F, NASA Kernels) - execută sapte nuclee de programe, reprezentative pentru operatii des utilizate în aplicatii NASA, cum ar fi transformate Fourier si calcule cu matrici (DP)

094.fpppp (F, Quantum Chemistry) - calculează derivati integrali multi-electron (DP)


(C) Copyright Computer Press Agora