  We advocate a domain specific software development methodology for
heterogeneous computing platforms such as Multicore CPUs, GPUs and FPGAs. We
argue that three specific benefits are realised from adopting such an approach:
portable, efficient implementations across heterogeneous platforms; domain
specific metrics of quality that characterise platforms in a form software
developers will understand; automatic, optimal partitioning across the
available computing resources. These three benefits allow a development
methodology for software developers where they describe their computational
problems in a single, easy to understand form, and after a modeling procedure
on the available resources, select how they would like to trade between various
domain specific metrics. Our work on the Forward Financial Framework ($F^3$)
demonstrates this methodology in practise. We are able to execute a range of
computational finance option pricing tasks efficiently upon a wide range of
CPU, GPU and FPGA computing platforms. We can also create accurate financial
domain metric models of walltime latency and statistical confidence.
Furthermore, we believe that we can support automatic, optimal partitioning
using this execution and modelling capability.
