• No results found

Det slutgiltiga testets resultat kan ses i Figure 15. Testet som utförs är av det dynamiskt adaptiva systemets förmåga att anpassa sig efter datorn. Resultatet som ges från testet är dels vilket FPS-värde datorn har som medelvärde men också vilka teknikerna systemet valt för datorn när testet avslutas.

Resultaten från testet med det dynamiskt adaptiva systemet kan ses i Table 1. Samtliga datorer får ett resultat inom godkänd nivå med 45 < F P S < 60. Resultaten i Table 1 visar också att de kraftigare datorerna använder mer avancerade tekniker för applikationen.

4.4 Dynamiskt adaptivt system 4 RESULTAT

Figur 15: FPS-resultat för det dynamiskt adaptiva systemet.

Tabell 1: Resultat från test av dynamiskt adaptivt system

Dator 1 Dator 2 Dator 3 Dator 4 Dator 5 Dator 6

FPS 48.84 49.03 50.13 57.68 54.25 58.09

Shader-teknik Lightning Delay 500 Lightning Parallax Delay 100 Delay 100

Boll-teknik 100 75 100 150 75 150

5 ANALYS

5 Analys

5.1 Resultat

Testerna utfördes för att undersöka hur tekniker påverkar applikationens prestanda och det dynamiskt adaptiva systemets förmåga att anpassa teknikerna mot datorn.

5.1.1 Boll-teknik

Testfall 13 varierar aktiv Boll-teknik som applikationen använder. Boll-tekniker påverkar arbetsbelastning för processorn genom att öka antalet fysiska objekt som existerar sam- tidigt i applikationen. Testerna utfördes med tre olika nivåer för Boll-teknik som varierar hur stort antal fysiska objekt som existerar samtidigt i applikationsvärlden.

Från testresultaten kan utläsas att Boll-teknikerna har stor påverkan för applikationens prestanda. Samtliga datorer hanterar Test 1 och Test 2 med, för undersökningen, godkänd prestanda. I Test 3 där Boll-teknikens nivå höjs markant sjunker testresultaten för Dator 15 under 45 FPS. Dator 6 påverkas inte lika kraftigt av den höjda nivån för processorns arbetsbörda och hamnar som ensam testdator ovanför den godkända nivån. Resultaten visar tydligt att val av Boll-teknik påverkar applikationens prestanda. Testresultaten för datorerna 15, trots att de inte anses godtagbara för undersökningen, är inte katastrofala och fungerar för lättare applikationers prestandabehov. Resultaten visar ändå att appli- kationens prestanda kan skiftas beroende på vilken teknik som används. Resultatet för Dator 6 visar också det skiljer sig mellan datorerna vilken Boll-teknik de kan hantera. Da- tor 6 har kapacitet att arbeta med mer avancerad Boll-teknik än övriga testdatorer vilket applikationen kan utnyttja.

5.1.2 Shader-teknik

Redan i första testet av Shader-teknik har Dator 1 lågt testresultat. Då Shader-tekniken i Test 4 är den lägsta nivån, som även användes i Test 13, beror det på den ökade nivån av Boll-teknik och LoD-teknik som används i testfall 48. Resultaten för Dator 1 sjunker procentuellt ganska kraftigt för varje testfall med Shader-teknik, något som tyder på låg kapacitet hos grakkortet. Resultaten visar att Dator 1 bör använda lägsta nivån av Shader- teknik för att hålla applikationens prestanda uppe.

Dator 2 som presterar bra i tester med Boll-teknik har svårare när mer avancerade Shader-tekniker används. Resultaten antyder att Dator 2 har relativt övriga datorer högre kapacitet för processorn än grakkortet. Vid jämförelse mellan Dator 2 och Dator 3 visar resultaten att det är lämpligt att separera mätningar mellan olika tekniker. I samtliga test- fall 13 har Dator 2 högre testresultat än Dator 3 när Boll-teknik och därmed processorns belastning varieras. Under testfall 48 där istället Shader-teknik skiftas är rollerna helt omvända och Dator 3 presterar över Dator 2 med klar marginal för alla tester. Resultaten pekar på att Dator 2 har kraftiga processor än Dator 3 medan Dator 3 har större kapacitet för beräkningar på grakkortet.

