Skip to content

[Proposal]: High-Productivity, High-Performance array programming in SaC #45

@sbscholz

Description

@sbscholz

Talk title

SaC, an alternative to Python for the performance critical part of novel ML approaches?

The Abstract

Python has taken center stage when it comes to implementing ML algorithms.
The languages convinces through its flexibility and the availability of many libraries.
Libraries such as NumPy or CuPy ultimately enable very good performance which helps bridging
the gap between Python's flexibility and the sophisticated parallel code needed for performance.

In this talk, we make the case for Single Assignment C (SaC) as an alternative for
computational kernels where performance across a wide range of parallel architectures is
needed but no highly tuned libraries are available yet. In contrast to Python, SaC focusses
on arrays as main data structure, builds on a type system that is aware of array shapes,
and generates high-performance codes for multi-core machine, GPUs and clusters alike.
As it turns out, rank-polymorphism, a key feature of SaC, does not only allow for more
generic programs but, surprisingly, it also helps when optimising across different
parallel platforms.

The duration of your talk

45 mins talk + 15 mins for questions

Tell us more about yourself as a speaker

Sven-Bodo Scholz received his Dr.rer.nat. and a German Habilitation from
the University of Kiel in 1996 and in 2004, respectively. Currently, he is
Professor at Radboud University, Nijmegen, Netherlands.

Sven-Bodo Scholz's expertise spans from programming languages across compiler
technology to High-Performance Computing. His research is primarily driven by
the goal to develop compiler technology that enables the creation of tools
that combine high-productivity of programmers with high-performance executions on
a wide variety of parallel hardware platforms. This has led to numerous
contributions, theoretical as well as practical, that affect the interplay of
these goals. Among his contributions are novel type systems, partial evaluation
techniques, code optimisation techniques, memory management techniques, code
generation techniques, contributions to hardware-software co-design as well as
approaches to generic programming.

He is a key contributor to the design and implementation of the functional
data-parallel array programming language SaC as well as to the coordination
language S-Net which builds on asynchronous streaming for engineering
concurrent applications. Both these systems are freely available and
studies with academic as well as with industrial partners have demonstrated
the suitability and the effectiveness of these systems for diverse
performance-critical application areas such as scientific computing,
financial modeling, supply-chain modelling, signal and image processing.

format

Regular talk

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions