VL: Parallelität in funktionalen Sprachen
VL 12065 Parallelität in funktionalen Sprachen
Prof. Dr. R. Loogen
Mittwochs, 12-13 Uhr, HS IV (Lahnberge), Donnerstags, 9-11 Uhr, HS IV (Lahnberge)
Achtung: Am Mittwoch, dem 31. Mai, fällt die Vorlesung aus. Ein Ersatztermin wird am Donnerstag, dem 1. Juni, festgelegt.
Beginn: 19. April 2006
UE 12066 Jost Berthold
Montags, 11 - 13 Uhr, HS I
Beginn: 24. April 2006
Fachgebiet Klassifikation Semester Leistungspunkte (ECTS) Skript
Informatik Hauptstudium, Theoretische Informatik >=3 7 nein

Voraussetzungen: Grundkenntnisse in funktionaler Programmierung
Querverbindungen: -
Scheinkriterien: Erfolgreiche Bearbeitung von 50% der Übungsaufgaben und Kolloquium


Das Tutorium beginnt künftig erst um 11:30 Uhr
Übungsblätter: ...erscheinen donnerstags, oder am Mittwoch davor, falls der Donnerstag Feiertag ist.
Die Aufgaben sind am darauffolgenden Donnerstag (bzw. Mittwoch) abzugeben.
Eventuell wird auch ein (umfangreicheres) Übungsblatt mit zwei Wochen Bearbeitungszeit ausgegeben.

Blatt 1, 20.04.2006 (Postscript, PDF)   (Programm)
Blatt 2, 27.04.2006 (Postscript, PDF)   kein Tutorium, 1. Mai
Blatt 3, 04.05.2006 (Postscript, PDF) Aufgabe 3.2 wird zurückgestellt
(angegebene Dokumentation zu Prelude.hs) (sodaRnd.hs)
Blatt 4, 11.05.2006 (Postscript, PDF)
Blatt 5, 18.05.2006 (Postscript, PDF) Abgabe bereits am Mittwoch
Blatt 6, 24.05.2006 (Postscript, PDF) erscheint bereits am Mittwoch
Blatt 7, 01.06.2006 (Postscript, PDF) summePhi: (Codedvi-Dokument)   am Pfingstmontag kein Tutorium
Blatt 8, 08.06.2006 (Postscript, PDF) Programm juliaSets.hs   verlängerte Bearbeitungszeit
Blatt 9, 22.06.2006 (Postscript, PDF)
Blatt 10, 29.06.2006 (Postscript, PDF) Modul für primitive Operationen: ParPrim.hs
Blatt 11, 06.07.2006 (Postscript, PDF) (letztes Übungsblatt)

Software für Übungen: Wir arbeiten aussschließlich unter Linux.
Die verwendete Software ist am Fachbereich unter /app/lang/functional/bin zu finden.
Zur Konfiguration kann diese Datei in $HOME/.tcshrc eingebunden werden: parfp.tcshrc
Empfohlener Compiler: Eden-Compiler (ghc-5.02.3 erweitert)
Achtung: Dieser Compiler benötigt gcc-2.95! daneben für Selbstbau auch ghc <= 5.02.
Auch auf der GpH-Seite (siehe Links) ist ein GpH-Compiler erhältlich. Allerdings basiert dieser auf ghc-4.06. Der Eden-Compiler unterstützt GpH.
Das Laufzeitsystem verwendet die Middleware PVM. PVM ist in vielen Linux-Distributionen als installationsfertiges Paket enthalten. Zur Konfiguration muss jeder Benutzer die Variablen PVM_ROOT und PVM_ARCH setzen.
Beim Start von PVM kann ein Hostfile mit Rechnernamen angegeben werden. Benutzbare Rechner und Infos dazu bekommt man unter http://www.mathematik.uni-marburg.de/sys/infos.html.
Der Simulator GranSim existiert nur in einer sehr alten Version (ghc-3.02). Am Fachbereich ist eine Version unter /app/lang/functional/ghc-3.02/bin installiert, daneben ist sie auch als binary snapshot erhältlich.
Achtung: Dieser Compiler benötigt einen antiken gcc, am Fachbereich gcc-2.7.2.3, der noch dazu einfach "gcc" heißen muss!
Am besten vor der Benutzung jedesmal den Pfad ($path) explizit umsetzen.
Die GranSim-Anleitung gibt es lokal (ps, pdf) oder auf der GranSim-Seite.
Konfigurations- oder Bedienungsprobleme? Bitte im Tutorium ansprechen oder an Jost Berthold wenden!
Beispielprogramme: GpH-Auswertungsstrategien: Strategies.hs (eine kleine Spezial-Version, für GranSim geeignet)
Die Strategien sollten in ghc-5.x auch als Bibliothek vorhanden sein, eine Datei im aktuellen Verzeichnis sollte aber Vorrang haben, wenn man mit der Option --make übersetzt.

>
Vorlesungsunterlagen: Folien: Charakteristika funktionaler Sprachen
Links: Alles über Haskell
Haskell-Einführung
GHC - Glasgow Haskell Compiler
GPH - Glasgow Parallel Haskell
GranSim - ein Simulator für GpH
Eden
Concurrent Haskell
Erlang -
  • In der Vorlesung wurden Kapitel 3 und 4 des Erlang Tutorials behandelt.
  • Lokaler Aufruf des Systems: /app/lang/functional/bin/erl; Verlassen mit: halt().
  • Demonstrationsprogramm: demo.erl
Literatur:
  • K. Hammond, G. Michaelson (eds.): Research Directions in Parallel Functional Programming, Springer-Verlag 1999
    (Siehe Semesterapparat Prof. Loogen in der Fachbereichsbibliothek!)
    Buchbeschreibung
  • John Hughes: Why Functional Programming Matters (pdf)
    Computer Journal 32(2), 1989, pp 98-107
  • Phil Wadler: Functional Programming: Why no one uses functional languages (ps)
    SIGPLAN Notices 33(8):23-27, August 1998
  • Chris Clack and Simon L Peyton-Jones: Strictness analysis - a practical approach (ps), Proceedings IFIP International Conference on Functional Programming Languages and Computer Architecture (FPCA), Nancy (France), Springer-Verlag LNCS 201, pp 35-49, September 1985.
  • Phil W. Trinder, Kevin Hammond, Hans-Wolfgang Loidl, Simon Peyton Jones: Algorithm + Strategy = Parallelism (ps), Journal of Functional Programming 8(1):23--60, January 1998.
  • Ulrike Klusik, Rita Loogen, Steffen Priebe: Controlling Parallelism and Data Distribution in Eden (ps), 2nd Scottish Functional Programming Workshop, St. Andrews 2000, Intellect, 2001.


Inhalt:
  1. Klassifikation paralleler funktionaler Sprachen
  2. Implizite Kontrollparallelität
  3. Die Kernsprache Mini-Haskell
  4. Striktheitsanalyse
  5. Kontrollierte Parallelität
  6. Prozeßkontrollsprachen, Algorithmische Skelette, Kostenmodelle
  7. Explizite Parallelität
  8. Datenparallelität (Nicht behandelt!)


Zuletzt geändert: Thursday, 20-Jul-2006 16:50:31 CEST