Parallel programming support in popular programming languages such as C and C++ has not kept pace with the recent proliferation of multi-core architectures Operating systems do provides APIs for writing parallel programs but these APIs are sufficiently dissimilar that choosing one ties the code to a particular environment The APIs also require programmers to deal with concepts such as threads stacks and other details that are not an integral part of the problem being solved For these reasons it is hard to begin writing parallel programs