Resultaten visar också att det är stor skillnad mellan datorernas prestanda, särskilt vid högre nivåer. Datorerna 46 presterar påtagligt bättre än de sämre datorerna. Dato-

5.2 Dynamiskt adaptivt system 5 ANALYS rerna med större kapacitet har möjlighet till en graskt mer avancerad presentation av applikationen med hög prestanda.

5.1.3 LoD-teknik

Resultaten från testerna som varierar LoD-teknik, Test 911, visar liknande mönster som testfallen 48. LoD-teknik och Shader-teknik har liknande eekt för prestandan genom att påverka grakkortet. Trots att Shader-teknik och LoD-teknik inverkar på separata delar av grakrenderingens pipeline påminner testresultaten om varandra. Dator 1 och Dator 2 når över godkänd prestandanivå endast i första testet av LoD-teknik. Dator 3 har snäppet kraftigare grakkort och klarar även Test 10. Resultaten tyder på att datorerna 13 har sämre grakkortskapacitet än datorerna 46 och bör därför presentera applikationen med enklare graska tekniker. LoD-tekniken är den teknik med tydligast verklighetsförankring då det är en vedertagen teknik för moderna spel.

5.1.4 Summering av teknikanalys

Utifrån testerna kan uttydas att de tekniker applikationen använder har stor betydelse för dess prestanda. Framförallt vid användande av tyngre Shader-tekniker syns en klar skillnad och många av testdatorerna får svårt att prestera. Testerna visar att de mindre kraftiga datorerna inte lyckas prestera då teknikerna är för tunga, medan datorer med bättre prestanda hanterar teknikerna betydligt bättre. Undersökningen visar att de tyngre datorerna har kapacitet att använda tyngre tekniker med en bibehållen uppdateringsfre- kvens och möjliggör en visuellt mer imponerande applikation. Om datorerna med lägre kapacitet använder samma tekniker, presterar applikationen inte på en acceptabel nivå. Den visuella presentationen för datorerna som använder lägre tekniker sjunker i kvalitet, men kan applikationen kan bibehålla en högre prestanda.

I en jämförelse mellan Dator 3 och Dator 2 kan man se att det nns syfte i att mäta teknikerna var för sig och inte enbart applikationens totala prestanda. Dator 2 presterar bättre än Dator 3 under tester med högre Boll-teknik, medan Dator 3 presterar bättre i de tester med shader och LoD-teknikerna. Testresultaten visar att det nns ingen relationen mellan hur applikationen presterar för processorn och grakkortet. Därför kan Dator 2 få bättre testresultat för teknikerna som påverkar processorn medan Dator 3 presterar bättre på grakkortet.

5.2 Dynamiskt adaptivt system

Underlag för analys är det sista testfallet då applikationen använder det dynamiskt ad- aptiva systemet. Det adaptiva systemet strävar ständigt efter att använda mer de mer avancerade teknikerna och samtidigt hålla FPS-värdet på en stabil nivå. Slutresultatet från testerna visar att alla testdatorer avancerade från grundinställningarna som appli- kationen startar med. Testerna bevisar att det dynamiskt adaptiva systemet har varierat vilka tekniker applikationen använder sig av. Resultaten visar också att de kraftigare dato- rerna med större kapacitet använder mer avancerade tekniker än de datorerna med sämre kapacitet. Slutligen visar resultaten att samtliga datorers prestandaresultat hamnar inom

