DV1567 Prestandaoptimering

Programkurs, 7,5 Högskolepoäng, Grundnivå, höstterminen 2019

Denna kurs är del av program och går inte att söka till.

Kursen i prestandaoptimering syftar till att ge studenten en översikt över olika metoder och tekniker för att optimera prestanda för ett program. Exempel på tekniker som gås igenom är högnivåoptimering, dvs hur strukturen av ett program kan påverka prestandan, kodoptimering, dvs hur man skriver effektiv programkod, och lågnivåoptimering, dvs hur man mha assemblykod kan utnyttja hårdvaran bättre. Kursen presenterar även ett antal olika metoder och tekniker för att mäta prestanda och beteende för ett program eller datorsystem. Slutligen tar kursen även upp grundläggande parallel programmering. Efter kursen ska studenten kunna analysera prestanda av ett program, identifiera prestandaproblem, samt kunna genomföra lämpliga optimeringar.

Fakta

  • Undervisningsform: Campus, Dagtid, deltid 50%
  • Period: 2019 vecka 36 till 2019 vecka 44
  • Nivå: G1F
  • Anmälan: Denna kurs är del av program och går inte att söka till.
  • Språk: Undervisningen ges på engelska.
  • Ort: Karlskrona
  • Huvudområde: Datavetenskap
  • Kursplan: Ladda ner
  • Välkomstbrev: Denna kurs är en del av ett program och saknar välkomstbrev.
  • Förkunskapskrav: För tillträde till kursen krävs att den studerande har avklarat: programmering 15 hp, algoritmer och datastrukturer 6 hp, datakommunikation 4 hp och realtids- och operativsystem 6 hp.

Innehåll

I kursen ingår följande moment:
  • Översikt över vilka faktorer som inverkar på prestanda i ett datorsystem
  • Hårdvara och plattformskomponenter som inverkar på programvarans prestanda
  • Metoder för prestandamätning och instrumentering av programvara
  • Prestanda och skalbarhetstest
  • Metoder för att modellera och analysera prestanda i dator- och programvarusystem
  • Hög- och lågnivåoptimeringar
  • Metoder och tekniker för att förbättra mjukvarans prestanda och skalbarhet (inklusive en översikt över distribuerad- och parallellprogrammering)

Lärandemål

Kunskap och förståelse
Efter genomförd kurs skall studenten:
  • kunna övergripande redogöra för hur ett modernt datorsystem är uppbyggt och hur det påverkar prestanda
  • kunna detaljerat redogöra för olika sätt att testa och mäta programvarans prestanda och skalbarhet
  • kunna övergripande redogöra för olika sätt att modellera mjukvarusystem och analysera deras prestanda och skalbarhet
  • kunna detaljerat redogöra för olika tekniker för att förbättra prestanda och skalbarhet av programvarusystem


Färdighet och förmåga
Efter genomförd kurs skall studenten:
  • kunna testa, mäta och analysera prestanda i ett programvarusystem
  • kunna identifiera prestandaproblem
  • kunna genomföra lämpliga optimeringar för att förbättra prestanda och skalbarhet
  • kunna utveckla enkla prestandamodeller av ett programvarusystem
  • kunna tillämpa olika tekniker för att förbättra prestanda för programvarusystem i praktiken


Värderingsförmåga och förhållningssätt
Efter genomförd kurs skall studenten:
  • förklara och motivera sina lösningar till laborations- och projektuppgifter både muntligt och skriftligt
  • självständigt och kritiskt utvärdera sina egna och andras lösningar

Generella förmågor

Kurslitteratur och övriga läromedel

Kurslitteratur
Software Performance and Scalability: a quantitative approach, Herry H.Liu, 2009, Wiley-Blackwell, ISBN 978-0-470-46253-9.

Referenslitteratur
Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software, C.U. Smith & L.G. Williams, Addison-Wesley, 2001, ISBN10: 0201722291.

Foundation of Software and System Performance Engineering: Process, Performance modeling, Requirements, Testing, Scalability and Practice, André B. Bondi, 2015, Pearson Education Inc., ISBN13: 978-0-321-83382-2.

