W18-IfI-FFP FFP 11 Paralleles Rechnen

Hinweise für Teilnehmer

Thema: Parallele Auswertung

Hinweise:

  • Es ist für diese Übung zwingend notwendig, einen Rechner mit mindestens zwei echten Prozessorkernen einzusetzen. Schließlich dreht es sich ausschließlich darum, eine Berechnung durch die Verwendung mehrerer Kerne zu beschleunigen.
  • Falls Ihr Rechner nur einen Kern besitzt, dann loggen Sie sich für diese Übungen in einem Rechner am CIP-Pool der Informatik ein. Informationen zum Remote-Login am CIP-Pool finden Sie auf: http://www.rz.ifi.lmu.de/FAQ/index.html Abschnitt "Von zu Hause/remote aus ..."
    Prüfen Sie auch, dass der Rechner noch über freie Kapazitäten verfügt, z.B. mit dem Tool "htop". Falls der Rechner beschäftigt ist, dann loggen Sie sich von dem Remote-Rechner weiter zu einem der anderen intern erreichbaren CIP-Arbeitsplatzrechner ein, siehe: http://www.rz.ifi.lmu.de/FAQ/Rechnerliste.faq.html
  • Für die nächste Übung zum Thema "Nebenläufigkeit" reicht dann wieder ein einzelner Prozessorkern.
  • Ggf. cabal/stack install monad-par und cabal/stack install parallel ausführen!

Anweisungen:

  • Gehen Sie diese Datei durch und bearbeiten Sie alle Vorkommen von undefined bzw. die mit -- !!! TODO !!! markierten Stellen. Testen Sie Ihre Lösungen mit GHC!
  • Die Verwendung mehrerer Kerne läßt sich mit dem Interpreter (ghci) nur schlecht messen. Kompilieren Sie Ihre Lösung daher mit ghc, ggf. jede Aufgabe in eine eigene Datei auslagern: > ghc MyProgA11-1.hs -threaded -rtsopts Stack-Tool Benutzer kompilieren mit: > stack ghc MyProgA11-1.hs -- -threaded -rtsopts Es ist auch interessant zu beobachten, welchen Effekt die Kompiler-Optionen -O2/-O1/-O0 hier bei sequentieller/paralleler Berechnung hat.
  • Dann mit der gewünschten Anzahl an benutzbaren Kernen ausführen: > ./MyProgA11-2 +RTS -N4 -s > ./MyProgA11-2 +RTS -N3 -s > ./MyProgA11-2 +RTS -N2 -s > ./MyProgA11-2 +RTS -N1 -s die Angabe unter "Total / elapsed" ist dann ein brauchbares Maß.
  • Rechner mit Hyper-Threading Technologie geben die doppelte Anzahl an Rechenkernen an, als tatsächlich verbaut sind. Eine Beschleunigung ist nur bis zur echt vorhandenen Anzahl an Kernen zu erwarten.
  • Die Aufgaben sollten jeweils ca. 1-2 Minuten sequentielle Rechenlast erzeugen. Ggf. sind die verwendeten Konstanten innerhalb der Aufgaben an Ihren Rechner anzupassen. Die sequentielle Rechenzeit sollte nicht zu kurz gewählt werden.

Verfügbar seit
Mo 14 Jan 2019 12:00
Beginn Abgabezeitraum
Mo 14 Jan 2019 16:00
Ende Abgabezeitraum
Mi 23 Jan 2019 08:00
Lösung ab
Mi 23 Jan 2019 08:00
Abgabe-Modus
Direkte Abgabe
Wertung
3.00 Punkte, Keine Wertung

Übungsblatt-Dateien