Fortress for the Weary (or Lazy)
Okay, obviously there are some things about this that do not quite work. Principally, humans are still better than machines at determining when to parallelize. Nonetheless, in those cases when I know that I want to parallelize something, then I very well do care about making that process as seemless and comprehensible as I can. The approach championed by Fortress, which is Steele’s research language, does have some appeal, but I do not want to use Fortress to get these benefits. I want to use Scheme.
So, my question then becomes, what is the appropriate general interface (read, what library ought to exist) to facilitate this sort of parallelism? Given a Scheme with appropriately capable multi-tasking primitives, such as pthreads or MPI access, what would a high-level interface look like? Maybe someone has done this already for languages like Haskell? Can anyone point me to what this should look like?