Kursplan för kalenderåret 2005
ALGORITMIMPLEMENTERINGEDA115
Algorithm Implementation

Antal poäng: 3. Betygskala: TH. Obligatorisk för: Pi3. Valfri för: F3. Kursansvarig: Univ.lektor Jonas Skeppstedt, Jonas.Skeppstedt@cs.lth.se, Inst f datavetenskap. Förkunskapskrav: EDA027 Algoritmer och datastrukturer. Prestationsbedömning: Skriftlig tentamen. För godkänt betyg krävs godkänd tentamen, godkända datorlaborationer samt godkänd inlämningsuppgift. Hemsida: http://www.cs.lth.se.

Mål
För att nå maximal prestanda för en viss tillämpning behöver man ofta utvärdera olika alternativ av algoritmer och datastrukturer genom att mäta t ex exekveringstid och använd mängd minne.

Exekveringstiden bestäms av ett komplicerat samspel mellan programimplementation, kompilatoroptimering och hårdvara. För att maximera prestanda krävs förståelse dels för vilka språkkonstruktioner (och datastrukturer) som oftast blir effektiva, dels hur dessa påverkar kompilatorns optimeringsmöjligheter och dels vad som sker under exekvering varje klockcykel för viss hårdvara. Det är inte möjligt att implementera ett program så att det maximerar prestanda för all hårdvara, utan istället behövs en metodik för att välja rätt algoritm för den givna tillämpningen och att maximera prestanda för en viss kombination av kompilator och hårdvara.

Förutom prestanda är det också viktigt att en implementering blir så portabel som möjligt. Språket C ger möjlighet att utnyttja datorns hårdvara på ett effektivt sätt, vilket ibland sker på bekostnad av minskad portabilitet.

Kursens mål är att deltagarna efter genomgången kurs skall:

Innehåll
ISO C99, GNU debuggern GDB, profileringsverktygen GPROF och GCOV, pipelinade mikroprocessorer, cacheminnen, användning av simuleringsverktyg för prestandaanalys, implementering av matematiska funktioner för processorer med eller utan hårdvarustöd för flyttal.

Litteratur
Samuel P. Harbison/Guy L. Steele: "C A Reference Manual", 5th edition, 2002, Prentice-Hall, ISBN 0-13-122560-X.
Material från institutionen.