Ease of use with concurrent collections (CnC)
Kathleen Knobe · 2009
Parallel programming is hard. We present a new approach called Concurrent Collections (CnC). This paper briefly explains why writing a parallel program is hard in the current environment and introduces our new approach based on this perspective. In particular, a CnC program doesn’t explicitly express the parallelism. It expresses the constraints on parallelism. These constraints remain valid regardless of the target architecture. 1. Why is parallel programming hard? Many parallel languages embed parallel language constructs within the text of the serial code. Examples include MPI, OpenMP, PThreads, Ct etc. This embedding is the source of some unnecessary difficulties: • Serial code requires a serial ordering. If there is no semantically required ordering among some blocks of code, an arbitrary ordering must be specified. 1 • Serial code modifies and refers to variables