VU 183.653 Methodical, industrial Software-Engineering using the Haskell functional programming language

Last Time

Today's Topics

Exceptions

Extensible Exceptions

Extensible Exceptions (cont.)

Extensible Exceptions (cont.)

Extensible Exceptions (cont.)

Parallelism vs. Concurrency

Process vs. (OS-)Threads vs. Green-Threads

Concurrent Haskell

Concurrent Haskell

Concurrent Haskell

Asynchronous Exceptions

Asynchronous Exceptions (cont.)

The Software Crises

Amdahl's Law

Challenges of Parallelism

Parallel Haskell

Parallel Haskell

Parallel Haskell (cont.)

Parallel Haskell (cont.)

Parallel Haskell (cont.)

Parallel Haskell (cont.)

Parallel Haskell (cont.)

Parallel Haskell: +RTS -s

Parallel Haskell: Threadscope

Parallel Haskell: FFI

Parallel Haskell: Strategies

Parallel Haskell: Strategies (cont.)

Parallel Haskell: Strategies (cont.)

Parallel Haskell: Eval monad

Parallel Haskell: Eval monad (cont.)

Parallel Haskell: Eval monad (cont.)

Communication & State

MVar communication primitive

MVar communication primitive (cont.)

Locks

Waiting on Thread Completion

async Package: Futures & Promises

async Package: Convenience Functions

monad-par Package: The Par Monad

monad-par Package: The Par Monad (cont.)

monad-par Package: The Par Monad (cont.)

monad-par Package: The Par Monad (cont.)

Reading Material