Concurrency for the Application Programmer
Forced by architectural and commercial considerations, programmers now have to confront multi-core systems, heterogeneity, clusters, clouds.
What does this revolution mean for the application programmer, typically removed from the hardware through many layers of middle-ware (often on top of managed run-time environments)? How should the capabilities of heterogeneous processors (including GPUs, FPGAs, streaming processors) and heterogeneous memory (including non-coherent memory) be made available to the application programmer? Should abstractions for the application programmer focus primarily on application-level concurrency rather than implementation-level concurrency? Should application-level concurrency abstractions be fundamentally determinate? Fundamentally declarative? Resilient in the face of node- and network- failure? How can high-performance concurrent programs be written in garbage-collected languages? How can they {not be written in garbage-collected languages?
This workshop aims to bring together practitioners and thinkers to
address all topics around concurrency for the application programmer.





