Episode #6 – Concurrency and Parallelism

Summary:

A rambling discussion with two village idiots struggling to come to terms with concurrency and parallelism

Show Notes:

Follow up

  • Thanks again for Micha and his nukes doing a great job on the last episode.
  • A small diversion into the delights of Java 8 interop wherein we mention the nice little library by Mr Andrew Oberstar called ike:

News & Events

Main discussion – Concurrency and Parallelism

  • Things can happen at the same time – shocker! 😉
  • Concurrency – systems can be composed up from asynchronous actions – event driven!!
    • increases the amount of work that can be done on single threaded environments or single core machines
  • callbacks traditionally makes programming awkward … there is a loss of comprehension, error handling is a big problem since callbacks do not retain the original context
  • Parallelism – problems are decomposed into discrete tasks or actions to fulfil a defined goal
    • usually only worth doing if the underlying hardware can run tasks in parallel
    • this increases the amount of work that can be done on multi-threaded environments or multi-core / CPU / GPU machines
  • Major innovations in Clojure
    • Handling shared state – Dynamic Vars / Atoms / Refs / Agents
    • Concurrency … core.async
      • Manifold and Aleph – Mr Zach Tellman – Lingua franca for asynchron
    • Parallelism … reducers

Credits:

Music: Thanks to the very talented ptzery for the permitting us to use his music on the opening and closing of the podcast. This track is Melon Hamburger. You can give his work some ❤️ and hear more on his SoundCloud.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s