5.2 Dynamiskt adaptivt system 5 ANALYS den accepterade nivån med 45 < F P S < 60. Testresultaten för det dynamiskt adaptiva systemet visar att systemet med ett tillfredsställande resultat anpassar sig efter datorn applikationen körs på. Undersökningen bevisar att det är möjligt för applikationen att an- passa sig efter exekveringsmiljön. För de kraftigare testdatorerna valde applikationen mer avancerade tekniker. För de svagare datorerna behöll applikationen enklare tekniker för att upprätthålla prestandanivån.

6 DISKUSSION

6 Diskussion

Applikationen som utvecklats är en implementation av själv-optimeringskomponenten inom Autonomic Computing. Systemet som sköter den dynamiska anpassningen är utformad en- ligt konceptmallen för att autonomiskt system presenterad av IBM[7]. I sin forskning visar Gu m..[4] att spel kan variera i komplexitet och är lämpliga för DVFS-implementationer. Testerna utförda i detta arbete bygger vidare på antagandet att spels komplexitet är kva- licerad att mätas och visar att en spelapplikationen implementerad med ett autonomiskt själv-optimerande systemet har möjlighet att mäta sin prestanda och anpassa applikatio- nens inställningar efter resultaten.

6.1 Prestanda

Med ett system som automatiskt anpassar sig efter datorns behov och kapacitet kan ap- plikationer underlätta för användaren och erbjuda en bättre upplevelse mer lättillgängligt. Det dynamiskt adaptiva systemet kan själv lägga sig på en nivå där datorns kapacitet kom- mer till rätt användning. Testerna verierar möjligheten att tillverka applikationer med ett adaptivt systemet i grunden. Testfallen som undersökts kan däremot inte bevisa stabilite- ten och kontinuiteten för systemet. En möjlig konsekvens av det adaptiva system är att teknikerna skiftas ofta och skapar stor variation av upplevelsen. Det dynamiska systemet som hanterar förändringarna måste byggas på ett sådant sätt att tekniker inte byts ut fram och tillbaka vilket skapar hopp i uppdateringsfrekvensen.

Exempel: Då en teknik presterar bra, beslutar det adaptiva systemet att avancera till nästa steg av samma tekniktyp. Den nya tekniken är betydligt tyngre för datorn och ap- plikationens uppdateringsfrekvens sjunker. Systemet byter ut den tyngre tekniken mot den förra aktiva tekniken och uppdateringsfrekvensen återställs. Efter en tid med den enklare tekniken anser systemet att tekniken presterar bra och avancerar till nästa teknik igen, då samma eekt upprepas.

I en tidig version av det utvecklade systemet uppstod den beskrivna situationen med jämna mellanrum. Genom att implementera en modell av metoden som Gu m.[5] presen- terar stabiliseras upprepat skiftande av tekniker och ger bättre resultat för det dynamiskt adaptiva systemet.

Det utvecklade dynamiskt adaptiva systemet verierar med testresultaten möjligheten att implementera en anpassande struktur för applikationer. Det utvecklade systemet är dock inte optimalt implementerat och har en del aspekter vilka kan förbättras med vida- re utveckling för att frambringa bättre resultat. De olika typerna av tekniker har ingen kommunikation sinsemellan. Två tekniktyper som mäter samma fokusvariabel kan påverka varandras mätresultat på sätt som systemet inte designat. Ena tekniktypens aktiva teknik kan ha blivit accepterad för att stanna kvar och fungerar väl när den andra tekniktypens aktiva teknik, med samma fokusvariabel, byter upp sig till en högre nivå. Detta kan påverka FPS-värdet så det sjunker under acceptabel nivå. Då den teknik som nyss avancerat är un- der sin prövotid, tiden en teknik får vara aktiv före den evalueras, har den svårare att bytas ut av systemet än de andra teknikerna. Risken är i detta fall stor att den teknik som av systemet ansågs accepterad får sämre prestanda på grund av den nya teknikens påverkan

6.1 Prestanda 6 DISKUSSION och blir nedskiftad. Det dynamiska systemet kan istället implementeras med ett centralt hanteringssystem med bättre kommunikation mellan tekniktyper. Tekniker som påverkar samma delar av applikationens prestanda blir införstådda i att en ny teknik är under sin prövotid och har möjlighet att vara med liberal med sina egna värden för en period. Det dynamiska systemet kan mer noggrant mäta vilken teknik som påverkar prestandan.

Applikations adaptiva system tar inte heller hänsyn till hur tekniktyper med olika fokusvariabler påverkar varandra. Som exempel har Boll-teknik och LoD-teknik en stark relationen mellan sig. Boll-teknik påverkar prestandan för LoD-tekniken med er synliga objekt som ska renderas. Det dynamiskt adaptiva systemet följer inga regler för vilken av teknikerna som prioriteras att avancera till en högre nivå. Systemet kan förbättras med en hierarki över teknikernas prioritet, vilken tekniktyp som har företräde. Kontrollen att välja vilka tekniker som har förtur i systemet kan ges antingen utvecklare eller användare av applikationen.

Lagspikes

En realtidapplikations belastning kan variera kraftigt under exekvering. Olika partier av applikationen innehåller varierande komplexitet och skapar uktuationer i FPS. Applika- tioner med ett väldesignat adaptivt system kan teoretiskt sett förebygga, eller minska, eekten av sådana förändringar. När systemet exekverat under en period har den haft tid att skaa kunskap om hur olika tekniker presterar för datorn den körs på. Genom att implementera ett systematiskt poängsystem över teknikerna kan det dynamiska systemet hålla koll på vilka tekniker som är enklare kontra svårare för datorn att använda. Ett re- sponsivt system kan med sådan information snabbt reagera på tyngre partier genom att byta till en teknik den förutser bättre hanterar det tunga partiet. Denna förmåga hos ett dynamiskt systemet är inte passande för alla typer av tekniker. En del tekniker tar ett tag efter de byts ut innan dess eekt slutar påverka prestandan. Detta beror på att datorn kan behöva byta ut yktigt minne och resurser som tillhört den gamla tekniken.

Eektiva reaktioner implementerade i det adaptiva systemet kan lämpligtvis kombine- ras med inläsning av nya resurser. Applikationen kan notiera det adaptiva systemet när ny data läses in, vilket i sin tur aktiverar enklare tekniker för applikationen att använda. Systemet kan undvika tillfälliga dippar av prestanda genom att reagera i förväg.

Applikationen som utvecklats för undersökningen tar ingen hänsyn till snabba utbyten av tekniker och är därmed inte testat inom detta arbete. Däremot visar testerna att för- ändringar av tekniker påverkar prestandan och att det dynamiskt adaptiva systemet har möjlighet att utvärdera teknikernas förmåga. Att skapa ett system med snabbare reaktion gentemot förändringar är ett område för vidare forskning. Hypotetiskt sätt kan applikatio- nen genom hela exekvering ligga på en stadig FPS trots stora förändringar i scenen.

7 SLUTSATS OCH VIDARE FORSKNING

7 Slutsats och vidare forskning

Detta arbete har undersökt vilken påverkan olika tekniker har på en applikations prestanda och hur ett dynamiskt adaptivt system automatiskt kan anpassa vilka tekniker applika- tionen använder efter datorns kapacitet. Genom tester med olika statiska tekniker bevisar undersökningen att de tekniker applikationen använder påverkar prestandan i stor utsträck- ning. Testerna visar att för datorer med låg kapacitet kan mer avancerade tekniker dra ner prestandan till nivåer då applikationen inte är användbar medan de kraftigaste datorerna med lätthet hanterar samma tekniker. Vid testande av det dynamiskt anpassande syste- met visar resultaten att det är möjligt att utveckla ett dynamiskt system som balanserar applikationens prestanda med anpassad tekniknivå för datorn. Testresultaten för den dyna- miska strukturen visar att systemet valt tekniker som den exekverande datorn kan hantera på en nivå som undersökningen denierat som acceptabel. Det implementerade adaptiva systemet visas med testerna vara kapabelt att mäta sig fram till vilka tekniker som passar datorn kan hantera. Det dynamiskt adaptiva systemet kan med vidare forskning förbättra förmågan att välja de mest eektiva teknikerna och stabilare förändringar.

