SPEC CPU2006
Ovaj članak ili neki od njegovih odlomaka nije dovoljno potkrijepljen izvorima (literatura, veb-sajtovi ili drugi izvori). |
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
urediCINT2006 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
urediSvrha 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
urediSPEC 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
urediRezultati 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
urediPostoji 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
urediRunspec 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:
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:
- 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
urediSPEC 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.