Practical parallel, asynchronous and concurrent programming with Hopac
Hopac is a recently developed library for F#, based on ideas from languages like Concurrent ML and Cilk, with the aim of making it easier to write correct, modular and efficient parallel, asynchronous and concurrent programs. Compared to the Async and MailboxProcessor mechanisms of F#, Hopac directly provides more expressive concurrency abstractions and better performance.
This tutorial is an introduction to programming with Hopac. First, we will briefly look at the history of Concurrent ML and the idea of synchronous abstractions that it put forth. We will then discuss how Hopac, like Cilk, is designed to scale to multiple cores and, like Concurrent ML, as the number of concurrent threads and communication channels is increased, making pervasive use of parallelism, asynchrony and concurrency practical. We will then take a closer look at programming with Hopac through a series of examples illustrating the flexibility and modularity offered by the use of light-weight threads and first-class, higher-order, selective concurrent communication primitives. We will close with a look at future directions for Hopac and questions.
Vesa Karvonen (Independent)
Vesa is an experienced functional programmer with a long time interest in the design and implementation of programming languages, embedded domain specific languages and in datatype generic programming and functional programming in particular.
Vesa first started programming in 1990, has been programming professionally since 1996, and has been using functional programming in his professional work dating back to 2001, using languages such as OCaml, Scheme, Standard ML and F#.
Participants remember unique and meaningful interactions, whether it’s a great conversation over a tasty coffee, a dinner with fellow participants, or something completely different.
We are always happy to help you create a unique package that will help you achieve your specific sponsorship goals.
If you are interested in sponsoring the event by creating a unique package, or by choosing an off-the-shelf sponsorship package, please contact us for further details.
In return for promoting FP Days 2014 to members of your user group, we offer a 10% discount on all tickets to group members.
We'll also help to promote your group by featuring it here on the FP Days website.
If you run a user group and you'd like more information on supporting FP Days 2014, please get in touch!
Need help planning which sessions to attend? We've provided a breakdown of our various session types below.
A presentation and discussion of real-life (not theoretical) experiences of the application (or mis-application) of service design techniques. Case studies and experience reports include some discussion of lessons learned and an indication of how novel the work is.
Participants learn a new approach, tool or technology through using it to solve one or more practical exercises. Any software/hardware requirements are disclosed in the session description.
A session focused around some specific tool, technique or issue. Primarily led by the speaker, tutorials usually include some elements of interactivity or individual / group exercise.
An in-depth working session on a specific topic. May include paper presentations.