Genom att utföra en initial testsekvens direkt när applikationen laddas in kan syste- met få ett riktvärde för datorns kapacitet. Systemet kan då välja en lämplig startnivå för datorn istället för att börja på lägsta nivån och arbeta sig uppåt. Även resursinladdningen kan optimeras i applikationen genom att först ladda in startteknikerna. Under exekvering fortsätter applikationen ladda in resterande resurser och det adaptiva systemets mätningar fortföljer normalt. En sådan förändring kan innebära snabbare stabilisering av systemets inställningar. Vilka tekniker som först laddas in kan skräddarsys enligt er parametrar. Applikationen kan starta med att ladda in de lågupplösta modellerna och texturerna först och börja använda när grunden är inladdad. Mer detaljerade modeller och texturer lad- das in under applikationens exekvering eller inte alls beroende på datorns kapacitet. Det adaptiva systemet kan avgöra om datorn presterar tillräckligt för att kunna hantera hög- re upplösta resurser. Applikationen kan spara in på nätverkstrak genom att bara ladda in de resurser den kommer använda. Användaren gynnas också genom snabbare starttid av applikationen. Applikationen bör sträva efter att så tidigt som möjligt vara körbar för användaren. Resursinladdning och starttider är ett eget forskningsområde som med fördel kan kombineras med det dynamiska systemet.

Vidare forskning bör undersöka en dynamiskt adaptiv struktur implementerad i en applikation med mer verklighetsförankring och med vettiga tekniker. Forskning kan under- söka hur ett dynamiskt adaptivt system sköter sig i en produktionsmiljö. Applikationen som utvecklats i detta arbete använder simulerade tekniker och implementerar ingen särskild optimering. Den naturliga progressionen från den utvecklade applikationen är att utveckla teknikerna eller ersätta med reella exempel. Applikationen som används i undersökningen implementerar främst tekniker som påverkar grakkortets belastning. Vidare undersökning kan granska tekniker för processorns belastning som inte påverkar spellogiken eller använ- darinteraktionen. Tänkbara tekniker är CPU-uppdaterade partikeleekter eller karaktärsa- nimationer av variabel komplexitet. Partikeleekter i WebGL-applikationer implementeras ofta på grakkortet, men för en dator med kraftigare processor kan grakkortets belastning lättas eller alternativt lämna utrymme för mer avancerade graska tekniker.

REFERENSER REFERENSER

Referenser

[1] J. S. Chase, D. C. Anderson, P. N. Thakar, A. M. Vahdat, R. P. Doyle, Managing energy and server resources in hosting centers, In Proceedings of the eighteenth ACM symposium on Operating systems principles, pages 103116, 2001

[2] K. Choi, R. Soma, M. Pedram, Dynamic voltage and frequency scaling based on workload decomposition, In Proceedings of the 2004 international symposium on Low power electronics and design, pages 174179, 2004

[3] D. Diaz, Klass.js, https://github.com/ded/klass, 2013-04-10

[4] Y. Gu, S. Chakraborty, W. T. Ooi, Games are up for DVFS, In Proceedings of the 43rd annual Design Automation Conference, pages 598603, 2006.

[5] Y. Gu, S. Chakraborty, Control theory-based DVS for interactive 3D games, In Pro- ceedings of the 45th annual Design Automation Conference, pages 740745, 2008. [6] S. Hedman, Cannon.js, https://github.com/schteppe/cannon.js, 2013-04-10 [7] IBM, An architectural blueprint for autonomic computing, 2005

