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

uredi

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

Naziv benchmarka Programski jezik Opis
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

uredi

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:

  1. Filozofija,
  2. Bildanje,
  3. Pokretanje,
  4. Objavljivanje rezultata i
  5. 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

uredi

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

uredi

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

uredi

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

uredi

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

uredi

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

uredi

Reference

uredi