

Parallel and portable development of programs becomes an increasingly important subject for usage of future computing systems. With the introduction of heterogeneous many-core systems and the increasing impact of the memory wall, classical software development paradigms no longer hold true. In particular the lack of consideration for data access and communication cost poses a crucial performance obstacle. Dataflow models are therefore getting attention from large scale and performance oriented developers. Such models however are principally error prone, and require reorganization of the code to maximize usability.
This paper outlines a programming approach that annotates the code with its algebraic logic, so that accurate information on data dependencies can be obtained. Using this information allows not only more intuitive and fine-granular programmability, but in particular enables code rearrangement for manipulating the execution behavior, its concurrency and even its destination platform. This model is specifically geared towards mathematical problems and thus addresses in particular High Performance Computing needs.