When computer architects re-invented parallelism through multi-core processors, application parallelization became mandatory. The challenge of “mass-parallelization” forced the software community to react quickly. Unfortunately, instead of tackling such a large-scale problem in a systematic way, we have rather experienced various random search, non-portable and non-reusable approaches. We belie...