[8] IBM, Autonomic Computing: IBM?s Perspective on the State of Information Tech- nology, 2001

[9] B. Jones, Gl Matrix, http://glmatrix.net/ , 2013-04-10

[10] J. O. Kephart, Autonomic computing: the rst decade, In Proceedings of the 8th ACM international conference on Autonomic computing, pages 12, 2011

[11] Khronos Group, WebGL Specication, http://www.khronos.org/registry/webgl/specs/latest/ , 2013-03-21

[12] Khronos Group, OpenGL, http://www.opengl.org/, 2013-04-03

[13] Khronos Group, OpenGL ES 2.0, http://www.khronos.org/opengles/, 2013-04-03 [14] M. Maggio, H. Homan, M. D. Santambrogio, A. Agarwal, A. Leva, Decision ma-

king in autonomic computing systems: comparison of approaches and techniques, In Proceedings of the 8th ACM international conference on Autonomic computing, pages 201204, 2011

[15] B. C. Mochocki, K. Lahiri, S. Cadambi, X. S. Hu, Signature-based workload estima- tion for mobile 3D graphics, In Proceedings of the 43rd annual Design Automation Conference, pages 592597, 2006

[16] W3C, High Resolution Timer, http://www.w3.org/TR/2012/REC-hr-time- 20121217/ , 2013-05-08

[17] WebGL Matrix Library Benchmark,http://stepheneb.github.io/webgl-matrix- benchmarks/matrix_benchmark.html, 2013-04-10

A ORDLISTA

A Ordlista

Applikation - I uppsatsen syftar applikation för det mesta till applikationer inom domä- nen realtidsrenderade applikationer, e.g. Spel eller andra 3D-miljöer.

DVFS - Dynamic Voltage Frequency Scaling, struktur som optimerar energitillgången för batteridrivna maskiner.

Prestanda - Begrepp för hur väl applikationen presterar. Lågnivå - Logik som är lik de uppgifter hårdvaran utför.

Pipeline - Sekvens av rutiner som utförs efter varandra. Grakkortet har en pipeline för att rendera.

Teknik - Inställning av applikationen som påverkar den visuella presentationen, applika- tionens beräknande intelligens eller kapacitet.

FPS - Uppdateringar per sekund. Mått för applikations prestanda.

LoD - Level of Detail. Detaljrikedom, där högre är önskvärt men tyngre för systemet. Shader - Program som körs på grakkortet. Bestämmer position och färg för objekt som

renderas.

Pixel - Pixel är den minsta beståndsdelen som bygger upp graken för en datorskärm. Vertex - Representation av en punkt i den graska världen. Alla objekt är uppbyggda av

vertex-punkter som kombinerade bildar geometriska gurer.

Vertex-shader - Delen av ett shader-program som hanterar vertex-punkter och minst beräknar dess position på skärmen.

Fragment-shader - Delen av shader-program som exekveras för varje pixel av skärmen. Bestämmer vilken slutgiltig färg varje pixel får.

B BILDER

B Bilder

Testresultat (FPS)

Dator 1 Dator 2 Dator 3 Dator 4 Dator 5 Dator 6

Test 1 53.41 59.09 58.9 59.05 59.18 59.11 Test 2 52.59 59.11 58.81 58.9 59.14 59.14 Test 3 37.18 44.23 40.62 37.26 40.97 55.73 Test 4 25.72 50.6 57.55 58.78 59.16 59.16 Test 5 24.29 47.59 56.03 59.0 59.15 59.13 Test 6 12.72 30.46 45.92 59.01 59.15 59.18 Test 7 2.08 4.92 11.23 53.36 57.91 59.05 Test 8 1.47 2.12 5.97 32.42 41.97 54.95 Test 9 49.59 58.09 58.26 58.96 58.87 59.1 Test 10 22.95 39.39 52.74 58.99 58.82 59.1 Test 11 10.17 24.06 33.64 58.97 58.95 59.12

Related documents