The MPI+OpenMP duality has been around the HPC community as a for of heterogenous computing. Recently, with the addition of CUDA to the mix, HPC codes have added yet another code path; I&#x27;m skeptical about the maintainability of such systems. It&#x27;s sad because the three tools exist to solve the same data-parallel paradigm, albeit in different configurations. In an alternative universe, where plan9 had succeeded, I could see this issue addresses by the OS, but I imagine a well designed library+runtime to fill this gap perfectly well.  
Intel&#x27;s TBB addresses the shared-memory problem with a work graph, could we extend  such philosophy to the three tools?