“…Other approaches provide programmers with more or less explicit means for process or thread management, synchronization, and communication, e.g. (Cooper & Morrisett, 1990;Reppy, 1991;Bailey & Newey, 1993;Jones et al, 1996;Breitinger et al, 1997;Kelly & Taylor, 1999;Serrarens, 1999). However, to the same extent as they provide control over parallel execution, these approaches also introduce the pitfalls of traditional parallel programming, e.g.…”