Hi,
I'm delighted to announce our talk for the Ed Lambda July
meetup. Sven-Bodo Sholz will be talking about the SAC programming
language, of which he is the co-designer.
When: Tuesday, 10th July, 7pm
What is SAC? According to wikipedia.... "SAC (Single Assignment C) is
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]
Ed Lambda talk....
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.