Who: Sven-Bodo Sholz, SAC do-designer When: Tuesday, 10th July, 7pm at the Outhouse pub What about: Single Assignment C a strict purely functional programming language which design is focused on the needs of numerical applications. Emphasis is laid on efficient support for array processing." [1] Title: Aiming for HP3: High-Productivity, High-Performance, and High-Portability Abstract: As a starting point for discussion, I will present SaC and its auto-sequentialising compiler toolchain. I will present some of the underlying design choices that were guided by the desire to offer programmers with a high-level of programming productivity. Being based on C syntax, SaC offers a completely hardware agnostic programming model with n-dimensional array structures at its heart. This enables abstractions similar to what is available in Matlab. In contrast to Matlab, the toolchain of SaC was always aimed at compilation for high-performance executions. We have employed functional principles in order to facilitate radical program transformations that enable our toolchain to transform algorithm-friendly, hardware-agnostic programs into highly optimised, target-hardware-specific form. For several examples from computational science and from computer vision, we could demonstrate very competitive runtimes on a range of architectures including traditional SMPs and GPGPUs. This performance can be obtained without any manual program adjustments despite the vast differences in the target architectures, making code portability a matter of a compiler switch. |
Coming Up >