Skriv ut som pdf om du vill ha en pdf! Om du vill ha en snyggare utskrift, klicka bort webbläsarens automatiskt tillagda sidhuvud och sidfot.

Blekinge Tekniska Högskola
Institutionen för datavetenskap

Revision: 2
Dnr: BTH-4.1.14-0319-2023


Kursplan

Prestandaoptimering

Performance Optimization

7,5 högskolepoäng (7.5 credits)

Kurskod: DV1674
Huvudområde: Datavetenskap, Programvaruteknik
Utbildningsområde: Tekniska området
Utbildningsnivå: Grundnivå
Fördjupning: G1F - Grundnivå, har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav

Undervisningsspråk: Engelska
Gäller från: 2023-03-01
Fastställd: 2023-03-01

1. Beslut

Denna kurs är inrättad av dekan 2022-12-16. Kursplanen är fastställd av prefekten vid institutionen för datavetenskap 2023-03-01 och gäller från 2023-03-01.

2. Förkunskapskrav

För tillträde till kursen krävs avklarade kurser i programmering, 12 hp, algoritmer och datastrukturer, 6 hp, datakommunikation, 4 hp och operativsystem 6 hp.

3. Syfte och innehåll

3.1 Syfte

Prestanda är en viktig aspekt av all programvara. För att utveckla bra och högpresterande programvara, är det viktigt att studenterna har en god förståelse för och kan tillämpa olika metoder och tekniker för att analysera och optimera prestandan hos ett programvarusystem.

3.2 Innehåll

I kursen ingår följande moment:
- Översikt av 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
- Introduktion till prestandaprinciper, prestandamönster och -antimönster
- Metoder for prestanda och skalbarhetstest
- Tillämpning av avancerad och grundläggande mjukvaruoptimeringsteknik
- Tekniker för att analysera och förbättra minneshanteringen och streamade I/O-funktioner
- Översikt över multiprocessorer och metoder för att förbättra mjukvarans prestanda och skalbarhet genom multi-threading.

4. Lärandemål

Följande lärandemål examineras i kursen:

4.1. Kunskap och förståelse

Efter genomförd kurs ska studenten kunna:

  • övergripande redogöra för hur ett modernt datorsystem är uppbyggt och hur det påverkar prestanda
  • detaljerat redogöra för olika sätt att testa och mäta programvarans prestanda och skalbarhet
  • detaljerat redogöra för olika tekniker för att förbättra prestanda och skalbarhet av programvarusystem

4.2. Färdighet och förmåga

Efter genomförd kurs ska studenten kunna:

  • testa, mäta och analysera prestanda i ett programvarusystem
  • genomföra lämpliga optimeringar för att förbättra prestanda och skalbarhet, bland annat genom att parallellisera applikationer för att utnyttja de tillgängliga resurserna hos moderna processenheter

4.3. Värderingsförmåga och förhållningssätt

Efter genomförd kurs ska studenten kunna:

  • 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

5. Läraktiviteter

De teoretiska grunderna i kursen presenteras genom föreläsningar. Studenten förväntas också att 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 projektuppgifter som utförs inom givna tidsramar.

6. Bedömning och examination

Examinationsmoment för kursen

Kod Benämning Omf. Betyg
2310 Projektuppgift 1 2,5 hp AF
2320 Projektuppgift 2 2,5 hp AF
2330 Salstentamen 2,5 hp AF

Kursen bedöms med betygen A Utmärkt, B Mycket bra, C Bra, D Tillfredställande, E Tillräckligt, FX Underkänd, något mer arbete krävs, F Underkänd.

I kurstillfällets information inför kursstart framgår i vilka examinationsmoment som kursens lärandemål examineras samt gällande bedömningsgrunder.

Examinator kan, efter samråd med högskolans FUNKA-samordnare, fatta beslut om anpassad examinationsform för att en student med varaktig funktionsvariation ska ges en likvärdig examination jämfört med en student utan funktionsvariation.

7. Kursvärdering

Kursvärdering ska göras i enlighet med BTH:s beslut om frågeställning i kursvärderingar och beslut om process för hantering och uppföljning av kursvärderingar.

8. Begränsningar i examen

Kursen kan ingå i examen men inte tillsammans med annan kurs vars innehåll, helt eller delvis, överensstämmer med innehållet i denna kurs.

9. Kurslitteratur och övriga lärresurser

Optimized C++: Proven Techniques for Heightened Performance, Kurt Guntheroth, 2016, O’Reilly Media Inc, ISBN: 978-1-491-92206-4

Software Performance and Scalability: A Quantitative Approach, Herry H.Liu, 2009, Wiley-Blackwell, ISBN: 978-0-470-46253-9

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

The Software Optimization Cookbook: High Performance Recipes for IA-32 Platforms, 2nd Edition, Richard Gerber, Kevin Smith, and Xinmin Tian, 2006, Intel Press, ISBN: ? 978-0976483212

10. Övrigt

Denna kurs ersätter kursen DV1567