It seems like one of the benefits of separating abstraction and implementation is one could use different implementations for the same code, and compare their performance. Are there alternative implementations of cilk or any other high-level materials in this class?
timothy
To quantify the above comment: if you had two implementations of complex numbers - one represented using polar coordinates and one using cartesian coordinates - but with the same abstract interface, you could swap them out per program based off how much addition/multiplication you're doing in a given program, and always use the fastest implementation.
I'm just wondering if the same thing exists for any parallel programming systems. Most of the ones we've seen in this class seem to have the abstraction present for simplicity's sake, but that abstraction is in some sense secretly tied to the "default" implementation - such as stealing in this case.
It seems like one of the benefits of separating abstraction and implementation is one could use different implementations for the same code, and compare their performance. Are there alternative implementations of cilk or any other high-level materials in this class?