David P. Sanders

Professor of Computational Science at the Universidad Nacional Autónoma de México and visiting professor at MIT.

Interested in computational science, interval arithmetic, and numeric-symbolic computing.

Author of the JuliaIntervals suite of packages for interval arithmetic, and various tutorials on Julia.


Sessions

07-28
19:40
30min
Open and interactive Computational Thinking with Julia and Pluto
David P. Sanders, Fons van der Plas, Alan Edelman

We will discuss goals, ideas, technical tools and outcomes for the open, online, interactive course on "Computational Thinking with Julia" that we have been teaching for the last two semesters. The Pluto notebook has allowed us to develop a new approach to write both an online interactive textbook and interactive problem sets with built-in solution checks.

Blue
07-29
13:10
10min
Calculating a million stationary points in a second on the GPU
David P. Sanders, Valentin Churavy

We will show how Julia allows us to implement spatial branch-and-bound-type methods using interval arithmetic in parallel on GPUs, in a relatively painless way. As a test case, we calculate and verify existence and uniqueness of over one million stationary points of the transcendental Griewank function of two variables in one second on a recent GPU. We are not aware of any other system that is able to do this.

Blue
07-28
13:10
10min
Solving discrete problems via Boolean satisfiability with Julia
David P. Sanders

Many discrete problems in mathematics and computer science can be encoded into Boolean satisfiability (SAT) problems, and then solved by one of the many SAT "solvers" written in C or C++, which are now capable of solving problems with millions of variables.

In order to understand the algorithms and trade-offs involved, we developed a simple SAT solver in pure Julia that is performant for small systems. We also have developed simple tools to encode discrete problems like sudoku into SAT.

Red
07-27
14:00
180min
Introduction to metaprogramming in Julia
David P. Sanders

Metaprogramming is a key technique that intermediate to advanced Julia users sometimes need -- although not as often as they think!

This will be a tutorial introduction to metaprogramming, analyzing, from the bottom up, key topics such as the structure of Julia expressions, how and when to use (and not use) generated functions and macros, and touching on more recent techniques like use of Symbolics.jl and MLStyle.jl.

Red
07-28
16:30
120min
Set Propagation Methods in Julia: Techniques and Applications
Marcelo Forets, Christian Schilling, Ander Gray, David P. Sanders, Matthew Wilhelm, Goran Frehse, Jorge Pérez Zerpa, Deleted User, Julien Calbert, Tomer Arnon

This minisymposium presents modern approaches to analyze a variety of mathematical systems in Julia, via set propagation techniques: dynamical systems, cyber-physical systems, probabilistic systems, and neural networks. To deploy those systems in the real world there is an increasing demand for safe and reliable models. The speakers represent a broad cross-section of work from different fields that build on set-based techniques and global optimization to address such challenges.

BoF/Mini Track
07-29
19:30
30min
Global constrained nonlinear optimisation with interval methods
David P. Sanders

We will present recent work in progress on guaranteed methods for inequality-constrained global nonlinear optimization in Julia. Using methods based on interval arithmetic allows us to guarantee (prove) that we return the true global minimum and minimizers for inequality-constrained optimization problems in low dimensions.

JuMP Track
07-29
20:20
10min
Publish your research code: The Journal of Open Source Software
David P. Sanders

JOSS, the Journal of Open Source Software (https://joss.theoj.org/) is a venue for publishing research software packages. This provides a mechanism for the large time investment required to develop open-source research software to be included within traditional systems for academic credit.

A JOSS paper is meant to be a short description of the contribution provided by the research software,
with the main content being in the (archived) software repository itself.

Green