“…Examples of current parallel programming models include the following: POSIX API (Pthread), Cilk [1], OpenMP [2], Galois [3], OpenCL [4], StreamIt [5], X10 [6], TBB [7], XJava [8], and CUDA [9]. These programming models offer various constructs for parallelism, such as basic threads, pipelines, master/worker, producer/ consumer, data parallelism, futures, work stealing, task pools, and more.…”