Model Based Software Performance Analysis, Vittorio Cortellessa et al., 2011, Springer Verlang, ISBN13: 978-3-642-42761-9.

Computer Architecture ? A Quantitative Approach, 4th edition?J.L. Hennessy & D.A. Patterson, Morgan Kaufmann Publishers, 2006, ISBN13: 978-0-12-370490-0.
Övriga lärresurser
Slides tillhandahålls av läraren. Tekniska papper och forskningsrapporter tillhandahålls som kompendium av föreläsningsanteckningar och kurslitteraturen. Laboratorier. AWS utbildningsprogram (gratis men kräver ett giltigt kreditkortsnummer).

Kurslitteratur och övriga läromedel

Kurslitteratur
Software Performance and Scalability: a quantitative approach, Herry H.Liu, 2009, Wiley-Blackwell, ISBN 978-0-470-46253-9.

Referenslitteratur
Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software, C.U. Smith & L.G. Williams, Addison-Wesley, 2001, ISBN10: 0201722291.

Foundation of Software and System Performance Engineering: Process, Performance modeling, Requirements, Testing, Scalability and Practice, André B. Bondi, 2015, Pearson Education Inc., ISBN13: 978-0-321-83382-2.

Model Based Software Performance Analysis, Vittorio Cortellessa et al., 2011, Springer Verlang, ISBN13: 978-3-642-42761-9.

Computer Architecture ? A Quantitative Approach, 4th edition?J.L. Hennessy & D.A. Patterson, Morgan Kaufmann Publishers, 2006, ISBN13: 978-0-12-370490-0.
Övriga lärresurser
Slides tillhandahålls av läraren. Tekniska papper och forskningsrapporter tillhandahålls som kompendium av föreläsningsanteckningar och kurslitteraturen. Laboratorier. AWS utbildningsprogram (gratis men kräver ett giltigt kreditkortsnummer).

Lärande och undervisning

De teoretiska grunderna i kursen presenteras på föreläsningar och/eller övningar. Studenten förväntas självständigt skaffa sig teoretiska kunskaper genom självstudier av relevant litteratur. De teoretiska kunskaperna tillämpas sedan praktiskt både i lärarledda obligatoriska laborationer och i projekt som utförs individuellt eller i grupp inom givna tidsramar.

Arbetslivsanknytning

Laborationer och projektarbete.

Lärare

Examinator
  1. Håkan Grahn
Kursansvarig
  1. Jan Kasper Martinsen

Planerade lärtillfällen

Föreläsningar, laborationer och projektarbete.

Tidsåtgång

I genomsnitt bör en student räkna med att studera 200 timmar för att nå lärandemålen.
I denna tid ingår alla olika förekommande lärandeaktiviteter (föreläsningar, självstudier, examination m. m.).
Tidsuppskattningen baseras på att ett akademiskt år omfattar 60 högskolepoäng (motsvarar 60 ECTS credits),
som svarar mot en total studietid på ca 1 600 timmar. Den faktiska studietiden varierar individuellt.

Bedömning

Examinationsmoment för kursen
Kod Benämning Högskolepoäng Betyg
1710 Uppgift 1 1 G-U
1720 Projekt 1 2 A-F
1730 Projekt 2 2 A-F
1740 Tentamen 2.5 A-F

Betyg

Kursen bedöms med betygen A Utmärkt, B Mycket bra, C Bra, D Tillfredsställande, E Tillräckligt, FX Otillräckligt, komplettering krävs, F Underkänd.

Kommande tentamenstillfällen

Inga kommande centralt samordnade tentamenstillfällen hittades för denna kurs.

För att få delta vid ett centralt samordnat tentamenstillfälle måste du ha anmält dig i Studentportalen senast 15 dagar innan tentamensdagen.


Lokal och tidpunkt publiceras ca 5 dagar innan tentamensdagen.


Det kan finnas andra planerade examinationstillfällen. Information om de finns i It's Learning eller på annan plats som kursansvarig hänvisar till.

Kursutvärdering

Kursansvarig ansvarar för att studenternas synpunkter på kursen systematiskt och regelbundet inhämtas och att resultaten av utvärderingar i olika former påverkar kursens utformning och utveckling.