Language Support for Pipelined Applications on Heterogeneous Many-Core Architectures