Agenda (preliminär)

VECKA 6
Inga föreläsningar!

VECKA 7
AVANCERAD TRÅDPROGRAMMERING I JAVA
  • Introduktion till parallellprogrammering
  • Parallellprogrammering i Java: Trådar (Threads)
  • Trådprogrammering i Java enligt den "traditionell" metoden
  • Undantagshantering i Java
  • Introduktion till Java Applets
  • Trådar
    • Avbrott("interrupts")
    • Metoden "join()"
  • Högnivå objekt för trådprogrammering
    • Trådgrupper ("Thread pools");
    • Exekverare ("Executor" och "ExecutorService")

Föreläsningsmaterial
Föreläsning1
Föreläsning2

Exempelprogram
Exempel1 - Konsolprogram med trådar och undantagshantering
Exempel2 - En simpel Java Applet
Exempel3 - Trådhantering enligt gamla och nya metoden

Övningar
Övning 1 - Övningar med trådar på CCSE (College of Computer Sci. & Eng.) portalen
Övning 2 - Trådhantering

VECKA 8
AVANCERAD TRÅDPROGRAMMERING I JAVA
  • Applet-programmering
    • Animering
    • Tillämpning av trådar
  • Trådsäkerhet
    • Trådkollision ("Thread Interference")
    • "Memory Consistency Error"
  • Datastrukturer
    • Länkade listor
Föreläsningsmaterial
Föreläsning3

Exempelprogram
Exempel4 - "Skjuta ner bollar"-spelet
Exempel5 - Trådsäkerhet med synkroniserade metoder
Exempel6 - Hantering av länkade listor

Övningar
Övning 3 - Bollspelet (Trådsäkerhet och länkade listor)

VECKA 9
AVANCERAD TRÅDPROGRAMMERING I JAVA

  • Trådsäkerhet
    • Intrinsic locks och synkronisering
    • Synchronized statements
    • Liveness
Föreläsningsmaterial
Föreläsning4

Exempelprogram
Exempel7 - Simulering av "deadlock"
Exempel8 - Vidareutveckling av "skjuta ner bollar"-spelet

VECKA 10
AVANCERAD TRÅDPROGRAMMERING I JAVA
  • Trådsäkerhet
    • Guarded Blocks
    • Immutable Objects
    • Lock Objects
Föreläsningsmaterial
Föreläsning5

Exempelprogram
Exempel9 - "Producent-konsument" problemet löst m.h.a "guarded blocks"
Exempel10 - Experiment med "synchronized statements"

Övningar
Övning4 - Väderstatistik (trådsynkronisering)

VECKA 11
ATT DESIGNA PARALLELLA PROGRAM
  • Att designa parallella program
    • Manuell vs. automatisk parallellisering
    • Java och "multi-core" processorer
    • Hur parallellisera?
    • Hur mycket effektivare program får vi genom parallellisering?
Föreläsningsmaterial
Föreläsning6

Exempelprogram
Exempel11 - Experiment med parallellisering av sorteringsalgoritm
Exempel12 - Delvis lösning till övning4

Övningar
Övning 5 - Textanalysator (optimering av algoritmer för "multi-core" datorer)

VECKA 12
ATT DESIGNA PARALLELLA PROGRAM/DISTRIBUERADE APPLIKATIONER
  • Ahmdals algoritm
  • Design av parallella program
    • Att förstå problemet
    • Identifiera programmets "hotspots"
    • Identifiera programmets "flaskhalsar"
    • Partitionering
    • Kommunikation
  • Introduktion till Java EE (Enterprise Edition)
  • Enterprise Java Beans (EJB)
Föreläsningsmaterial
Föreläsning7
Föreläsning8

Övningar
Övning 6 - Parallellisering av en genetisk algoritm

VECKA 13
PROJEKT
Se http://people.arcada.fi/~karlssoj/procprog/projekt.html

VECKA 14
PROJEKT

VECKA 15
PROJEKT


Jonny Karlsson 2009