Густафсонов закон (још познат и као Густафсонов и Барсисов закон) је закон у рачунарству који нам говори да се израчунавања, која користе произвљно велике скупове података, могу ефикасно паралелизовати. Густафсонов закон обезбеђује контрапункт Амдаловом закону, који описује границу повећања брзине које омогућава паралелизам (тако што даје фиксну величину скупова). Густафсонов закон је први пут описао Џон Л. Густафсон и његов колега Едвин Х. Барсис.[1]
Где је:
P број процесора
S је убрзање
је не-паралелизован део било ког паралелног процеса
Густафсонов закон говори о манама Амдаловог закона, који не експлоатише потпуно моћ израчунавања која постаје доступна како се повећава број машина. Уместо тога, Густафсонов закон предлаже да програмери теже да одреде величину проблема да би користили доступну оперему да би решили проблеме у практичном фиксном временском периоду. Ако је бржа или доступнија опрема доступна, већи проблеми ће се решавати у истом временском периоду.
Наводно, Густафсон је назвао своје метрично „скаларно убрзање”, јер је у изнад наведеном изразу S(P) однос времена извршавања једног процеса и времена паралелног извршавања по процесу, претходни израз је скалиран са P, док дотично слово представља претпоставку заокруживања или вредност најближу томе. Ово је контраст у односу на Амдалов закон, чиме је време извршавања једног процеса фиксне величине, и пореди га са смањивањем времена паралелног извршавања по једном процесу. Тако да је Амдалов закон базиран на претпоставци да постоји проблем фиксне величине: претпоставља се да се свеукупно оптерећење програма не мења са бројем процесора. Оба закона претпостављају да је паралелизован део једнако подељен на P процесора.
Циљ Густафсоновог закона је био да помери границе циљева истраживања или да реформулише проблеме тако да би било могуће решити већи проблем за исто време. У неку руку закон редефинише ефикасност због могућности да границе, које је секвенцијални програм наметнуо, могу бити одбијене повећањем броја израчунавања.
Извођење Густафсоновог закона
Време извршавања програма на рачунару са паралелном обрадом се може свести на:
Где је секвенцијално време а паралелно време на било ком од P процесора.
Кључна претпоставка Густафсона и Барсиса је да укупна количина посла који се обавља паралелно "варира линеарно са бројем процесора". У том случају, практична импликација једног процесора је способнија од једног задатка обраде која треба да се изврши паралелно са (обично сличним) другим задацима. То подразумева да би b требало да буде фиксно како P варира. Време које одговара секвенцијалној обради је:
Убрзање је према томе:
Пошто је
секвенцијалан део паралелног времена извршавања, имамо:
Тако да, ако је мало, убрзање је приближно P, као и што је тражено. Може чак бити случај и да се умањије док P расте (заједно са величином проблема). Ако је то тачно, онда S приступа P монотоно са растом P.
Густафсонов закон изгледа спашава паралелну обраду од Амдаловог закона. Базиран је на идеји да, ако је дозвољено да расте величина проблема монотоно са P, онда секвенцијалан део оптерећења не би доминирао. Ово се омогућава тиме што се већина задатака индивидуално садржи у једном процесоровом обиму обраде. Тиме, један процесор може омогућити више задатака, док један задатак не може бити на више процесора. Ово је такође правило за пројекте радних сајтова, који имају више пројеката по сајту, али само један сајт по пројекту.
Метафора вожње
Амдалов закон отприлике каже:
„
Претпоставимо да возило путује између 2 града који су 100km један од другог, и да је већ пропутовало пола пута, брзином од 50km/h, за један сат. Без обзира на то колико ће се возило брзо кретати до краја пута, немогуће је да ће достићи просечну брзину од 145km/h пре него што дође до другог града. Пошто му је већ било потребно 1 сат да пређе 100km, вожњом бесконачно великом брзином би постигли брзину од само 100km/h.
”
Густафсонов закон отприлике каже:
„
Претпоставимо да се возило већ кретало неко време од најмање 145km/h. Ако му дамо довољно времена и пута које треба да пређе, просечна брзина возила би увек достизала брзину од 145km/h, без обзира на то колико далеко или колико споро се бећ кретало. На пример, ако се возило кретало сат времена брзином од 50km/h, могло би да постигне ово возећи још два сата брзином од 200km/h или барем 250km/h још један сат, итд.
”
Апликације
Апликације у истраживањима
Амдалов закон претпоставља да ће захтеви за израчунавање остати исти, иако нам је дато повећање процесорске моћи. Другим речима, за анализу истих података ће требати мање времена са повећањем процесорке моћи.
Густафсон, у другу руку, говори да ће више процесорске моћи изазвати да подаци буду пажљивије и у потпуности анализирани: пиксел по пиклсел или јединица по јединица, уместо у већој мери. Не би било могуће, нити практично, симулирати нуклеарну детонацију на свакој згради, аутомобилу и њиховим садржајима (намештај, снага структуре, итд.) јер би овакви прорачуни одузели више времена него што је потребно да се добије одговор и због тога ће повећање моћи израчунавања навести истраживаче да додају више података да би у потпуности симулирали више променљивих и тиме добили прецизније резултате.
Апликације у свакидашњим рачунарским системима
Амдалов закон открива ограничење у, на пример, способности више језгара да смање време које је потребно рачунару да покрене оперативни систем и да буде спреман за употребу. Под претпоставком да се процес подизања система углавном врши паралелно, учетворостручувањем рачунарске моћи на систему коме треба минут да се покрене добићемо смањење времена покретања система од чак само 15 секунди. Али већа и већа паралелизација кад тад неће успети да покрене систем брже ако се било који део процеса за покретање оперативног система изврши секвенцијално.
Густафсонов закон тврди да ће четвороструко повећање рачунарске моћи, уместо тога, да доведе до сличног повећања у очекивањима, за шта ће систем бити способан. Ако је једно-минутно дизање система прихватљиво већини корисника, онда је то почетна тачка од које ће се повећавати карактеристике и функције система. Време које је потребно да се подигне оперативни систем ће остати исто тј. један минут, али ће нови систем обухватати више графичких или кориснички пријатељских карактеристика.
Ограничења
Неки проблеми немају суштински веће скупове података. На пример, обрада једног податка по становнику света се повећава за само пар процената годишње. Суштинска тачка Густафсоновог закона је да ће такви проблеми мање вероватно постати плодне апликације паралелизма.
Нелинеарни алгоритми ће тешко искористити предност паралелизма „изложеног” од стране Густафсоновог закона. Снајдер (енгл. Snyder)[2] истиче да алгоритми сложености O(N3) који дуплирају кохерентност дају само око 26% повећање величине проблема. Тако, док је могуће да се заузме огромна конкурентност, то може довести до само мале предности у односу на оригинал. Мање конкурентна решења, међутим, у пракси, су давала масивна побољшања.
Хил и Марти (Hill,Marty)[3] такође наглашавају да су методе убрзавања секвенцијалног извршавања и даље потребне, чак и за вишепроцесорске машине. Излажу да локалне неефикасне методе могу бити глобално ефикасне када смање секвенцијалне фазе. Штавише, Ву и Ли (Woo,Lee)[4] су проучавали импликацију енергије и снаге на будућим више-језгарним процесорима базираним на Амдаловом закону, што је показало да асиметрични више-језгарни процесори могу постићи најбољу могућу ефикасност енергије активирањем оптималног броја језгара којима (под условом да је позната количина паралелизма пре извршавања).
^Amdahl's Law in the Multicore Era, Mark D. Hill and Michael R. Marty, IEEE Computer, vol. 41. pp. 33–38, July 2008. Also UW CS-TR-2007-1593, April 2007.