Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
CALCUL
Legea scalabilitii totale sau ntlnit i sub denumirea legea randamentelor n scdere (diminishing returns)
Computer Science and Electrical Engineering
Adrian FLOREA
se urmrete reducerea timpului de execuie (sau de rspuns timpul scurs ntre nceputul
i sfritul unui eveniment).
Timpul de execuie (latena) reprezint inversul (reciproca) performanei de procesare
Dac (X) este de n ori mai performant dect (Y) atunci:
Un server (SX) este mai performant dect altul (SY) dac execut mai multe tranzacii (operaii,
programe tasks, jobs) n acelai interval de timp. Cantitatea de tranzacii (operaii, programe
tasks, jobs, work) efectuat ntr-un interval de timp bine stabilit se definete throughput sau
performana sistemelor server.
n cazul serverelor nu se urmrete reducerea timpului de execuie ci creterea
performanei (execuia unui numr mai mare de operaii n acelai interval de timp).
Throughput (taskuri/secund) vs. Latena (secunde/pentru un task)
Cea mai direct definiie a timpului de execuie o reprezint latena de terminare a unui task,
incluznd accesele la disc, la memorie, activiti cu dispozitive periferice, alte interaciuni cu
sistemul de operare. n cadrul sistemelor server, caracterizate de multiprogramare, procesorul
(CPU) poate executa un alt program n timp ce ateapt finalizarea operaiilor de I/O (citire / scriere
din fiier, etc) nefiind necesar n acest caz minimizarea timpului de execuie al task-ului principal.
o CPU_time timp folosit exclusiv de procesor pentru calcul intern dintr-un singur task,
neincluznd timpul de ateptare pentru finalizarea operaiilor I/O sau pentru execuia altor taskuri.
o CPU_time nu este sesizat de utilizatorul sistemului. Acesta vede ntreg timpul de execuie.
o CPU_time poate fi descompus n:
User_CPU_time = timp petrecut cu instruciunile programului. Focalizarea se face pe
aceast metric n evaluarea i optimizarea microarhitecturilor de calcul de pe parcursul
acestui curs.
System_CPU_time = timp petrecut n cadrul sistemului de operare pentru execuia
diverselor rutine solicitate prin program (accese la periferice, memoria video, ntreruperi
software, etc). Depinde de fiecare SO pe care se execut task-ul respectiv. Poate reprezenta
pna la 35% din CPU_time.
A safe computer never produces an incorrect user-visible result. If a fault occurs, the
computer hides its effects from the user. Safety alone is not sufficient, however, because it does
not guarantee that the computer does anything useful. A computer that is disconnected from its
power source is safe it cannot produce an incorrect user-visible result yet it serves no purpose.
A live computer continues to make forward progress, even in the presence of faults. Ideally,
architects design computers that are both safe and live, even in the presence of faults. However,
even if a computer cannot provide liveness in all fault scenarios, maintaining safety in those
situations is still extremely valuable.
It is preferable for a computer to stop doing anything rather than to produce incorrect results.
An often used example of the benefits of safety, even if liveness cannot be ensured, is an automatic
teller machine (ATM). In the case of a fault, the bank would rather the ATM shut itself down
instead of dispensing incorrect amounts of cash.
o DISPONIBILITATEA fraciunea din timpul total n care sistemul este disponibil pentru
execuia oricrei aplicaii:
probability that the system has been operating correctly from time zero until
time t. Reliability is perhaps the best-known metric, and a well-known word, but
it is rarely an appropriate metric for architects. Unless a system failure is
catastrophic (e.g., avionics), reliability is a less useful metric than availability.
Pentru servere este la fel de important disponibilitatea ca i performana. Pierderea
financiar a unei companii cotate la burs n urma indisponibilitii serverelor proprii
este de peste $6,450,000 / or.
Mean Time Between Failures (MTBF)
msoar timpul mediu ntre dou cderi succesive ale sistemului (ct timp serverul
este utilizabil)
Pentru harddiscul unui sistem desktop, uzual MTBF=500.000 de ore.
Mean Time to Repair (MTRR)
msoar timpul mediu necesar revenirii dintr-o cdere a sistemului
Pentru un server cu sarcini multe MTRR0 ore (datorit redundanei oferite prin
dublarea numrului de hardiscuri i copierea informaiei n dou locuri diferite)
o DEPENDABILITATEA
n
Sistemul de calcul
Server de ultim generaie
Desktop de ultim generaie2
Laptop de ultim generaie
Laptop cu baterie optimizat
Procesoare dedicate
Procesoare de semnal (DSP)
Microcontrollere
AMD Opteron
X4 (Barcelona)
Intel Nehalem
Procesoare
IBM Power 6
multicore
Sun
Ultra SPARC T2
(Niagara 2)
Numr nuclee
per cip
Frecvena de
procesare
Puterea medie
instantanee
~130170W
~70100W
~30W
~310W
~0.51W
~100mW
~10mW
2.5 GHz
120W
4
2
2.5 GHz
4.7 GHz
100W
100W
1.4 GHz
94W
PMean
P(t ) dt
0
E PMean T
Unde T reprezint timpul total de simulare / execuie msurat n perioade de tact iar P este puterea
dinamic (Pd)
Puterea static incepe s aib un aport tot mai mare la puterea total
consumat.
Puterea static este puterea consumat ntr-un sistem n absena
oricrei comutaii si este definit ca produsul dintre tensiunea de
alimentare i curentul static. Aceast pierdere este datorat dispozitivelor
conectate la condensatori, cum ar fi tranzistori sau diode care, chiar dac sunt
inchise conduc o cantitate mic de curent. Chiar dac acest current este foarte
mic el poate descrca lent condensatorul. Imperfeciunile nedorite ale unor
materialele dielectrice folosite n condensatori pot contribui la
puterea static consumat. Materialul dielectric nefiind un izolator perfect
2
permite circularea unui curent static (de pierdere) mic care va descrca lent
condensatorul. Contribuia puterii statice la totalul de putere consumat intr-un
sistem este preconizat s creasc in tehnologiile viitoare datorit cresterii
exponeniale a curentului static pierdut odat cu scalarea tehnologiei.
International Technology Roadmap for Semiconductors (ITRS 2006)
[http://public.itrs.net/] anticipeaz c puterea static poate ajunge si la
50% din totalul de putere n urmtoarea generaie de procesoare.
Temperatura ajunge pn la 83C (se pot gti ochiuri linitit). Cipul are 2.5x2.5 cm2
Inductorii nu au o rezisten stabil n timp precum conductorii.
Variaia tensiunii instantanee (Vdd/Gnd Bounce calea direct a curentului ntre VDD i GND cnd
ambii tranzistori NMOS i PMOS conduc) determin pentru cei 20 de ciclii de tactCPU apariia unui
curent de scurgere.
n y z;
scalar secvential dependent de RAW
a n b;
100% = secvenial
------------------------------------------------------------------------------------------
for i 1 to 10
paralelizabil pe 10 procesoare
(1-f)100%=paralelizabil
-----------------------------------------------------------------------------------------Accelerarea S pentru un SMM cu N procesoare este, prin definiie:
T
S s
TN
unde:
Ts = timpul de execuie pentru cel mai rapid algoritm secvenial care rezolv problema pe un
monoprocesor (SISD)
TN = timpul de execuie al algoritmului paralel executat pe un SMM cu N procesoare.
Dac notm cu f = fracia (procentajul) din algoritm care are un caracter eminamente
secvenial, f[0,1], putem scrie:
(1 f) Ts
TN f Ts
,
N
adic
sau:
Ts
(1 f) Ts
f Ts
N
1
(1 f)
f
N
Presupunem c simulm o microarhitectur cu 10 parametrii (FR, IBS, Irmax, SizeIC, SizeDC, latentaDRAM,
ROBsize, RenBuffersize, optimizri_compilator), fiecare parametru putandu-se afla in 4 stari diferite
410=220=1048576 configuraii distincte de simulat * 24h de simulare per configuraie pe un sistem monoprocesor
2872 de ani (Se reamintete c pe n digii se pot reprezenta n baza b un bn numere: de la 00.00b) pn la (b-1)(b-1)
.(b-1)(b-1)b de la 0 la valoarea maxim (b-1)*b0+(b-1)*b1+(b-1)*b2+.+(b-1)*bn-1=(bn -1) deci bn numere.
Computer Science and Electrical Engineering
Adrian FLOREA
Joshua J. Yi, David J. Lilja Simulation of Computer Architectures: Simulators, Benchmarks, Methodologies, and
Recommendations, IEEE TRANSACTIONS ON COMPUTERS, VOL. 55, NO. 3, MARCH 2006.
METODOLOGIA DE SIMULARE poate fi de dou (trei, dar a treia reprezint un hibrid ntre
cele dou fundamentale) tipuri:
Execution driven simulation
caracterizat de cunoaterea n fiecare moment (ciclu "pipe") a coninutului resurselor
arhitecturale (regitri, locaii de memorie, uniti funcionale).
Simularea se face foarte detaliat, la nivel de ciclu de execuie al procesorului.
Outputs: - coninutul resurselor, gradul de ncrcare al acestora, rate de procesare, de hit
etc.
Fiiere trace care conin toate instruciunile main ale programelor de test n
ordinea n care se execut.
Trace driven simulation
analizeaz secvenial toate instruciunile din trace-urile generate de simulatorul bazat pe
execution driven, cu scopul de a determina instana optimal a arhitecturii - procesorul ce
urmeaz a fi implementat n hardware. TDS se preteaz la simularea cache-urilor de date
i instruciuni, mecanismelor de memorie virtual etc., datorit faptului c ofer pattern-uri
reale de adrese, n urma execuiei unor programe reprezentative.
Figura 1. Etapele de simulare, comparare i determinare efectiv ale unei arhitecturi optime, pornind de
la sursa HLL (High Level Languages) a programelor de test i pn la implementarea
hardware a arhitecturii
Figure 0.4. The thermal map of the Alpha 21364 architecture enhanced with RB and LVPT
Simulatorul TLP (cu paralelism simultan la nivelul firelor de executie multi2sim, msimcmp)
modulare (UniSim).
Avantaje:
o permite simularea multicore-urilor
o
mediu de simulare modular (se pot dezvolta separat, crete ncrederea n implementare
module mai mici, uor de testat)
Simularea la nivel de tranzactii se bazeaz pe limbaje de programare de nivel nalt, aa cum este SystemC, un limbaj
derivat din C++ pentru modelarea la nivel de sistem hardware-software (vezi http://www.systemc.org/ ) i pune n
eviden conceptul de separare a comunicaiei, fa de procesul computaional din cadrul sistemului. n abordarea la
nivel transactional (TLM), componentele sunt modelate ca i module care pot executa o mulime de procese concurente,
care calculeaz i le reprezint comportamentul. Aceste module comunic prin mesaje sub form de tranzacii folosind
canale de comunicaie abstracte. Interfeele TLM sunt implementate n cadrul canalelor de comunicaie pentru a
ncapsula protocoale de comunicaie. Pentru a putea comunica, un proces trebuie doar s acceseze aceste interfee, prin
porturile pe care le are modulul cu care se dorete comunicarea.
5
Pentru detalii suplimentare legate de instrumente software utile n analiza i proiectarea microarhitecturilor a se vedea
capitolul 3 din lucrarea 4 Predicia dinamic a valorilor n microprocesoarele generaiei urmtoare din bibliografia
obligatorie prezentat n cursul introductiv i n fia disciplinei.
Computer Science and Electrical Engineering
Adrian FLOREA
Cross-compilatoare:
crosstool-ppc405-4.1.1.tar.gz
crosstool-ppc750.tar.gz
crosstool-arm.tar.gz
crosstool-mips.tar.gz
PENTRU
DETERMINAREA
de prezena celorlalte programe de test. Orice concluzie se trage de pe urma simulrii ntregii
suite.
o Simularea unor nuclee (kernels) ale aplicaiilor reale (Linpack, Bucle Livermore).
Buclele Livermore reprezint o colecie de 24 structuri repetitive DO-loops implementate n
Fortran. Constituie o mixtur de bucle vectorizabile i nevectorizabile care testeaz
capabilitile de calcul ale sistemului hardware i abilitile software n compilarea eficient a
codului n vederea vectorizrii buclelor de program.
LINPACK reprezint o colecie de subroutine scrise n Fortran care analizeaz i rezolv
sisteme de ecuaii liniare i probleme de complexitate cel puin ptratic. Nucleul LINPACK
constituie o msur a puterii de calcul a unui sistem ce opereaz n virgul mobil.
o Toy Programs programe simple de test avnd pn la 100 de linii de cod i care produc
rezultate apriori cunoscute de ctre utilizator. Exemple: Ciurul lui Eratostene, Quicksort,
Puzzle, Hanoi, suita de benchmark-uri Stanford.
o Folosirea unor programe sintetice (dedicate) care imit din punct de vedere statistic
comportamentul (frecvena operaiilor i a operanzilor, etc) a unui larg set de aplicaii. Sunt
similare n filozofie cu benchmark-urile de tip kernel i utilizate de ctre proiectanii de
compilatoare. Exemple: Whetstone, Dhrystone.
BENCHMARK-URI STANDARDIZATE.
Benchmark-urile reprezint seturi de aplicaii dezvoltate pentru evaluarea celor mai importante
metrici (performan, consum de putere, etc.) ale sistemelor de calcul (desktop, server, embedded,
reele) i pot fi folosite pe diverse platforme (procesor + Sistem de Operare): UNIX, Linux i
Microsoft Windows (dezvoltate de Microsoft).
Benchmark-urile SPEC (Standard Performance and Evaluation Corporation) au fost dezvoltate
de SPECs Open Systems Group (OSG), care nglobeaz peste 30 de productori de calculatoare,
integratori de sisteme, autori si consultani din ntreaga lume.
BAPCo (Business Applications Performance Corporation) reprezint un consoriu non-profit
avnd ca scop principal dezvoltarea i distribuia unui set de benchmark-uri performante bazate pe
aplicaii de uz general dar i pe sisteme de operare standardizate folosite n industrie. Rolul
benchmark-urilor BAPCo este de a evalua tehnologiile implementate pe diferite platforme. Din
BAPCo fac parte: AMD, Apple, ARCintuition, CNET, Dell, Hewlett-Packard, Intel, Lenovo,
Microsoft, NVIDIA, Sony, Toshiba, VIA Technologies, ZDNet and Ziff Davis Media.
TPC (Transaction Processing Council) a fost creat prin mijlocul anilor 1980 de ctre un grup de
ingineri productori de calculatoare, integratori de sisteme. Scopul lor era de a crea un set de
benchmark-uri realiste pentru procesarea tranzaciilor (msoar abilitatea sistemului de a
manipula tranzacii, constnd n principiu n accese / interogri, actualizri ale bazelor de date).
Performana este raportat n tranzacii per secund.
SYSmark 2007 reprezint cea mai recent versiune de benchmark-uri BAPCo. Reflect patern-uri
de aplicaii (Video creation, E-learning, 3D Modeling, Office Productivity) ale utilizatorilor (clieni)
din domeniul economic. Caracterizeaz performana economic a unui client (aplicaii software
dedicate sectorului economic pe platform Microsoft Windows Vista).
SPEC CPU2006 este a 5-a versiune major a seturilor de benchmark-uri SPEC CPU, care, n 1989 a
devenit primul standard acceptat la scar larg pentru compararea performanelor la calcul intensiv
pe o varietate de arhitecturi.
Tehnologia sistemelor de calcul se dezvolt aa de repede, nct trebuie s oferim noi
pachete de benchmark-uri, pentru a asigura un mediu de testare adecvat. Benchmark-urile
standardizate, trebuie s reflecte mbuntirile tehnologice aferente microprocesoarelor, noi
compilatoare, aplicaii multimedia i transmisii de semnal audio/video/GSM, care s-a fcut n
ultimii 6 ani.(adaptare dup Kaivalya M. Dixit, preedinte SPEC 19902002).
CLASIFICAREA BENCHMARK-URILOR. SUITE REPREZENTATIVE
o Benchmark-uri desktop
CPU intensive (SPEC CPU2006 CINT2006, CFP2006)
grafic intensive (cu toate c multe aplicaii grafice includ calcul intensiv i din partea CPU)
SPECviewperf (benchmark-uri care se bazeaz pe biblioteci OpenGL), SPECapc
(Pro/Engineer, SolidWorks 99, Unigraphics V15) aplicaii care folosesc din abunden
primitive grafice.
o Benchmark-uri server (TPC-C, TPC-H, TPC-R, TPC-W, SPECjbb).
o Benchmark-uri dedicate (embedded) EEMBC (embassy), SPECjvm2008, SoftFloat,
MediaBench
TPC-C simuleaz un mediu complex de interogri. Se bazeaz pe servere de baze de date
standardizate: Oracle, Microsoft SQL.
TPC-H modeleaz un sistem de decizii ad-hoc n care nu se ine cont de patern-ul anterior de
interogri (neexistnd legturi ntre acestea) pentru optimizarea interogrilor viiitoare; timpul de
execuie al anumitor interogri poate fi foarte mare = dezavantaj.
TPC-R simuleaz un sistem de decizii pentru afaceri n care utilizatorii ruleaz un set standard de
interogri. n TPC-R, se ine cont de informaiile privind interogrile anteriore pentru optimizarea
interogrilor viiitoare.
TPC-W simuleaz activitile unui server web dedicat tranzaciilor unei companii din domeniul
economic.
SPEC CPU2006 cuprinde 2 seturi de benchmark-uri: CINT2006 pentru msurarea performanelor
n cazul calculului intensiv cu numere ntregi i CFP2006 pentru performanele n cazul calculului
intensiv n virgul flotant. Cele 2 seturi msoar performanele procesorului, arhitecturii memoriei
i compilatorului unui calculator.
Setul CINT2006 cuprinde 12 benchmark-uri bazate pe aplicaii, scrise n limbajele C (9) i C+
+ (3), iar CFP2000 cuprinde 17 benchmark-uri care realizeaz operaii n virgul mobil, scrise n
FORTRAN (6), C++ (4), C (3) i 4 ntr-un amestec de C i Fortran.
n ultima decad, substaniale mbuntiri au avut loc n tehnologia compilatoarelor pentru
extragerea i valorificarea paralelismului la nivelul instruciunilor (ILP). Aceste aplicaii nu cuprind
toate elementele eseniale ale aplicaiilor multimedia i de comunicaie.
SPEC2006 programs and the evolution of the SPEC benchmarks over time, with integer programs
above the line and floating-point programs below the line.The figure shows all 70 of the programs in the
1989,1992,1995,2000, and 2006 releases. Only 3 integer programs and 3 floating-point programs survived
three or more generations.
Note that all the floating-point programs are new for SPEC2006. Although a few are carried over from
generation to generation, the version of the program changes and either the input or the size of the
benchmark is often changed to increase its running time and to avoid perturbation in measurement or
domination of the execution time by some factor other than CPU time.
Tehnici de reorganizare a codului de tip: loop unrolling, software pipelining, mov merging, mov reabsorption,
immediate merging, loop interchange, function inlining, merging array, etc contribuie la optimizarea programelor
n vederea creterii paralelismului la nivelul instruciunilor.
Computer Science and Electrical Engineering
Adrian FLOREA
o Prima metric (M1 numrul de instruciuni din program) depinde de program, de limbajul
n care este implementat aplicaia, de ISA procesorului (programul poate fi scris n limbaj de
asamblare) n final el fiind translatat n cod main i executat, i evident de compilator.
o A doua metric (M2 numrul de ciclii n care se execut o instruciune) poate depinde de
scheduler (component a compilatorului) dac se ncearc optimizarea i execuia n paralel a
mai multor instruciuni independente, dar depinde n mod cert de microarhitectur (adncimea
structurii pipeline, gradul de superscalaritate 7; proiectarea anumitor instruciuni flotante
nmulire/mprire/radical poate fi optimizat8).
o Dac primele dou metrici erau arhitecturale, a treia (M3 numrul de ciclii de tact
procesor dintr-o secund) este tehnologic i depinde de fizicieni, electroniti, proiectani de
circuite logice / secveniale n vederea creterii frecvenei de comutaie a tranzistorilor i de
minimizare a timpului de execuie a fiecrei faze de procesare ( decodificare / execuie
etc.) i a perioadei de tact a procesorului.
IRETLICURI ARHITECTURALE UZUALE
o Lungimea programului este constant.
Se simuleaz n mod repetat aceleai benchmark-uri, folosindu-se de acelai compilator
Uneori pot fi variate opiuni de compilare pentru observarea impactului asupra performanei a
tehnicilor arhitecturale propuse i n ce msur ctigul se datoreaz compilatorului.
o Perioada de tact este constant (secund / ciclii de tactCPU).
Asftel, n majoritatea colectivelor de cercetare academic, prin simulare execution-driven se
determin performana de procesare prin focalizarea pe studiul ciclilor / instruciune. n
consecin, se modific configuraia microarhitectural pentru calculul IPC (instruciuni / ciclu de
tactCPU) optim.
Efectul hazardurilor de ramificaie (predicia greit a instruciunilor de salt) este senzitiv la microarhitectur,
afectnd performana de procesare. O structur pipeline cu 20 de faze de procesare cum are Intel Pentium 4 i un factor
de superscalaritate de 4, sau chiar 8 instruciuni, determin ca n execu ie s se gseasc un numr de instruc iuni de
ordinul sutelor chiar miilor. Avnd n vedere c uneori pot trece i 100 de T CPU pn cnd se soluioneaz o instruciune
de salt, rezult necesitatea evacurii tuturor instruciunilor procesate pe calea gre it i reluarea de pe calea corect, cu
implicaii negative asupra performanei de procesare i a energiei disipate.
8
Dezvoltarea unor structuri de reutilizare a rezultatelor instruciunilor anterior executate incluznd i cazul
instruciunilor triviale.
Computer Science and Electrical Engineering
Adrian FLOREA
o Viteza (rata) de execuie a sistemului (P) este n acest caz dat de relaia:
rezult Speed-up=IRCSB / IRCSA = 1.2x => programul P1 se execut de 1.2 ori mai
rapid pe CSB dect pe CSA.
Verificai n aceeai manier, dar n condiiile de la punctul b) care dintre cele dou sisteme
de calcul este mai rapid.
2. Se consider c dintre instruciunile unui program executat pe un procesor MIPS 10% sunt
instruciuni de mprire. Toate celelalte instruciuni (care nu sunt de mprire) necesit 1
ciclu de tact pentru execuie. Instruciunile de mprire se execut n 50 de ciclii de tact (se
mai numesc mari consumatoare de timp). Ce observai i cum interpretai n doar dou
propoziii dup ce rezolvai cerinele de la a) la f)?
a) Determinai care este metrica CPI aferent programului executat pe acest tip de
procesor? (n ci ciclii de tact se execut n medie un astfel de program)
b) Ce procent de timp se pierde doar cu operaiile / instruciunile de mprire?
c) Care este speed-up-ul obinut dac mbuntim performana de procesare a
instruciunilor de mprire de 2 ori (numrul de ciclii de execuie pentru o instruciune
de mprire se reduce la jumtate)?
d) Care este speed-up-ul obinut dac mbuntim performana de procesare a
instruciunilor de mprire de 5 ori (numrul de ciclii de execuie pentru o instruciune
de mprire se reduce de 5 ori)?
e) Aceeai ntrebare ca la punctele anterioare c) i d) dac mbuntim performana de
procesare a instruciunilor de mprire de 10 ori respectiv de 50 de ori?
f) Ct va deveni speed-up-ul dac instruciunile de mprire vor deveni de un infinit de ori
mai rapide (timp execuie0 tacte de procesare)?
Bibliografie
[Sch02] Schmidt R., Notohardjono B. D., High-end server low-temperature cooling, IBM Journal
of Research and Development, Volume 46 Issue 6, November 2002, Pages 739 - 751.