  The majority of contemporary mobile devices and personal computers are based
on heterogeneous computing platforms that consist of a number of CPU cores and
one or more Graphics Processing Units (GPUs). Despite the high volume of these
devices, there are few existing programming frameworks that target full and
simultaneous utilization of all CPU and GPU devices of the platform.
  This article presents a dataflow-flavored Model of Computation (MoC) that has
been developed for deploying signal processing applications to heterogeneous
platforms. The presented MoC is dynamic and allows describing applications with
data dependent run-time behavior. On top of the MoC, formal design rules are
presented that enable application descriptions to be simultaneously dynamic and
decidable. Decidability guarantees compile-time application analyzability for
deadlock freedom and bounded memory.
  The presented MoC and the design rules are realized in a novel Open Source
programming environment "PRUNE" and demonstrated with representative
application examples from the domains of image processing, computer vision and
wireless communications. Experimental results show that the proposed approach
outperforms the state-of-the-art in analyzability, flexibility and performance.
