Last May Kathleen Knobe of Intel visited CSCS giving a talk on Concurrent Collections (CnC). We are happy to share with you the video of her very interesting talk (click on the picture here below to start the movie).
A common approach in designing parallel languages is to provide some high level handles to manipulate the use of the parallel platform. This exposes some aspects of the target platform, for example, shared vs. distributed memory. It may expose some but not all types of parallelism, for example, data parallelism but not task parallelism. This approach must find a balance between the desire to provide a simple view for the domain expert and provide sufficient power for tuning. This is hard for any given architecture and harder if the language is to apply to a range of architectures. Either simplicity or power is lost.
Instead of viewing the language design problem as one of providing the programmer with high level handles, we view the problem as one of designing an interface. On one side of this interface is the programmer (domain expert) who knows the application but needs no knowledge of any aspects of the platform. On the other side of the interface is the performance expert (programmer or program) who demands maximal flexibility for optimizing the mapping to a wide range of target platforms (parallel / serial, shared / distributed,
homogeneous / heterogeneous, etc.) but needs no knowledge of the domain.
Concurrent Collections (CnC) is based on this separation of concerns. The talk will present CnC and its benefits.