Skip to main content

Getting to the Point with Dex: Safe Parallel Programming for Scientific Applications

Adam Paszke ( Google )
The talk will be focused on the design of Dex, both in terms of the surface syntax and its typing discipline. Dex is a new domain specific programming language aiming to make it easier to implement parallel scientific computing workloads in a clear and safe way, while being able to achieve the efficiency of low-level numerical languages. The core idea underlying its design is the treatment of arrays as memoized representations of functions with finite domains, allowing abstract function manipulations, such as currying or abstraction, to work on arrays. Additionally, instead of following the well-trodden path of bulk-array combinators, we argue for a programming style heavy on explicit array indexing, that closely mirrors function applications. We associate the classical bulk-array programming with “pointfree” style of functional programming and try to rebuild the array paradigm in an (arguably more popular) “pointful” style instead. For increased expressiveness and efficiency (especially under automatic differentiation), we additionally extend the language with a fine-grained effect system that allows us to reason about performance in a type-directed way.

Speaker bio

Adam Paszke is a Senior Research Scientist at Google, based in Warsaw, Poland. His work focuses on automatic differentiation, parallelism-friendly programming languages for scientific computing, and partitioning of those for purposes of distributed execution. Before Google, he worked with Facebook and authored PyTorch. He graduated in Computer Science and Mathematics from the University of Warsaw.




Share this: