SPEC CPU2006

SPEC CPU2006 je benchmark kolekcija neprofitne organizacije SPEC, a fokusira se na mjerenje brzine procesora. Sastoji se od dvije komponente koje se fokusiraju na računanje performansi dvije različite snage računanja:
CINT2006 okruženje mjeri snagu računanja integer operacija, a
CFP2006 okruženje mjeri snagu računanja operacija sa pokretnim zarezom.

SPEC CPU2006 ne namjerava da naglasi ostale komponente kompjutera, kao što je mreža, operativni sistem, grafika ili ulazno-izlazni podsistem. Za testiranja jednoprocesorskog sistema, efekti takvih komponenti na SPEC CPU2006 performanse su obično minorne.

Mnogi od SPEC benchmarka proističu od javno dostupnih aplikacija. Pojedinačni benchmarci u ovom okruženju mogu biti slični, ali ne identični sa benchmarcima ili programima sa sličnim naslovima dostupnim iz drugih izvora. SPEC je uložio značajne napore da poboljša portabilnost i da smanji hardversku zavisnost da izbjegne nepravednu favorizaciju jedne hardverske platforme nad drugom. Zbog ovoga, aplikativni programi u ovoj distribuciji mogu raditi drugačije od komercijalno dostupnih verzija iste aplikacije.
Prema tome, nije u redu porediti SPEC CPU2006 benchmark rezultate sa bilo čime drugim nego SPEC CPU2006 benchmark rezultatima.
Benchmarci trebaju da budu pokrenuti i dokumentovani po određenom setu pravila da bi se osigurala uporedivost i obnovljivost.

Spisak pojedinačnih benchmarka
CINT2006 se sastoji od 12 benchmarka,  9 napisanih u C-u i 3 u C++. To su sljedeći benchmarci:

 Naziv benchmarkaProgramski jezikOpis 400.perlbench C PERL Programski jezik 401.bzip2	 C	 Kompresija  403.gcc	 C	 C Kompajler   429.mcf	 C 	 Kombinatorička optimizacija   445.gobmk	 C	 Vještačka inteligencija: Igre 456.hmmer	 C	 Traženje sekvenci gena 458.sjeng	 C	 Vještačka inteligencija: Šah 462.libquantum	 C	 Fizika: Kvantno računanje 464.h264ref	 C	 Video kompresija 471.omnetpp	 C++	 Diskretna simulacija događaja   473.astar	 C++	 Algoritmi za pronalaženje puta   483.xalancbmk	 C++	 XML Procesiranje

CFP2006 se sastoji od 17 benchmarka, 4 u C++, 3 u C-u, 6 u Fortranu i 4 su mješavina C-a i Fortrana. To su sljedeći benchmarci:

 Naziv benchmarka	 Programski jezik	 Opis 410.bwaves Fortran	 Dinamika fluida 416.gamess Fortran	 Kvantna hemija 433.milc C	 Kvantna hromodinamika 434.zeusmp Fortran	 Fizika/Magnetohidrodinamika 435.gromacs C/Fortran	 Biohemija/Molekularna dinamika 436.cactusADM	 C/Fortran	 Fizika/Teorija relativiteta 437.leslie3d Fortran	 Dinamika fluida 444.namd C++	 Biologija/Molekularna dinamika 447.dealII C++	 Analiza konačnog elementa 450.soplex C++	 Linearno programiranje, optimizacija 453.povray C++	 Računarska vizualizacija 454.calculix	 C/Fortran	 Strukturalna mehanika 459.GemsFDTD Fortran	 Elektromagnetizam 465.tonto Fortran	 Kvantna hemija 470.lbm C	 Dinamika fluida 481.wrf C/Fortran	 Predviđanje vremena 482.sphinx3 C	 Prepoznavanje govora

Pravila
Svrha SPEC CPU2006 benchmark-a i njegovih pravila pokretanja je fer i objektivan CPU benchmarking. Pravila omogućuju da objavljeni rezultati budu značajni, da se mogu upoređivati i da se mnogu umnožavati. 

Prema SPEC licencnom ugovoru, svi SPEC CPU rezultati su javni i moraju odgovarati SPEC CPU pravilima za pokretanje i izvještavanje.

SPEC pravila o pokretanju benchmarka su jedinstveni i nedvosmisleni skup pravila na preko 40 strana, međusobno podijeljenih u pet glavnih sekcija:
Filozofija,
Bildanje,
Pokretanje,
Objavljivanje rezultata i
Izuzeci pravilima za pokretanje,
a njima moraju odgovarati svi objavljeni rezultati. 

Da bi omogućili poređenja kroz različiti kompjuterski hardware, SPEC pruža benchmarke kao izvorni kod. Tako, da bi pokrenuli benchmarke korisnici ih moraju sami sebi kompajlirati. Postoji pravilo prema kojem benchmarci trebaju biti kompajlirani na način na koji korisnik kompajlira programe.

Pravila o kompajliranju benchmarka
SPEC je odabrao da dozvoli dva tipa kompajliranja:
Osnovno podešavanje (npr. SPECint_base2006) je potrebno za sve objavljene rezultate i ovo podešavanje ima stroge direktive za kompajliranje. Na primjer, iste zastavice se moraju koristiti na istom mjestu za sve benchmarke datog jezika.

Najveće podešavanje (npr. SPECint2006) je opcionalno i ima manje striktne zahtjeve. Npr. različite opcije kompajlera mogu biti korištene u različitim benchmarcima, i dozvoljene su odzivne naredbe za optimizaciju. 

Primijetite da su opcije koje su dozvoljene unutar pravila osnovnog podešavanja podskup onih koje su dozvoljene unutar pravila najvećeg podešavanja.

Rezultati
Rezultati imaju jedno od 8 različitih značenja:

CINT2006 – za cjelobrojna poređenja
SPECint2006: Geometrijsko značenje dvanaest normalizovanih omjera – jedna za svaki cjelobrojni benchmark – kada je benchmark kompajliran sa najvećim podešavanjem.
SPECint_base2006: Geometrijsko značenje dvanaest normalizovanih omjera kada su benchmarci kompajlirani sa osnovnim podešavanjem. 
SPECint_rate2006: Geometrijsko značenje dvanaest normalizovanih propusnih omjera kada su benchmarci kompajlirani sa najvećim podešavanjem.
SPECint_rate_base2006: Geometrijsko značenje dvanaest normalizovanih propusnih veličina kada su benchmarci kompajlirani sa osnovnim podešavanjem.

CFP2006 – za poređenja sa pokretnim zarezom
SPECfp2006: Geometrijsko značenje sedamnaest normalizovanih omjera – jedan za svaki benchmark sa pokretnim zarezom kada su kompajlirani sa najvećim podešavanjem.
SPECfp_base2006: Geometrijsko značenje sedamnaest normalizovanih omjera kada su benchmarci kompajlirani sa osnovnim podešavanjem
SPECfp_rate2006: Geometrijsko značenje sedamnaest normalizovanih propusnih omjera kada su benchmarci kompajlirani sa najvećim podešavanjem.
SPECfp_rate_base2006: Geometrijsko značenje sedamnaest normalizovanih propusnih omjera kada su benchmarci kompajlirani sa osnovnim podešavanjem.

U svim slučajevima veći rezultat znači bolje performanse.

Metrika rezultata
Postoji nekoliko različitih načina mjerenja performansi računara. Jedan način je mjerenjem koliko brzo će računar završiti jedan zadatak, što je mjerenje brzine, dok je drugi način mjerenjem koliko zadataka računar može završiti u određenom vremenu, što je propusnost ili kapacitet.

SPEC metrika brzine (npr. SPECint2006) se koristi za upoređivanje vještine računara da završi jedan zadatak.
SPEC propusna metrika (npr. SPECint_rate2006) mjeri propusnost, odnosno mogućnost mašine da se nosi sa brojem zadataka.

Za propusne metrike, više kopija benchmarka se pokreću simultano. Obično broj kopija je isti kao i broj procesora na mašini, ali nije uslov. Npr. bilo bi sasvim prihvatljivo pokrenuti 63 kopije benchmarka na mašini sa 64 procesora, ostavljajući jedan slobodan da nadgleda sistem.

RUNSPEC alat
Runspec je osnovni alat u okruženju. Koristi se za bildanje benchmarka, pokretanje, validaciju i izvještaj o performansama.

Da bi se Runspec pokrenuo, potreban je konfiguracioni fajl, koji sadrži detaljne informacije o tome kako bildati i pokrenuti benchmarke. Ovaj konfiguracioni fajl je obični tekstualni fajl, a na oficijelnoj stranici SPEC-a moguće je naći već unaprijed pripremljene konfiguracione fajlove za ogroman broj sistema. Konfiguracioni fajl stoji u config direktoriju unutar direktorija na koji je instaliran CPU2006.  

Za pokretanje Runspec alata koristi se obična terminalska komanda runspec koja ima sintaksu:

runspec [opcije] [lista benchmarka koji se pokreću]

Opcije koje se koriste su mnogobrojne. Moguće je izvršiti razne akcije, gdje se specificira da li će se pokrenuti cijeli proces ili samo jedan njegov dio, da li će se prije izvršavanja kompajlirati benchmarci, itd. Također je u CPU2006 dostupna opcija upoređivanja verzije alata sa interneta i one na lokalnom računaru, u cilju osiguravanja najnovije verzije alata. Moguće je naznačiti naziv konfiguracionog fajla, broj iteracija svakog benchmarka, specificirati zastavice, izlazni format izvještaja, i mnoge druge. 

Što se tiče liste benchmarka koji se pokreću, moguće je specificirati da se pokreće cijeli set benchmarka fp za set benchmarka za rad sa pokretnim zarezom, ili int za integer benchmarke, ili je moguće specificirati samo pojedine benchmarke koji će se pokrenuti, a moguće je i isključiti pojedine benchmarke. 

Ukoliko neke od opcija nisu definisane, onda će se koristiti defaultne vrijednosti.

Ispod je dat jedan jednostavan primjer:
runspec --config reinhold_aug12a --reportable fp
config reinhold_aug12a znači da se koristi konfiguracioni fajl pod nazivom reinhold_aug12a
reportable znači da će se generirati izvještaj koji će biti po standardima SPEC-a, te da će se takav izvještaj moći koristiti u generalnim prezentacijama. Ova opcija tjera neke druge opcije da moraju biti setovane unutar određenih vrijednosti (npr. broj iteracija mora biti 3 ili veći), te ukoliko ovo nije slučaj, onda javlja grešku.
fp znači da će se pokrenuti svi benchmark-i koji su dio paketa benchmarka za provjeru rada CPU-a sa pokretnim zarezom.

Za prikaz svih dostupnih opcija koristi se sintaksa:
runspec --help ili
runspec –h ili
runspec -?

Referentna mašina
SPEC koristi referentnu mašinu za normalizaciju metrika performansi korištenih u CPU2006 okruženjima. Svaki benchmark je pokrenut i izmjeren na ovoj mašini da se ustanovi referentno vrijeme za taj benchmark. Ova vremena su onda korištena u SPEC kalkulacijama.

SPEC koristi historijski Sun-ov sistem, "Ultra Enterprise 2" koji je predstavljen 1997, kao referentnu mašinu. Referentna mašina koristi 296 MHz UltraSPARC II procesor, isti i za CPU2000 i za CPU2006. Ali referentne mašine za ova dva okruženja nisu identična: CPU2006 referentna mašina ima značajno bolje cacheve, i CPU2000 referentna mašina nema dovoljno memorije da pokrene CPU2006.

Potrebno je otprilike 12 dana za ispravno provođenje testiranja osnovnih metrika za CINT2006 i CFP2006 na CPU2006 referentnoj mašini.

Također pogledajte
 SPEC
 CINT2006
 CFP2006

Reference
 SPEC CPU2006 - oficijelna stranica 

Kategorija:Računarska mjerenja

en:Standard Performance Evaluation Corporation