Квантитативни принципи пројектовања рачунара Убрзање Амдалов закон Густавсонов закон Једначине перформанси CPU-a
Убрзање Под претпоставком да смо побољшали неки део машине, убрзање је однос перформанси машине са побољшањем и перформанси машине без побољшања. Алтернативно, то је однос времена извршења програма на непобољшаној машини и времена извршења на побољшаној машини.
Амдалов закон (Amdahl’s Law, 1967) Максимално убрзање ограничено је процентуалним уделом секвенцијал-ног дела програма.
Амдалов закон (Amdahl’s Law, 1967) Дела времена израчунавања у оригиналној машини који се може побољшати (Fe). Убрзања које се добија само на побољшаном делу (Se).
Амдалов закон (Amdahl’s Law, 1967)
Амдалов закон (Amdahl’s Law, 1967) Део кода који се може паралелизовати (90%) Део кода који је серијски (10%) Чак иако је број процесора неограничен, и убзање тог дела бесконачно, време извршења је бар 10% од оригиналног времена и теоретски максимално убрзање је 10!
Густавсонов закон (Gustafson’s Law 1987) У пракси, величина проблема расте са бројем процесора!
Густавсонов закон (Gustafson’s Law 1987) Према Амдаловом закону убрзање је: S = (s + p)/(s + p/N) = 1/(s + p/N), s + p = 1
Густавсонов закон (Gustafson’s Law 1987) Сл. 1. Убрзање према Амдаловом закону.
Густавсонов закон (Gustafson’s Law 1987) Густавсон је приметио да су, у пракси, многи проблеми скалабилни, тј. да њихова величина расте са бројем процесора.
Густавсонов закон (Gustafson’s Law 1987) Ако су s’ и p’ времена потрошена на серијски и паралелни део програма (на паралелном систему са N процесора), тада једном процесору треба време од s’ + p’N да изврши задатак.
Густавсонов закон (Gustafson’s Law 1987) Сада је скалирано убрзање једнако Sscaled = (s’ + p’N)/(s’ + p’) = s’ + p’N = N + (1 - N)s’, s’ + p’ = 1 Ова функција је линеарна и зависи од броја процесора!
Једначине перформанси CPU-а Фреквенција тактног сигнала fc = 1/ где је период тактног сигнала. Корисничко CPU време ТCPU = Nc = Nc / fc где је Nc број тактних периода потребних да са изврши програм.
Једначине перформанси CPU-а Ако знамо укупан број циклуса и број инструкција можемо да израчунамо средњи број циклуса по инструкцији (clock Cycles Per Instruction - CPI) CPI = Nc /N, где је N број инструкција у програму.
Једначине перформанси CPU-а Сада је Nc = CPIN, односно ТCPU = Nc = NCPI.
Једначине перформанси CPU-а Последњи израз је груба процена времена извршења програма! Времена извршења различитих ин-струкција могу бити веома различита! Зато се инструкције деле у више група у зависности од времена потребног за њихово извршење.
Једначине перформанси CPU-а n – број различитих типова инструкција у програму Ni – број инструкција типа i које се јављају у програму CPIi – средњи број циклуса потребних за извршење инструкција типа i.
Једначине перформанси CPU-а Израз Ni/N назива се фреквенција (вероватноћа) појављивања инструкције типа i у програму.
Једначине перформанси CPU-а Алтернативна мера је MIPS (Milion Instructions Per Second). MIPS = N/(TCPU106) = = N/(NCPI 106) = = fc/(CPI106) TCPU = N/(MIPS106)
Једначине перформанси CPU-а MFLOPS (Milion Floating Point Opearations Per Second). MFLOPS = NFP/(TCPU106)