message passing concurrency shootout
play

Message Passing Concurrency Shootout Dr Kevin Chalmers School of - PowerPoint PPT Presentation

Message Passing Concurrency Shootout Dr Kevin Chalmers School of Computing Edinburgh Napier University Edinburgh k.chalmers@napier.ac.uk Background We have talked about trying to get more ideas out from this community for a number of


  1. Message Passing Concurrency Shootout Dr Kevin Chalmers School of Computing Edinburgh Napier University Edinburgh k.chalmers@napier.ac.uk

  2. Background ❼ We have talked about trying to get more ideas out from this community for a number of years ❼ Recently there has been a number of languages providing some form of message passing concurrency model ❼ Google’s Go being the most prominent example ❼ Many claim CSP or other process calculi as inspiration ❼ I was having lunch with Adam Sampson around spring time and he mentioned another language - nim ❼ This got me thinking about comparing these different languages with regards to their message passing concurrency support - so I came up with a project idea

  3. Idea ❼ Initially I had the thought of looking at all message passing languages and support libraries ❼ I now think this is too ambitious - so let us just concentrate on languages ❼ I’m essentially interested in 3 areas: 1 The languages actual adherence to their process calculi roots 2 The simplicity of the language to write programs in a message passing style 3 Performance metrics

  4. Questions 1 How well supported are the primitives and ideas of CSP, CCS, and the π -calculus in the range of languages supporting message passing concurrency? 2 What are the metrics of the languages supporting message passing concurrency?

  5. Languages - have to have a Linux compiler ❼ Ada ❼ Go ❼ occam-pi ❼ Ateji PX ❼ Guppy ❼ Oz ❼ Clojure ❼ Hume ❼ ProcessJ ❼ D ❼ Kilim ❼ Perl ❼ Elixir ❼ Hume ❼ Rust ❼ Ensemble ❼ Limbo ❼ Unicon ❼ Erlang ❼ Nim

  6. Features ❼ Message passing support (this is the minimum criteria) ❼ Type of message passing support - synchronous and/or asynchronous ❼ First Order Channels (not all languages provide a channel construct) ❼ Higher Order Channels (channels that can send channels) ❼ First order processes ❼ Higher order processes (channels can send processes) ❼ Parallel execution statement ❼ Process ownership (e.g. a process cannot complete until all its child processes have) ❼ Selection on incoming messages ❼ Other selection types? (e.g. skip, timeout) ❼ Selection on outgoing messages ❼ Multiway synchronisation

  7. Metrics - initial ideas ❼ Channel communication time ❼ Channel selection time ❼ Lines of code ❼ Speedup and efficiency ❼ Memory usage ❼ CPU utilisation

  8. Test Applications - just ideas at the moment ❼ Commstime ❼ Stessed alt ❼ Dining philosophers ❼ N-body ❼ Monte Carlo simulation ❼ etc.

  9. ❼ ❼ ❼ ❼ ❼ ❼ ❼ Workshop ❼ The aim is to produce a journal paper around these results - a state of the art article on message passing concurrency

  10. ❼ ❼ ❼ ❼ ❼ ❼ Workshop ❼ The aim is to produce a journal paper around these results - a state of the art article on message passing concurrency ❼ But this is a big job

  11. ❼ ❼ ❼ ❼ ❼ Workshop ❼ The aim is to produce a journal paper around these results - a state of the art article on message passing concurrency ❼ But this is a big job ❼ I need people to write applications

  12. ❼ ❼ ❼ ❼ Workshop ❼ The aim is to produce a journal paper around these results - a state of the art article on message passing concurrency ❼ But this is a big job ❼ I need people to write applications ❼ And do some writing

  13. ❼ ❼ ❼ Workshop ❼ The aim is to produce a journal paper around these results - a state of the art article on message passing concurrency ❼ But this is a big job ❼ I need people to write applications ❼ And do some writing ❼ So that’s what I want people to do - work

  14. ❼ ❼ Workshop ❼ The aim is to produce a journal paper around these results - a state of the art article on message passing concurrency ❼ But this is a big job ❼ I need people to write applications ❼ And do some writing ❼ So that’s what I want people to do - work ❼ I have a GitHub repo set up for people to join

  15. ❼ Workshop ❼ The aim is to produce a journal paper around these results - a state of the art article on message passing concurrency ❼ But this is a big job ❼ I need people to write applications ❼ And do some writing ❼ So that’s what I want people to do - work ❼ I have a GitHub repo set up for people to join ❼ We’ll create an arxiv report detailing all the results

  16. Workshop ❼ The aim is to produce a journal paper around these results - a state of the art article on message passing concurrency ❼ But this is a big job ❼ I need people to write applications ❼ And do some writing ❼ So that’s what I want people to do - work ❼ I have a GitHub repo set up for people to join ❼ We’ll create an arxiv report detailing all the results ❼ And write the journal around the interesting bits

  17. So... ❼ Take out your laptop ❼ Pick a language ❼ And write commstime ❼ Rosetta Stone has examples of Dining Philosophers for many languages ❼ If you want to join the GitHub repo let me know

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend