1. Introducere
Un test "benchmark" se presupune a fi o metoda standard de masurare a performantelor unui
sistem de calcul pentru a putea fi comparat cu un altul. Simpla evaluare a unor parametri simpli
(de exemplu viteza în MIPS sau MFLOPS) este, adeseori, nerelevanta.
Pentru orice aplicatie exista o performanta caracteristica, ce conteaza pentru utilizator. Un
test "benchmark" este util doar în masura în care el seamana aplicatiei în cauza. De exemplu,
unele microprocesoare pot sa atinga viteza unor sisteme complexe (sau chiar sa o depaseasca) pe
teste "benckmark" nenumerice, desi performanta calculelor în virgula flotanta, sau a operatiilor de
intrare/iesire sa fie extrem de scazuta. Pe de alta parte, arhitecturile cu microprocesor tind sa
prezinte o performanta ridicata pentru
programe mici (printr-o buna utilizare a setului de registre propriu, a memoriilor cache sau de
lucru de pe cip, etc.) desi în cazul unor aplicatii complexe prezinta o "cadere" spectaculoasa a
performantei.
În mod ideal, calculatoarele ar trebui sa fie comparate executând aplicatia dorita pe fiecare
din ele, dar acest lucru nu este practic si de aceea testele "benchmark" sunt utilizate pentru
evaluare în activitatea curenta. Unele teste au fost construite cu atentie si de aceea pot fi un
indicator util al performantelor cu atât mai mult cu cât limitarile lor sunt bine întelese. Testul
Whetstone este un astfel de exemplu, fiind util în caracterizarea performantelor în aplicatii
stiintifice (de calcul numeric), desi el omite o serie de aspecte (ce vor fi amintite mai târziu).
Testul Savage se ocupa de un aspect îngust al performantei, desi el este inclus de multe ori în
pachete "benchmark" de uz general. Pe de alta parte, exista teste prost construite si care nu pot da
o masura reala a performantei. Un astfel de test este Dhrystone, care, în ciuda acestui fapt, este
totusi extrem de raspândit.
Este important de retinut ca toate aceste teste "benchmark" au fost destinate masinilor
monoprocesor; nici unul dintre ele nu a fost destinat in mod particular pentru paralelism si nici
unul din ele nu este un program de aplicatie real ! Programele reale sunt utilizate pentru
prelucrarea datelor de un anume fel si, de multe ori, ele pot fi procesate independent, permitând o
crestere spectaculoasa de performanta prin paralelism (utilizând mai multe procesoare). Deoarece
nu exista metode generale de paralelizare a aplicatiilor, nu exista nici teste "benchmark" pentru
arhitecturi paralele. Testele descrise în continuare sunt utile pentru masini scalare sau vectoriale
de uz general.
O remarca se cuvine a fi facuta: în momentul actual se constata o "coborâre" a
paralelismului la nivelul cipurilor: majoritatea procesoarelor moderne, realizate in tehnologie
VLSI, includ arhitecturi pipeline si cu multiplicare extrem de sofisticate.
Performantele obtinute au determinat o reconsiderare a masinilor monoprocesor la nivelul
aplicatiilor conventionale. Un exemplu este procesorul a-DEC ce lucreaza la o frecventa de ceas
de 150 250 MHz si asigura 100 200 MFLOPS (a se compara cu seria CRAY !!!). În aceste
conditii testele "benchmark" reprezinta singura cale acceptabila de evaluare a performantelor.
2. O clasificare a testelor "benchmark"
În aceasta lucrare testele "benchmark" sunt destinate doar unitatilor centrale (nu si altor
subansamble dintr-un sistem de calcul). O clasificare posibila a testelor "benchmark" este
prezentata mai jos.
a. Dupa natura aplicatiei:
· teste generale pentru aplicatii stiintifice (de calcul numeric - în special virgula flotanta);
· teste generale pentru aplicatii ne-numerice (de sistem);
· teste specializate (pentru categorii restrânse de aplicatii).
b. Dupa natura procesoarelor testate:
· teste pentru procesoare scalare;
· teste pentru procesoare vectoriale.
În continuare vor fi prezentate testele cele mai raspândite: Whetstone, Savage, Dhrystone si un
test vectorial simplu.
3. Testul Whetstone
Acest test a fost construit pentru a compararea puterii procesoarelor în aplicatii stiintifice. Rularea
acestui program este considerata a fi echivalenta cu executia a aproximativ un milion de
instructiuni "Whetstone" (denumire conventionala a unor operatii flotante ipotetice).
Performanta este masurata în "Whetstones per second" si difera de orice masura a
performantei flotante exprimate în MFLOPS ! În plus fata de operatiile pure în virgula flotanta,
testul include: operatii în aritmetica întreaga, masive indexate, apeluri de proceduri, salturi
conditionate si evaluari de functii elementare. Acest mixaj este realizat în proportii bine precizate
si studiate pentru a simula o aplicatie stiintifica "tipica"; testul este cunoscut si aplicat de mai bine
de 25 ani.
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.