To see our schedule with full functionality, like timezone conversion and personal scheduling, please enable JavaScript and go here.
12:30
12:30
30min
BifurcationKit.jl: bifurcation analysis of large scale systems
Romain VELTZ

BifurcationKit.jl is a package for the numerical bifurcation analysis of large scale problems. It incorporates automatic bifurcation diagrams (of equilibria) routines and efficient tools to study periodic orbits. Most of these tools run on GPU which makes it possible to study challenging problems. Its design allows an easy to interface with many packages such as ApproxFun.jl, DifferentialEquations.jl, FourierFlows.jl,...

Blue
12:30
90min
Building a Chemistry and Materials Science Ecosystem in Julia
Rachel Kurchin, Michael F. Herbst

Julia has a growing presence in the computational chemistry and materials science communities, already exhibiting best-in-class performance in several domains. However, a common set of tools, datatypes, and norms are largely lacking at present. In this session, we will have discussions to build consensus around a vision for such tools, with an emphasis on reusable structures/workflows, such as I/O for common file types, bindings for widely-used codes from other languages, and mathematical tools.

BoF/Mini Track
12:30
10min
Clearing the Pipeline Jungle with FeatureTransforms.jl
Glenn Moynihan

The prevalence of glue code in feature engineering pipelines poses many problems in conducting high-quality, scalable research. In worst-case scenarios, the technical debt racked up by overgrown “pipeline jungles” can preclude further development and grind promising projects to a halt [1]. This talk will show how the FeatureTransforms.jl package can help make feature engineering a more sustainable practice for users without sacrificing the flexibility they desire.

Purple
12:30
30min
Geostatistical Learning
Júlio Hoffimann

Geostatistical Learning is a new branch of Geostatistics concerned with learning functions over geospatial domains (e.g. 2D maps, 3D subsurface models). The theory is being carefully implemented in the GeoStats.jl framework, which is an extensible framework for high-performance geostatistics in Julia. In this talk, I will illustrate how the framework can be used to learn functions over general unstructured meshes, and how this unique technology can help advance geoscientific work.

Green
12:30
30min
Put some constraints into your life with JuliaCon(straints)
Jean-François BAFFIER (azzaare@github)

The freshly born JuliaConstraints GitHub organization provides a combination of packages around the theme of Constraint Programming and Combinatorial Optimization.
This talk introduces the whole ecosystem of JuliaConstraints packages and its main dependencies. It focuses on the LocalSearchSolvers.jl framework (and CBLS.jl, its interface with JuMP) for Constraint-Based Local Search. We also cover the utility packages that we hope to share with the Julia and Constraint Programming communities.

Red
12:30
30min
The state of JuMP
Oscar Dowson

JuMP is a modeling language and collection of supporting packages for mathematical optimization in Julia. JuMP makes it easy to formulate and solve linear programming, semidefinite programming, integer programming, convex optimization, constrained nonlinear optimization, and related classes of optimization problems.

In this talk, we discuss the state of JuMP, preview some recently added features, and discuss our plans for the future.

JuMP Track
12:40
12:40
10min
TiledViews.jl
Rainer Heintzmann

This class implements an 2N-dimensional tiled (copy-free) view of an AbstractArray of N dimensions. The tiling is specified by a tile_size and a tile_overlap leading to N inner coordinates (within each tile) and outer coordinates (tile index). The view is easily combined with windows and has getindex/setindexaccess. Applications range from deconvolution of large datasets to propagation of optical field amplitudes. Similarities and differences to TiledIteration.jl will be presented.

Purple
12:50
12:50
10min
Structural lambdas for generic code and delayed evaluation
Gustavo Nunes Goretkin

We describe an experimental package that reifies lambda functions as a Lambda(args, body) and function calls as Call(function, args), giving a new way to "quote" expressions. It generalizes types like Base.Fix2, Base.Generators, Iterators.Filter and possibly many others. It might be well-suited for the recurring pattern of deferred computation in Julia code.

Purple
13:00
13:00
30min
Agents.jl and the next chapter in agent based modelling
Tim DuBois

Complex dynamical systems are comprised of many interacting sub-systems that couple together through multiple, varying (and many times non-linear) processes: creating emergent system properties as a consequence. Agents.jl provides a framework to work with such dynamics, through a bottom-up approach known as Agent Based Modelling. This talk provides an overview of the package, and discusses how the greater Julia ecosystem may provide the next paradigm shift in this well established research area.

Blue
13:00
30min
Hierarchical Multiple Instance Learning
Tomas Pevny

Learning from raw data input is one of the key components of many successful applications of machine learning methods. While machine learning problems are often formulated on data that naturally translate into a vector representation suitable for classifiers, there are data sources with a unifying hierarchical structure, such as JSON. This talk will describe Mill.jl and JsonGrinder.jl, which offers a theoretically justified approach to solve machine learning problems with these data sources.

Green
13:00
10min
Julog.jl: Prolog-like Logic Programming in Julia
Xuan (Tan Zhi Xuan)

Julog.jl is a library and domain-specific language for Prolog-like logic programming in Julia. This lightning will introduce logic programming at a high level, how Julog can be used to solve first-order logic problems, how its functionality can be integrated with custom Julia functions, downstream use cases, and some next steps for making logic and constraint programming fast and accessible for Julia users.

Red
13:00
30min
What's new in COSMO?
Michael Garstka

In this talk we describe two recent improvements to the COSMO solver. The first improvement is an automatic clique merging strategy which allows COSMO to solve large sparse SDPs more effectively. The second improvement is a safeguarded acceleration method that wraps around the solver's ADMM algorithm. We show that this leads to a significant improvement in both convergence and solve time to higher accuracy solutions. We tested the method on more than 500 QPs and SDPs from various applications.

JuMP Track
13:10
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
13:20
13:20
10min
Running Programs Forwards, Backwards, and Everything In Between
Zenna Tavares

Every method defines a relation, which contains all the information we need to query possible values of any of the inputs or outputs given information on the others. This talk introduces parametric relational programming, which given a method M; information on any of M's variables, and a query set Q of variables of interest, compiles a new method M̂ that computes possible values of variables in Q. This unifies the forward and inverse execution (and everything in between) as forms of inference.

Red
13:30
13:30
10min
An individual-based model to simulate Coffee Leaf Rust epidemics
Manuela Vanegas Ferro

Coffee Leaf Rust (CLR) is an aggressive plant disease of high economic importance that has caused major production collapses worldwide. To explore how the management and long-term planning of a coffee farm can influence CLR epidemic outcomes over several years, we took advantage of Julia’s multiple dispatch and distributed computing to develop and test an individual-based model of a coffee farm.

Blue
13:30
30min
Conic optimization example problems in Hypatia's examples folder
Chris Coey

Hypatia is a conic interior point solver written in Julia, with a generic cone interface. In Hypatia's examples folder, we have implemented around three dozen applied examples from a wide variety of domains (see https://chriscoey.github.io/Hypatia.jl/dev/examples/). In this talk, we summarize Hypatia's examples, scripts, and the results of our computational comparisons on thousands of conic instances generated from our examples.

JuMP Track
13:30
30min
Dictionaries.jl - for improved productivity and performance
Andy Ferris

Dictionaries.jl presents an alternative interface for dictionaries in Julia, for improved productivity and performance. During this talk we'll learn how to use Julia's data manipulation tools (such as indexing, broadcasting, map, filter, reduce, etc) with dictionaries and explore some implementation decisions made in this package. We will end with applications, including recent work on tabular data with primary and/or grouping keys.

Purple
13:30
30min
FunSQL: a library for compositional construction of SQL queries
Kyrylo Simonov, Clark C. Evans

Julia programmers sometimes need to interrogate data with the Structured Query Language (SQL). But SQL is notoriously hard to write in a modular fashion. There is no way to reuse SQL query fragments among different queries.

FunSQL exposes full expressive power of SQL with a compositional semantics. FunSQL allows you to build queries incrementally from small independent fragments. This approach is particularly useful for building applications that programmatically construct SQL queries.

Red
13:30
10min
ReactiveMP.jl: Reactive Message Passing-based Bayesian Inference
Dmitry Bagaev

ReactiveMP.jl is a native Julia implementation of reactive message passing-based Bayesian inference in probabilistic graphical models. The package supports a large range of standard probabilistic models and can be extended to custom novel nodes and message update rules. In contrast to non-reactive (imperatively coded) Bayesian inference packages, ReactiveMP.jl scales easily to support inference on a standard laptop for large models with tens of thousands of variables and millions of nodes.

Green
13:40
13:40
10min
Exploiting Structure in Kernel Matrices
Sebastian Ament, John Paul Ryan

Kernel methods are widely used in statistics, machine learning, and physical simulations. These methods give rise to dense matrices that are naïvely expensive to multiply or invert. Herein, we present CovarianceFunctions.jl, a package that automatically detects and exploits low rankness, hierarchical structure, approximate sparsity. We highlight applications of this technology in Bayesian optimization and physical simulations.

Green
13:40
10min
hPF-MD.jl: Hybrid Particle-Field Molecular-Dynamics Simulation
Zhenghao Wu

We introduce an efficient framework of molecular-dynamics simulations (hPF-MD), using a density-functional-based formalism to compute the non-bonded interactions between particles. hPF.jl is motivated to leverage the advantages of Julia, an interpreted language designed to achieve high-performance, statically compiled programming languages and the extensive computing community.

Blue
13:50
13:50
10min
Effects.jl: Effectively Understand Effects in Regression Models
Phillip Alday

Regression models are useful but they can be tricky to interpret.
Variable centering and contrast coding can obscure the meaning of main effects.
Interaction terms, especially higher order ones, only increase the difficulty of interpretation.
Here, we introduce Effects.jl which translates the fitted model, including estimated uncertainty, back into data space.
Using Effects.jl, it is possible to generate effects plots that enable rapid visualization and interpretation of regression models.

Green
13:50
10min
Enhanced Sampling in Molecular Dynamics Simulations with Julia
Pablo Zubieta

When performing molecular dynamics simulations of materials in chemistry, physics and
biology, there exists a large gap between the time scales that can be probed
computationally to the ones observed in experiments. Two strategies to tackle this
problem are both to develop algorithms to explore the simulation space more efficiently, and to
employ hardware accelerators. I would like to share my experience and perspectives using
Julia to make faster developments in both fronts.

Blue
14:30
14:30
5min
Opening remarks

Opening remarks

Green
14:35
14:35
45min
Keynote (Jan Vitek)

Julia - Is it a great language, or it is the greatest language!

Green
15:20
15:20
40min
Keynote: William Kahan - Debugging Tools for Floating-Point Code

Debugging tools widely used for almost all other programs are inadequate
for floating-point programs because these are so different. Suitable tools
appeared in 1980 with IEEE Standard 754 for Floating-Point Hardware,
but such tools have gone largely undemandeded by customers who pay for
designers and implementors of languages and operating systems. These
almost never support such tools. Their value has gone unappreciated.
MAYBE A FEW EXAMPLES WILL CHANGE SOME MINDS.

Green
16:00
16:00
30min
JuliaCon Trivia

Trivia questions related to Julia -- this is a fun optional activity for our first break.

Green
16:30
16:30
30min
Everything you need to know about ChainRules 1.0
Miha Zgubic

ChainRules is an automatic differentiation (AD)-independent ecosystem for forward-, reverse-, and mixed-mode primitives. It comprises ChainRules.jl, a collection of primitives for Julia Base, ChainRulesCore.jl, the utilities for defining custom primitives, and ChainRulesTestUtils.jl, the utilities to test primitives using finite differences. This talk provides brief updates on the ecosystem since last year and focuses on when and how to write and test custom primitives.

Green
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
16:30
30min
Symmetry reduction for Sum-of-Squares programming
Benoît Legat, Marek Kaluba

In this talk we discuss a symmetry reduction approach relying on the invariance of the polynomial under a group of actions. From the algebraic properties of the group, the SymbolicWedderburn package determines a change of basis that enables the decomposition of the constraints into smaller bases, some of them being equal which further reduces the problem. We show how to specify the group symmetry to allow SumOfSquares to perform this reformulation automatically.

JuMP Track
16:30
30min
Tomographic Image Reconstruction with Julia
Tobias Knopp

In this talk we show how Julia can be used to develop tomographic image reconstruction algorithms. These involve the solution of large scale ill-posed inverse problems where usually the imaging operator does not fit into the main memory and in-turn matrix-free methods need to be applied. The talk captures how Julia has been used to form a package ecosystem for two different tomographic imaging methods and outlines the advantageous compared to mature C/C++ libraries in the field.

Purple
16:30
30min
TopOpt.jl: topology optimization software done right!
Mohamed Tarek

Topology optimization is a field lacking in good software tools. Most available software in this field either can’t be installed easily on all operating systems, support one or a few simple types of problems, implement one or a few types of algorithms, lack modularity and a decent API, lack performance, or all of the above! TopOpt.jl is a Julian attempt to provide a modular, flexible and high performance tool for topology optimization researchers.

Red
17:00
17:00
30min
Enzyme.jl -- Reverse mode differentiation on LLVM IR for Julia
Valentin Churavy, William Moses

Enzyme (https://enzyme.mit.edu) is a reverse mode auto-differentiation tool that performs automatic differentiation over LLVM intermediate representation and synthesis high-performance reverse-mode functions. We will discuss how Enzyme.jl integrates with the Julia compiler and special considerations required for differentiating a dynamic programming language such as Julia.

Green
17:00
30min
FrankWolfe.jl: scalable constrained optimization
Mathieu Besançon

We present FrankWolfe.jl, a new Julia package implementing several Frank-Wolfe algorithms to optimize differentiable functions with convex constraints.
The Julia optimization ecosystem includes toolboxes for unconstrained optimization on one hand and domain-specific modelling languages for constrained optimization on the other hand.
This package offers the possibility to optimize functions defined as Julia code with DSL-based closed-form or arbitrary convex constraints in an efficient manner.

Red
17:00
30min
Vectorized Query Evaluation in Julia
Richard Gankema, Alex Hall

Modern databases can choose between two approaches to evaluating queries with high performance: Query Compilation compiles each query to optimized machine code, while Vectorization interprets queries using BLAS-style primitives.

Query compilation offers more optimization potential for LLVM, while vectorization doesn’t require runtime compilation.

We explain how these techniques work and how we combine them, showcasing how Julia lets us have the best of both.

Blue
17:10
17:10
10min
DeconvOptim.jl: Microscopy Image Deconvolution
Felix Wechsler

A microscope capturing incoherent light emitted by a specimen always introduces some blur to the image which can be described as a convolution of the object with the point spread function (PSF) of the optical system.
Deconvolution is an algorithm which tries to reverse this blurring process providing a sharper image.
We offer a flexible deconvolution toolbox called DeconvOptim.jl to solve deconvolution for multidimensional signals.

Purple
17:10
10min
Sparse Matrix Decomposition and Completion with Chordal.jl
Theo Diamandis

We will introduce Chordal.jl, which includes several extensible algorithms for sparse matrices with a chordal sparsity pattern. We will overview the algorithms in this package and showcase their application in sparse semidefinite programming.

JuMP Track
17:20
17:20
10min
Automatic dualization with Dualization.jl
Guilherme Bodin

In this talk, we present Dualization.jl, an extension that allows users to dualize optimization problems defined in JuMP. The dual formulation can be used to better suit the description of the optimization problem to the format expected by the conic solver. Moreover, automatic dualization can be used to model bilevel problems by automatically building some of the KKT conditions.

JuMP Track
17:20
10min
Matlab to Julia: Hours to Minutes for MRI Image Analysis
Jonathan Doucette

Magnetic resonance imaging (MRI) research has quickly entered the big data regime: hardware and software advances have given rise to (3+1)-dimensional MRI images which consist of 32-64 volumes with dimensions 250x250x250 or more, making non-trivial image processing computationally expensive. In this talk, we describe our experience translating an MRI image post-processing technique from Matlab to Julia (https://github.com/jondeuce/DECAES.jl), reducing computation times from 2 hours to 2 mins.

Purple
17:30
17:30
10min
A Tour of the differentiable programming landscape with Flux.jl
Dhairya Gandhi

Deep learning has grown steadily and there has been rising interest from various groups to incorporate ML techniques in their modelling via differentiable programming. Software 2.0 as its known, is going to need a large resource pool of tools to actualise its goal. In this talk, we will discuss how the Flux.jl stack along with Zygote and next-gen AD tooling is enabling differentiable programming already in a variety of domains and tour across the packages and projects that are taking part in it.

Green
17:30
30min
Modeling Bilevel optimization problems with BilevelJuMP.jl
Joaquim Dias Garcia

In this talk, we present BilevelJuMP.jl an extension that makes it straightforward for users to write bilevel problems just like JuMP made it easy to write optimization problems. BilevelJuMP.jl uses Dualization.jl to generate the dual constraints of KKT conditions and has multiple formulations for complementarity constraints such as SOS1, Fortuny-Amat, quadratic programming, and actual complementarity constraints.

JuMP Track
17:30
10min
Modelling cryptographic side-channels with Julia types
Simon Schwarz, Markus Kuhn

In cryptographic embedded systems, power-line or RF emissions can leak secrets. We use Julia to model both attacks and defenses. Some of our custom integer and array types record information observable by attackers, such as Hamming weights of values. Others implement counter-measures, such as masking values across randomized shares. Julia’s parametric type system conveniently allows us to stack these types without syntactic overhead when exploring or teaching side-channel security.

Red
17:30
10min
ReTest.jl - more productive testing
Rafael Fourquet

ReTest.jl is a testing framework which is backward-compatible with the Test standard library, and offers few usability improvements, like nicer printing of results, filtering testsets according to their descriptions or running them in parallel. This talk is a tutorial motivating and demonstrating the main features of the package.

Blue
17:40
17:40
10min
Genify.jl: Transforming Julia into Gen for Bayesian inference
Xuan (Tan Zhi Xuan)

Many Julia libraries implement stochastic simulators of natural and social phenomena, but they are not generally amenable to Bayesian inference. In this talk, we present Genify.jl, which transforms these simulators into the Gen probabilistic programming system via compiler injection, allowing us to compute likelihoods, constrain random variables to specific values, and update these values for Monte Carlo inference, thereby enabling Bayesian inference over a wide range of existing Julia code.

Purple
17:40
10min
Lattice Reduction using LLLplus.jl
Chris Peel

Lattice reduction is used in post-quantumn cryptography, digital communication, and number theory. Lattice tools will be introduced with a focus on the Lenstra-Lenstra-Lovacsz (LLL) technique. The LLLplus.jl package will be demoed and shown to work with user-defined data types such as BitIntegers.jl.

Red
17:40
10min
Learning to align with differentiable dynamic programming
Michiel Stock

The alignment of two or more biological sequences is one of the main workhorses in bioinformatics because it can quantify similarity and reveal conserved patterns. We provided a differential version of the two most popular algorithms for sequence alignment: the Needleman–Wunsch and Smith-Waterman algorithms. Using ChainRulesCore.jl, the gradients can be used directly in combination with bioinformatics and machine learning libraries.

Green
17:40
5min
Sponsor Talk (Invenia)

Sponsor talk.

Blue
17:45
17:45
5min
Sponsor talk (KAUST)

Sponsor talk.

Blue
17:50
17:50
10min
Partitions and chains: enabling batch processing for your data
Jacob Quinn

While big data isn't new anymore, building efficient pipelines to parse, analyze, transform, aggregate, and save all this data is still a tricky business. Come learn about new tools across the JuliaData family of packages for batch processing data, allowing automatic use of multithreading for data processing tasks.

Green
17:50
10min
SpeedMapping.jl: Implementing Alternating cyclic extrapolations
Nicolas Lepage-Saucier

SpeedMapping.jl implements Alternating cyclic extrapolations: a new and fast algorithm for accelerating optimization algorithms. It may be used for a large class of problems requiring a solution to the mapping F(x) = x. It also performs multivariate optimization often faster than L-BFGS or the nonlinear conjugate gradient method, especially with box-constraints. It will be useful in statistics, computer science, physics, biology or economics and many other fields.

Red
17:50
5min
Sponsor talk (Pumas AI)

Sponsor talk.

Blue
17:55
17:55
5min
Sponsor talk (Quera)

Sponsor talk.

Blue
18:00
18:00
60min
GatherTown -- Social break

Join us on Gather.town for a social hour.

It is a virtual location where we will facilitate the poster sessions, social gatherings, and hackathon. You can join the space using the URL: https://gather.town/invite?token=3QYkt8gX.

You should have received the password through Eventbrite

Green
19:00
19:00
30min
Building on AlphaZero with Julia
Jonathan Laurent

In this talk, we give an introduction to the AlphaZero algorithm and discuss some research challenges of using it beyond board games. In an effort to make this algorithm widely accessible to students and researchers, we introduce AlphaZero.jl. We show how this package leverages Julia's strengths to provide an implementation that is simple and flexible, while being up to two orders of magnitude faster than comparable Python implementations.

Green
19:00
30min
Changing Physics education with Julia
George Datseris

In many disciplines of physics, code is not explicitly discussed as part of the learning subject. Here I will focus on nonlinear dynamics, a discipline that suffers greatly from the disconnect between the mathematics and the coding. I will present our new approach in teaching this subject, based on JuliaDynamics and a new Springer textbook for nonlinear dynamics whose pages are interlaced with Julia code. I wish to demonstrate how Julia can fundamentally change the way physics is being taught.

Blue
19:00
30min
Code, docs, and tests: what's in the General registry?
Mosè Giordano, Eric P. Hanson

The General registry is the collection of open source packages that makes up the Julia package ecosystem. Here, we take a survey: what fraction of packages have tests? CI? Docs? An open source license? How big are most packages? What's the biggest one? Are there many tiny packages? We will explore these questions and more with charts, plots, and discussion. We'll also show how to use PackageAnalyzer.jl to collect the data for yourself or take a look at a particular package (perhaps your own!).

Purple
19:00
90min
Fancy Arrays BoF 2
Frames Catherine White, Rory Finnegan

This is the second of two BoFs planned several years ago, to replace AxisArrays.jl.
Per the original plan, we would go away and make many packages to try many ideas. Come back and touch base in 2020, and then draw conclusions in 2021.
The goal this year is to determine a final plan to either get down to a small number of packages, or establish a common interface.

BoF/Mini Track
19:00
30min
Infinite-Dimensional Optimization with InfiniteOpt.jl
Joshua Pulsipher

We present InfiniteOpt.jl which facilitates a coherent unifying abstraction for characterizing infinite-dimensional optimization problems rigorously through a common lens. This decouples models from discretized forms and promotes the use of novel transformations. This new perspective encourages new theoretical crossover and novel problem formulations (creating new disciplines like random field optimization).

JuMP Track
19:00
30min
🎈 Pluto.jl — one year later
Fons van der Plas

Pluto.jl is a notebook IDE for Julia, with a focus on interactivity and education. In this talk, you'll learn about our work during the past year, and our future plans.

Red
19:30
19:30
30min
Bayesian Neural Ordinary Differential Equations
Raj Dandekar

We answer the question: “Can Bayesian learning frameworks be integrated with Neural ODE’s to robustly quantify the uncertainty in the weights of a Neural ODE?” for the following categories of inference methods: (a) NUTS samples and stochastic frameworks like (b) SGLD, SGHMC. We test these methods on physical systems and ML datasets like MNIST. Finally, we demonstrate probabilistic, symbolic recovery of missing terms from dynamical systems using universal ODEs.

Green
19:30
30min
Hybrid Strategies using Piecewise-Linear Decision Rules
Said Rahal

In this talk, we discuss planned extensions to the features provided by JuMPeR via the following three attributes: (1) introduction of new policy type to the adaptive decisions, (2) introduction of the stochastic programming objective function paradigm and (3) introduction of moving/folding horizon simulator features to assess the robust/stochastic affine policies. The third attribute is closely related to what is known as pareto optimality of robust adaptive solutions.

JuMP Track
19:30
30min
Julia in VS Code - What's New
David Anthoff, Zac Nugent

We will highlight new features in the Julia VS Code extension that shipped in the last year and give a preview of some new work. The new features from last year that we will highlight are: 1) progress UI, 2) documentation browser, 3) package tagging functionality, 4) Jupyter notebook support, and 5) a new cloud hosted symbol indexing architecture.

Red
19:30
10min
Using optimization to make good guesses for test cases
Andrew Dolgert

Some applications seem untestable because they are slow to run, with too many options. One approach chooses tests carefully using an optimization algorithm to find the smallest set of tests that are likely to exercise all the parts of the code. In this talk, we introduce the UnitTestDesign.jl package for combinatorial testing and show how it integrates with Julia's test framework using Julia's system of artifacts and scratch spaces.

Purple
19:40
19:40
10min
Building Interactive REPL-based Visualizations in GridWorlds.jl
Siddharth Bhatia

Visualization often plays an important role in several disciplines. For example, in reinforcement learning, visualization tools are indispensable for testing environment logic and analyzing agent behavior. Using the GridWorlds.jl package as an example, I will explain some fundamental concepts and techniques to enable anyone to easily build their own terminal-based visualizations from scratch, and demonstrate how they can be leveraged to create productive workflows inside the Julia REPL.

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

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
19:50
19:50
10min
Catwalk.jl: A profile guided dispatch optimizer
Krisztián Schäffer

Catwalk.jl can speed up long-running Julia processes by minimizing the overhead of dynamic dispatch. It is a JIT compiler that continuosly re-optimizes dispatch code based on data collected at runtime.
It features a low overhead statistical profiler and a tunable cost model to drive recompilation decisions.

I will talk about its target use case, performance characteristics, some implementation details and its connections to the Julia ecosystem.

Purple
20:00
20:00
10min
Flexible set projections with MathOptInterface
Mathieu Besançon

MathOptInterface has become a pillar of constrained optimization in Julia, defining a common language unifying multiple branches of mathematical optimization. We will present MathOptSetDistances.jl, a package to compute distances to and projections onto sets, and the differentiation of these operations. We will cover the motivation behind it, how it started and highlight learned lessons on the way.

JuMP Track
20:00
10min
Web application for atmospheric dispersion modeling.
Tristan Carion

Atmospheric dispersion models will be coupled with event-based response models to assess the impact of CBRN (Chemical, Biological, Radiological and Nuclear) releases. A user-friendly web-based tool is being developed using Genie.jl and will run on the cloud infrastructure of ECMWF. The event-based model will be implemented using the SimJulia.jl framework. Ensemble weather forecasts will then be used to give probabilistic quantification of the impacted area and of the appropriate response plan.

Red
20:10
20:10
10min
HypertextLiteral : performant string interpolation for HTML/SVG
Clark C. Evans

HypertextLiteral is a Julia package for generating HTML, SVG, and other SGML tagged content. It works similar to Julia string interpolation, appropriately escaping interpolated values and providing handy data conversions dependent upon context. The implementation compiles templates to functions, with a custom IO proxy for escaping.

For those building dynamic hypertext, HTL is fast: 40x faster than object-based serializations; 8x faster than naive list comprehensions with string interpolation.

Red
20:10
10min
POMDPs.jl and Interactive Assignments in Julia
Zachary Sunberg

POMDPs.jl is a leading research tool for partially observable Markov decision processes that also enables new teaching opportunities. This talk will describe POMDPs.jl and the Decision Making under Uncertainty class at CU Boulder. Each assignment in this class includes an open-ended challenge problem where students implement algorithms in Julia that are auto-graded. The system enables challenging assignments such as programming MCTS with a 100ms time limit and DQN for reinforcement learning.

Green
20:10
10min
Solving optimization problems at Fonterra
Oleg Barbin

In this talk we discuss how the Data Science team at Fonterra, a New Zealand dairy co-operative responsible for 30% of the world trade in dairy exports, use JuMP to solve planning problems relating to organic milk production.

JuMP Track
20:20
20:20
10min
Pluto.jl Notebooks are Web APIs!
Connor Burns

What if Pluto notebooks could become web APIs instantly? With the power of reactivity, Pluto’s new “What you see is what you REST” features do just that: every global variable becomes an HTTP endpoint, and you can provide other global variables as URL parameters. These features not only provide a new paradigm for writing web APIs with Julia, but also open the door to a promising new form of inter-notebook communication all within Pluto.

Red
20:20
10min
Probabilistic Model Checking using POMDPModelChecking.jl
Maxime Bouton

Autonomous systems are often required to operate in partially observable environments. They must reliably execute a specified objective even with incomplete information about the state of the environment. Model checking allows us to synthesize a decision policy that satisfies a linear temporal logic (LTL) formula in a POMDP. By reformulating the model checking problem into an AI planning problem, we can use state-of-the-art POMDP planning algorithms to solve model checking problems.

Green
20:20
10min
TSSOS.jl: exploiting sparsity in polynomial optimization
Jie Wang

TSSOS.jl helps polynomial optimizers solve large-scale problems with sparse input data. The underlying algorithmic framework is based on exploiting correlative and term sparsity to obtain a new moment-SOS hierarchy involving potentially much smaller positive semidefinite matrices. TSSOS can be applied to numerous problems ranging from power networks to eigenvalue and trace optimization of noncommutative polynomials, involving up to tens of thousands of variables and constraints.

JuMP Track
20:30
20:30
60min
GatherTown -- Social break

Join us on Gather.town for a social hour.

It is a virtual location where we will facilitate the poster sessions, social gatherings, and hackathon. You can join the space using the URL: https://gather.town/invite?token=3QYkt8gX.

You should have received the password through Eventbrite

Green
12:30
12:30
30min
CUDA.jl 3.0
Tim Besard

An overview and demonstration of the new features in CUDA.jl 3.0, most notably support for concurrent GPU programming.

Blue
12:30
10min
DataSets.jl: A bridge between code and data
Chris Foster

In technical computing, getting data into and out of your code can be a pain. Data comes in all shapes, sizes and formats, with many different locations and storage access mechanisms.

DataSets.jl is a new package for describing data declaratively and mapping it neatly into your programs. We aim to make your code portable between data environments and remove the cruft of local paths and data access wrappers which litter technical analysis code.

Purple
12:30
90min
Live Coding: Outreach and Beyond
Jacob Zelko

The goal of this session is to gather people interested in streaming their programming sessions. Streaming code is a particular exercise, we want to foster the exchange of best practices, tips and thoughts. In particular, we would like to see to which extent Julia streamers have managed to reach an audience beyond the Julia community, used streams as a teaching medium and how we can improve the formats to make it more accessible to newcomers. The BoF is not limited to streamers, people watching

BoF/Mini Track
12:30
30min
Scalable Power System Modeling and Analaysis
Clayton Barrows, Dheepak Krishnamurthy

The Scalable Integrated Infrastructure Planning (SIIP) initiative at NREL has developed a set of high-performance power system simulation capabilities with PowerSystems.jl and PowerSimulations.jl. This talk will demonstrate these capabilities with interactive examples using large realistic datasets, and provide theoretical background for software design choices.

Red
12:30
30min
SmartTensors: Unsupervised Machine Learning
Velimir Vesselinov

Demonstrate SmartTensors (http://tensors.lanl.gov; https://github.com/SmartTensors): a toolbox for unsupervised machine learning based on matrix/tensor factorization constrained by penalties enforcing robustness and interpretability (e.g., nonnegativity; physics and mathematical constraints; etc.). SmartTensors has been applied to analyze diverse datasets related to a wide range of problems: from COVID-19 to wildfires and climate.

Green
12:30
30min
The Design of the MiniZinc Modelling Language
Gleb Belov

In this talk, we discuss the design of MiniZinc, a leading Constraint modelling language.

JuMP Track
12:40
12:40
10min
Systems Biology in ModelingToolkit
Anand Jain, Shahriar Iravanian, Paul Lang

Systems Biology Markup Language (SBML) and CellML are extensible markup languages (XML) widely used throughout the biological modeling community. In this talk we showcase new packages (SBML.jl and CellMLToolkit.jl) for importing models from these languages to the ModelingToolkit.jl format for the full suite of SciML tools to simulate and analyze!

Purple
12:50
12:50
10min
Single-cell resolved cell-cell communication modeling in Julia
Megan Franke

We develop multiscale models that couple cell-cell communication with cell-internal gene regulatory network dynamics to study cell fate decision-making from a dynamical systems perspective. In JuliaLang, we model cell-cell communication as a Poisson process, and cell-internal dynamics with nonlinear ordinary differential equations, taking advantage of the power of DifferentialEquations.jl. We show that subtle changes in cell-cell communication lead to dramatic changes in cell fate distributions.

Purple
13:00
13:00
30min
ConstraintSolver.jl - First constraint solver written in Julia
Ole Kröger

In this talk we discuss ConstraintSolver.jl, a new Julia package to tackle the problem of solving constraint programming problems purely in Julia.

JuMP Track
13:00
30min
Finding an Effective Strategy for AutoML Pipeline Optimization
Paulito Palmes

One of the main problems in AutoML implementation is finding the best strategy to search the most optimal pipeline in prediction or classification tasks. This problem is commonly known as CASH (Combined Algorithm Selection and Hyperparameter Optimization). This talk will show competitive results with significantly shorter computation time by just focusing the search in the model selection and structure of the pipeline without the need of hyperparameter optimization.

Green
13:00
10min
FlowAtlas.jl: interactive exploration of phenotypes in cytometry
Grisha Szep

I will present an interactive web app for exploring phenotypes in flow cytometry data. In particular a multi-tissue, high-dimensional, immune cell dataset. This tool bridges computational methods in GigaSOM.jl and the popular FlowJo, used to annotate cells with gating strategies. By leveraging the geospatial mapping library OpenLayers to render, annotate and analyze cells, immunologists can now efficiently navigate the phenotype space of Human Cell Atlas datasets.

Purple
13:00
10min
Scaling of Oceananigans.jl on multi GPU and CPU systems
Chris Hill, Valentin Churavy, Ali Ramadhan, Francis Poulin, Gregory Wagner

This talk will present scaling and performance of the Oceananigans.jl ocean model on CPU and GPU systems. Oceananigans.jl is an all Julia code that is designed to study geophysical fluids problems ranging from idealized turbulence to planetary scale circulation. It uses the KernelAbstractions.jl package to support CPU and GPU single address space parallelism. It uses MPI.jl, to support multi-node and multi-GPU parallelism. MPI.jl is used both directly and through PencilArrays.jl.

Blue
13:00
10min
Unbalanced Power Flow Optimization with PowerModelsDistribution
David M Fobes

With the recent advancements in power distribution, e.g., higher penetration of distributed energy resources (DERs), there is a significant demand for optimization tools to solve a variety of complex operational and planning problems, such as optimal dispatch, load shedding, and on-load tap changing. We have developed an optimization-focused approach to phase unbalanced power distribution modeling called PowerModelsDistribution, the design and usage of which we will introduce in this talk.

Red
13:10
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
13:10
10min
Designing ecologically optimized vaccines
Kusti Skytén

Designing vaccines is an expensive and time consuming process. This talk demonstrates how we can exploit automatic differentiation of ODEs, parallelization, stochastic search and Bayesian optimization to minimize post-vaccination invasive pneumococcal disease and antibiotic resistant strains in a bacteria population using a novel computational model of the bacterial population dynamics that integrates epidemiological and genomic data.

Purple
13:10
10min
PowerModelsDistributionStateEstimation.jl
Marta

This talk is about a registered Julia package: PowerModelsDistributionStateEstimation.jl, that allows easy benchmark and design of state estimation models for power distribution systems. The goal is to accelerate the use of this technique in research and real-life settings. State estimation is formulated as a mathematical optimization problem using JuMP.jl and can be solved with off-the-shelf solvers. Different modeling options are featured, and the package is designed to be easily extensible.

Red
13:20
13:20
10min
LatticeQCD.jl: Simulation of quantum gauge fields
Akio Tomiya, Yuki Nagai

We present our code (LatticeQCD.jl) for quantum chromo-dynamics (QCD), which describes microscopic world inside of nucleons.
QCD calculation has been implemented by Fortran and C++ on supercomputers or GPU clusters because it requires huge numerical resource, i.g. Monte-Carlo with inversions of matrices with 10^16 x 10^16, and has been succeeded to calculate crucial numbers used in experiments. We implemented a code for QCD in Julia, which achieves compatible speed with a Fortran code.

Red
13:20
10min
PRS.jl: Fast Polygenic Risk Scores
Annika Faucon

Determining one’s risk of developing various diseases throughout one’s lifetime is important for pursuing good health. An emerging method for performing this calculation is the Polygenic Risk Score, or PRS. A PRS method allows one to construct a model of risk of acquiring a certain disease given one’s own genome and provides a simple numerical result representing that risk. We will describe how we ported a widely used PRS program to Julia and the performance and usability that we gained.

Purple
13:20
10min
ZXCalculus.jl: A Julia package for the ZX-calculus
Chen Zhao

The ZX-calculus is a graphical language for representing and reasoning about quantum information. ZXCalculus.jl is a high-performance package for creating, manipulating, and visualizing ZX-diagrams in Julia. Comparing with a previous Python implementation PyZX, ZXCalculus.jl has 6-50x speed-ups on various tasks of simplifying ZX-diagrams. Moreover, this package is integrated with YaoCompiler.jl and works as a circuit simplification pass in the quantum compiler.

Blue
13:30
13:30
30min
ConstraintProgrammingExtensions.jl
Thibaut Cuvelier

ConstraintProgrammingExtensions.jl is a project bringing constraint programming to JuMP. Its main part is a large series of constraints that aim at providing a common interface for constraint-programming solvers. It also consists of a series of bridges that define relationships between those sets (including between high-level constraints such as knapsacks and mathematical-programming formulations) and of a FlatZinc reader-writer to import and export models in that common format.

JuMP Track
13:30
30min
ExaTron.jl: a scalable GPU-MPI-based batch solver for small NLPs
Youngdae Kim

We introduce ExaTron.jl which is a scalable GPU-MPI-based batch solver for many small nonlinear programming problems. We present ExaTron.jl's architecture, its kernel design principles, and implementation details with experimental results comparing different design choices. We demonstrate a linear scaling of parallel computational performance of ExaTron.jl on Summit at Oak Ridge National Laboratory.

Blue
13:30
30min
JuliaSPICE: A Composable ML Accelerated Analog Circuit Simulator
Glen Hertz, Pepijn de Vos

Analog circuit simulation is widely used to design and verify analog circuits before they are manufactured. We present a novel, composable SPICE simulator written entirely in Julia, called JuliaSPICE.

Red
13:30
10min
PhyloNetworks: a Julia package for phylogenetic networks
Claudia Solis-Lemus

Evolutionary relationships among organisms are depicted by a binary tree. However, not all species follow the paradigm of vertical inheritance of genes and thus, estimation of phylogenetic networks becomes necessary. PhyloNetworks is the first Julia package for the inference, manipulation, visualization, and use of phylogenetic networks.
The package documentation has a full tutorial including upstream analyses, network estimation, bootstrap analysis, and downstream analyses for trait evolution.

Purple
13:30
10min
Physics-Informed ML Simulator for Wildfire Propagation
Francesco Calisto, Simone Azeglio, Valerio Pagliarino, Luca Bottero

The aim of this work is to evaluate the feasibility of re-implementing some key parts of the widely used Weather Research and Forecasting WRF-SFIRE simulator by replacing its core differential equations numerical solvers with state-of-the-art physics-informed machine learning techniques to solve ODEs and PDEs implemented in Julia, in order to transform it into a real-time simulator for wildfire spread prediction.

Green
13:40
13:40
10min
Bias Audit and Mitigation in Julia
Ashrya Agrawal

This talk introduces Fairness.jl, a toolkit to audit and mitigate bias in ML decision support tools. We shall introduce the problem of fairness in ML systems, its sources, significance and challenges. Then we will demonstrate Fairness.jl structure and workflow.

Green
13:40
10min
Solving Pokemon Go Battles using Julia
Ian Slagle

RandomBattles.jl is a Julia package for the efficient simulation of individual and team Player-vs-Player Battles in Pokemon Go, the AR mobile game by Niantic. This package can compute Monte Carlo simulations, as well as game theoretic solutions to perfect information games. Using the game’s structure and Nash equilibria, the algorithm computes optimal play strategies for an arbitrary number of moves. These simulations derived strategies that are highly similar to those employed by human players.

Purple
13:50
13:50
10min
Data driven insight into fish behaviour for aquaculture
Fearghal O'Donncha, Paulito Palmes

Aquaculture, or the farmed production of fish and shellfish, has grown rapidly, from supplying just 7% of fish for human consumption in 1974 to more than half in 2016. Sustaining this rapid expansion requires data-driven management of the production process and environmental impacts. This talk presents a machine-learning-based exploration of environmental and fish behaviour datasets collected at three salmon farms in Norway, Scotland, and Canada using AutoML tools in Julia.

Green
13:50
10min
Julia for data analysis in High Energy Physics
Mikhail Mikhasenko

The talk presents the first data analysis in the LHCb experiment performed in Julia (arXiv:2107.03419). The analysis includes data selection, building and combining complex PDFs (AlgebraPDF.jl), likelihood fitting, angular analysis (FourVectors.jl, ThreeBodyDecay.jl, PartialWaveFunctions.jl), hypotheses testing, and running pseudo experiments. New packages enrich Julia ecosystem fostering the adoption of the language in the High Energy Physics community.

Purple
14:30
14:30
45min
State of Julia
Stefan Karpinski

Placeholder for State of Julia talk.

Green
15:15
15:15
45min
Keynote (Xiaoye (Sherry) Li)

Interplay of linear algebra, machine learning, and HPC

Green
16:30
16:30
10min
Designing Spacecraft Trajectories with Julia
Dan Padilha

This talk briefly presents OrbitalTrajectories.jl, a library providing tools for the analysis of orbital trajectories for space mission design. Making use of the Julia scientific modeling ecosystem to easily define and extend high-fidelity simulations of spacecraft motion, we demonstrate how key techniques including meta-programming, symbolic computation, non-linear optimisation, and automatic differentiation work towards generating, analysing, and stabilising orbital trajectories.

Red
16:30
90min
Experiences session

This session will include all the experiences talks. List of all experiences talks: https://juliacon.org/2021/experiences/

Purple
16:30
30min
InvertibleNetworks.jl - Memory efficient deep learning in Julia
Philipp A. Witte, Mathias Louboutin, Ali Siahkoohi, Felix J. Herrmann, Gabrio Rizzuti, Bas Peters

We present InvertibleNetworks.jl, an open-source package for invertible neural networks and normalizing flows using memory-efficient backpropagation. InvertibleNetworks.jl uses manually implement gradients to take advantage of the invertibility of building blocks, which allows for scaling to large-scale problem sizes. We present the architecture and features of the library and demonstrate its application to a variety of problems ranging from loop unrolling to uncertainty quantification.

Green
16:30
45min
Julia in High-Performance Computing
Valentin Churavy, Michael Schlottke-Lakemper, Simon Byrne, Carsten Bauer

The JuliaHPC community as a group maintains the infrastructure for using Julia in high-performance computing. In this BoF we invite newcomers, application developers, and maintainers to join us for an informal discussion around the state of Julia in HPC.

BoF/Mini Track
16:30
30min
Nonlinear programming on the GPU
François Pacaud

So far, most nonlinear optimization modelers and solvers have primarily targeted CPU architectures. However, with the emergence of heterogeneous computing architectures, leveraging massively parallel accelerators in nonlinear optimization has become crucial for performance. As part of the Exascale Computing Project ExaSGD, we are studying how to efficiently run nonlinear optimization algorithms at exascale using GPU accelerators.

JuMP Track
16:30
30min
Release management - lessons learned in JuliaData ecosystem
Bogumił Kamiński

Registering a new release for your package is always a great moment. However, there are several challenges related with release management. In this talk, using the experience from JuliaData ecosystem, I will discuss the major things to consider if you want to keep your users happy.

Blue
16:40
16:40
10min
AtomicSets.jl
Mia Kramer

We present AtomicSets.jl, a Julian framework for structured convex optimization. Algorithms for structured optimization build up a solution from a set of prescribed atoms that represent simple structures. The atoms that participate in the final solution often represent key explanatory components of a model. We use Julia's dispatch system to implement a calculus of convex sets and their functional representations that compiles to efficient machine code.

Red
16:50
16:50
10min
Julia Admittance: A Toolbox for Admittance Extraction
Lingling Fan

For power grid operators, wind farms and solar farms are black boxes since details of inverter technologies, the main component of renewables, are proprietary info. Then, how can a grid operator assess a power grid's stability? We aim to design a toolbox to address this challenge. Julia Admittance will process experiment data and come up with admittance models for wind, solar, etc. With admittance models available, eigenvalues of the system will be computed to assess system stability.

Red
17:00
17:00
10min
Composable Bayesian Modeling with Soss.jl
Chad Scherrer

Soss is a probabilistic programming language (PPL) with first-class composable models. Through dynamic code generation, Soss can achieve speedup of several orders of magnitude in some models, for example using symbolic simplification of the log-density.

In this talk, we'll discuss the goals and design choices in Soss that distinguish it from other PPLs, followed by an overview of upcoming work.

Green
17:00
30min
JuliaFolds: Structured parallelism for Julia
Takafumi Arakaki

JuliaFolds ecosystem supports structured parallelism for Julia with the packages such as Transducers.jl, Folds.jl, and FLoops.jl. It aims at providing parallelism that is easy-to-use, composable,and extensible. Furthermore, it provides a unified interface to different execution mechanisms such as multi-threading, GPU, and distributed parallelisms. In this talk, I discuss the composable design principle of the JuliaFolds packages.

Red
17:00
10min
MadNLP.jl: A Mad Nonlinear Programming Solver.
Sungho Shin

We present a native-Julia nonlinear programming (NLP) solver MadNLP.jl. This solver implements the filter line-search interior-point method for constrained NLPs; to the best of our knowledge, MadNLP is currently the only native-Julia solver that is capable of handling general nonlinear equality/inequality-constrained optimization problems. MadNLP is interfaced with the algebraic modeling language JuMP.jl, the graph-based modeling language Plasmo.jl, and the NLP data structure NLPModels.jl.

JuMP Track
17:00
30min
Shaped Data with Acsets
Owen Lynch

Acsets are a novel infrastructure for handling data of different shapes, based on category theory and implemented in Catlab.jl. Acsets generalize both graphs and dataframes, and allow a much more general approach to data manipulation than was previously available. We will discuss both the mathematics of acsets and some of the metaprogramming techniques we used to implement them in Julia. Finally, we will give examples of how acsets have been key in developing many projects in AlgebraicJulia.

Blue
17:10
17:10
10min
Chaotic time series predictions with ReservoirComputing.jl
Francesco Martinuzzi

Are you interested in how machine learning can be used to predict the behavior of the "unpredictable" chaotic systems? This talk will be a deep dive into ReservoirComputing.jl (https://github.com/SciML/ReservoirComputing.jl), a package in the SciML ecosystem focused on a class of stabilized machine learning specialized for handling learning these difficult dynamical systems.

Green
17:10
10min
Nonconvex.jl
Mohamed Tarek

Nonconvex.jl is a package that aims to interface all the major nonlinear and mixed integer nonlinear programming packages in Julia using a function-based API. Zygote.jl is used for automatic differentiation (AD) and ChainRules.jl can be used to define analytic gradients or custom adjoint rules for functions. Ipopt.jl, NLopt.jl, Percival.jl and Juniper.jl are some of the packages wrapped in Nonconvex.jl as of the writing of this abstract.

JuMP Track
17:15
17:15
45min
GPU programming in Julia BoF
Tim Besard, Julian P Samaroo, Valentin Churavy

This is a BoF to talk about the various GPU programming packages in Julia:

  • CUDA.jl
  • AMDGPU.jl
  • oneAPI.jl
  • KernelAbstractions.jl
  • GPUArrays.jl
  • GPUCompiler.jl
  • ...

If you have any thoughts or questions about these packages, or other approaches to GPU programming in Julia, please join this BoF to chat about it!

BoF/Mini Track
17:20
17:20
10min
Airborne Magnetic Navigation Enhanced with Neural Networks
Albert R. Gnadt

Using the earth’s magnetic field for navigation of aircraft has shown promise as a viable alternative to GPS. An airborne magnetic navigation system collects magnetic field data and uses predetermined magnetic maps to estimate location. A challenge arises when the measured data contains magnetic signals from both the (desired) earth field and (undesired) aircraft field. This work explores several approaches for obtaining a clean magnetic signal that is usable for navigation.

Green
17:20
10min
NOMAD.jl
Ludovic Salomon

The NOMAD software is a derivative-free solver which implements the mesh adaptive direct search algorithm. Its purpose is to solve constrained problems where the objective and the functions defining the constraints correspond to the outputs of a program seen as a blackbox. This talk aims at presenting the NOMAD.jl interface to Julia, linked to the JuMP modeling language. Some applications will also be exposed.

JuMP Track
17:30
17:30
30min
Linearly Constrained Separable Optimization
Ellis Brown

Many optimization problems involve minimizing a sum of univariate functions, each with a different variable, subject to coupling constraints. We present PiecewiseQuadratics.jl and SeparableOptimization.jl, two Julia packages for solving such problems when these univariate functions in the objective are piecewise-quadratic.

JuMP Track
17:30
30min
Teaching parallelism to the Julia compiler
Takafumi Arakaki

How we currently implement the task parallel API in Julia introduces a couple of obstacles for supporting high-performance parallel programs. In particular, the compiler cannot analyze and optimize the child tasks in the context of the surrounding code. In this talk, I discuss our work on using Tapir (Schardl et al., 2019) to add parallelism to Julia that can be optimized by the compiler.

Red
17:30
10min
Types from JSON
Mary McGrath

Tired of writing artisanally crafted types to match the JSON file or API you're consuming? Learn about type providers and how to have types created from your JSON.

Blue
17:40
17:40
10min
Generative Models with Latent Differential Equations in Julia
Germán Abrevaya

Scientific Machine Learning (SciML) is the branch of scientific computing that combines domain-aware and interpretable models with powerful machine learning techniques. The Julia language has been a key enabler of this burgeoning field, thanks to its unique SciML ecosystem. In this talk, we will present a contribution in this direction: an easy and flexible implementation of generative latent differential equations models.

Green
17:40
10min
PrettyPrinting: optimal layout for code and data
Kyrylo Simonov

PrettyPrinting is a library for formatting composite data structures. PrettyPrinting optimizes the layout of the data to make it fit the screen width.

Out of the box, PrettyPrinting can format Julia code and standard Julia containers. It can be easily extended to format custom data types.

Blue
17:50
17:50
10min
CompositionalNetworks.jl: a scaling glass-box neural network
Khalil CHRIT

Interpretable Compositional Networks (ICN), a variant of neural networks, that allows the user to get interpretable results, unlike regular artificial neural networks. An ICN is a glass-box producing functions composition that scale with the size of the input, allowing a learning phase on relatively small spaces.
This presentation covers the different Julia packages and paradigms involved, a set of use-case, current limitations, future developments, and hopefully possible collaborations.

Green
17:50
5min
Sponsor talk (Datachef)

Sponsor talk.

Blue
18:00
18:00
60min
GatherTown -- Social break

Join us on Gather.town for a social hour.

It is a virtual location where we will facilitate the poster sessions, social gatherings, and hackathon. You can join the space using the URL: https://gather.town/invite?token=3QYkt8gX.

You should have received the password through Eventbrite

Green
19:00
19:00
30min
Javis.jl - Julia Animations and Visualizations
Jacob Zelko, Ole Kröger

Javis.jl is a general purpose animation library which builds on top of the Luxor.jl graphics library.
It fills a gap in the Julia ecosystem by providing functionality to create object based animations to communicate complex ideas through simple means. Furthermore, Javis provides the flexibility for users to extend Javis’s visualizations to a variety of applications. Users are already expressing complicated ideas through winsome domain specific visuals such as planetary motion or brain mapping.

Red
19:00
90min
Julia in Private Organizations
Curtis Vogt

Using Julia code within private organizations can encounter challenges not faced in the open-source community. In this BoF, we'll be discussing the unique aspects of using Julia in private organizations and cover topics such as: production deployments, tooling/ techniques for teams coding in Julia, and answering questions regarding transition/adopting Julia within an organization.

BoF/Mini Track
19:00
30min
Modeling the Economy During the Pandemic
Shlok Goyal, Alissa Johnson

Macroeconomic modeling during the COVID-19 pandemic, and the switch to a new monetary policy framework, has required rapid adjustments to the DSGE.jl package, made possible by Julia’s flexible typing and efficient matrix computations. We review the new features in DSGE.jl that allow users to model periods of large economic shifts and uncertainty. As an illustration, we also explain how the Federal Reserve Bank of New York solved and estimated a model with these features during the recession.

Green
19:00
30min
Monads 2.0, aka Algebraic Effects: ExtensibleEffects.jl
Stephan Sahm

While Monads make it easy to hide one context nicely in your code, with Extensible Effects you can combine multiple contexts and let them seamlessly interact with each other. TLDR: If you want to abstract and hide away some computational context, prefer Extensible Effects to Monads.

Purple
19:00
30min
NExOS.jl for Nonconvex Exterior-point Operator Splitting
Shuvomoy Das Gupta

NExOS.jl is a Julia package that implements the Nonconvex Exterior-point Operator Splitting (NExOS) algorithm (https://arxiv.org/pdf/2011.04552.pdf). The package is tailored for minimizing a convex cost function over a nonconvex constraint set, where projection onto the constraint set is single-valued around local minima.

JuMP Track
19:00
30min
Package latency and what developers can do to reduce it
Tim Holy & Valentin Churavy

Package latency remains one of the chief complaints among Julia users. While recent improvements in Julia have reduced the problem, the opportunity for additional progress is large. In this talk I'll analyze latency from a package developer's standpoint, describing some of the factors that affect latency and how improvements in package design can reduce it. I will briefly exhibit tools that can help identify opportunities for improvement.

Blue
19:30
19:30
10min
Creating a Shared Library Bundle with Package Compiler
Kevin Squire, Simon Byrne, Kristoffer Carlsson

PackageCompiler.jl has become the de facto method for creating standalone Julia applications. In this talk, we will demonstrate the use of PackageCompiler.jl to produce shared library bundles. This functionality was added recently and allows the easy creation of location-independent dynamic libraries which can be linked to and called from C, C++, Rust, or other languages which can link to and use C libraries.

Blue
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
19:30
10min
HighFrequencyCovariance: Estimating Covariance Matrices in Julia
Stuart Baumann

High frequency data typically exhibit asynchronous trading and microstructure noise, which can bias the covariances estimated by standard estimators. While a number of specialised estimators have been developed, they have had limited availability in open source software. HighFrequencyCovariance is the first Julia package which implements specialised estimators for volatility, correlation and covariance using high frequency financial data.

Green
19:30
10min
Julia and deploying complex graphical applications for laypeople
Vexatos, Cruor

Applications written in Julia targeted at a nonprofessional audience are still uncommon, even though libraries for designing such applications have existed for years. For software to be easy to use by laypeople, a simple installation process and an intuitive GUI are essential. We have been developing and deploying such an application for over three years. This talk will focus on our experiences during that time, how the situation has improved since Julia 0.6, and what it looks like today.

Red
19:30
30min
Roadmap to Julia BLAS and LinearAlgebra
Chris Elrod

BLAS & LAPACK are an integral component of many numerical algorithms. Due to their importance, a lot of effort has gone into optimizing ASM/C/Fortran implementations.
Nonetheless, early work demonstrated Julia implementations were often faster than competitors, while laying groundwork for new routines specialized for new problems.
We discuss a roadmap toward providing Julia BLAS and LAPACK libraries, from optimizations in LoopVectorization to libraries like Octavian and RecursiveFactorization.

Purple
19:40
19:40
10min
PGFPlotsX.jl - Plotting with LaTeX, directly from Julia
Kristoffer Carlsson

PGFPlots is a plotting package for LaTeX that produces plots with vector graphics and interfaces with the math typesetting of LaTeX. PGFPlotsX.jl is a Julia plotting package that provides an interface to PGFPlots by transpiling Julia objects to LaTeX code. Furthermore, the figures generated by PGFPlotsX.jl are directly rendered in IPython notebooks, Pluto and VSCode which allows for rapid plot prototyping. It also serves as one of the backends to the popular Plots.jl package.

Red
19:40
10min
Semantically Releasing Julia Packages
Joris Kraak

The Julia community has embraced semantic versioning from a very early stage (if not from the get-go). The Julia package release flow has also been put through its paces and is easy to get started with. This is a great foundation and may be sufficient for most. However, some may require a more structured approach to release preparation, incorporating it into their day-to-day operations. This talk will show how to use the 'semantic release' framework for Julia packages to accomplish this.

Blue
19:40
10min
Using Julia to study economic inequality and taxation
Johannes Fleck

In this talk, I illustrate a Julia workflow to study economic inequality and taxation in the United States. My workflow centers around Taxsim.jl which allows to answer a large number of research questions related to the US tax system. First, I import a widely used survey dataset to show how high and low before-tax incomes evolved since 1960. Next, using Taxsim.jl, I impute taxes paid to compare the evolution of after-tax incomes and to measure the redistributive effect of the tax system.

Green
19:50
19:50
10min
Diversity and Inclusion in the Julia community
Logan Kilpatrick

It takes the entire community to promote diversity and inclusion. This talk will focus on the current plans underway to promote diversity and inclusion in the Julia Community as well as give an updated look at the state of diversity and inclusion in our community.

Green
19:50
10min
Runtime-switchable BLAS/LAPACK backends via libblastrampoline
Mosè Giordano, Elliot Saba

Julia has historically been built against a single backing BLAS/LAPACK library, and switching to a different library has required a recompilation of Julia. This was compounded by issues with loading 3rd party binaries that linked against incompatible BLAS backends. This talk will showcase a new low-overhead compatibility layer in Julia v1.7 named libblastrampoline that allows for runtime switching of BLAS/LAPACK libraries, as well as allowing loading of multiple BLAS/LAPACK ABIs at once.

Blue
19:50
10min
Towards an increased code-creativity harmony in Javis
Arsh Sharma

Javis.jl is a graphical animation/visualization package for the Julia Language which is inspired by Grant Sanderson's (aka, famous Math educator and YouTuber, 3blue1brown) Python based animation engine, Manim. This talk is about the work I have been doing this summer to make Javis more friendly and feature rich for creators

Red
20:00
20:00
30min
A deep dive into MakieLayout
Julius Krumbiegel

Makie.jl is a plotting package for high-performance interactive and publication-quality static data visualizations. MakieLayout, a former extension delivering flexible layouts and interactive widgets, has recently been integrated into the base package, and is now part of the default workflow.
This talk will take a detailed look at the new syntax and the architecture behind the layout system, as well as highlight features that make creating complex multi-plot figures a breeze.

Red
20:00
30min
Deep Dive: Creating Shared Libraries with PackageCompiler.jl
Kevin Squire, Nikhil Mitra, Kristoffer Carlsson, Simon Byrne

The ability to create shared library bundles was recently added to PackageCompiler.jl. In this talk, we will discuss the technical details of the implementation and give in-depth examples of using the resulting shared library bundles from C and Rust.

Blue
20:00
10min
Improving Gender Diversity in the Julia Community
Kim Louisa Auth, Xuan (Tan Zhi Xuan)

The Julia community aims to be welcoming, diverse, inclusive towards people from all backgrounds. However, the 2020 Julia User & Developer Survey found that only 3% of respondents were women, and reported no respondents who were non-binary or another gender. We, Julia Gender Inclusive, believe this needs to change. In this talk, we will share our ideas and initiatives for improving gender diversity among Julia users and developers, including outreach, community building, and mutual support.

Green
20:00
10min
SuiteSparseGraphBLAS.jl
William Kimmerer

Graphs are a ubiquitous and versatile data structure, which allow representation of problems and systems across a vast array of domains, from infrastructure networks and molecules to language and social interactions. SuiteSparseGraphBLAS.jl casts graph computations as generalized linear algebra on sparse matrices. Support for ChainRules AD frameworks, and the wider ecosystem is a core feature of v1.0, releasing around JuliaCon.

Purple
20:10
20:10
10min
MutableArithmetics: An API for mutable operations
Benoît Legat

The definition of the arithmetic operations defined in Julia assume that the arguments are not modified.
However, in many situations, a variable represents an accumulator that can be modified to contain the result, e.g., when summing the elements of an array.
Moreover, many types can be mutated and mutating the element may have significant performance benefit.
This talk presents an interface that allows algorithms to exploit a possible mutability while still being completely generic.

Purple
20:20
20:20
10min
ExprTools: Metaprogramming from reflection
Frames Catherine White

Have you ever had a list of Methods, e.g. from the output of methodswith, and thought ”I just want to implement all of these, it would be great to use metaprogramming for that”?
ExprTools.jl has the parts to let you extract the info out of the method table, manipulate it, and then generate the AST you want for the new method you want to define.

Does this access undocumented Julia internals? Absolutely!
Is this well tested? Comprehensively!
Is this a good idea? Who knows!

Purple
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
20:30
20:30
60min
GatherTown -- Social break

Join us on Gather.town for a social hour.

It is a virtual location where we will facilitate the poster sessions, social gatherings, and hackathon. You can join the space using the URL: https://gather.town/invite?token=3QYkt8gX.

You should have received the password through Eventbrite

Green
12:30
12:30
30min
Adaptive and extendable numerical simulations with Trixi.jl
Michael Schlottke-Lakemper, Hendrik Ranocha

Trixi.jl is a numerical simulation framework for adaptive, high-order discretizations of conservation laws. It has a modular architecture that allows users to easily extend its functionality and was designed to be useful to experienced researchers and new users alike. In this talk, we will give an overview of Trixi’s current features, present a typical workflow for creating and running a simulation, and show how to add new capabilities for your own research projects.

Purple
12:30
30min
Calibration analysis of probabilistic models in Julia
David Widmann

Calibrated probabilistic models ensure that predictions are consistent with empirically observed outcomes, and hence such models provide reliable uncertainty estimates for decision-making. This is particularly important in safety-critical applications. We present Julia packages for analyzing calibration of general probabilistic predictive models, beyond commonly studied classification models. Additionally, our framework allows to perform statistical hypothesis testing of calibration.

Green
12:30
30min
JET.jl: The next generation of code checker for Julia
Shuhei Kadowaki

Julia's extreme expressiveness and composability come from its dynamism – at the cost of that, a static type check of Julia code has been remained as a longstanding problem.
JET.jl is a fresh approach to static analysis of such a dynamic language; it can detect type-level errors given a pure Julia script within a practical speed.
In this talk we will first give an overview of its features and basic usages, and then move to a discussion of its internals, current limitations and future works.

Blue
12:30
90min
Julia for Biologists
Elisabeth Roesch

This session is tailored to anyone with a general interest in Julia for Biologists. Join us to meet like minded people, exchange thoughts and develop ideas on Julia and its application in the biological sciences.

The session has 3 parts:
1. Who is in the room? ~ 15 min
2. Presentation “A perspective: Julia for Biologists” by E. Roesch ~ 25 min
3. Discussion ~ 50 min

A recorded version of 2. will be made available afterwards but the session itself will NOT be recorded.

BoF/Mini Track
12:30
10min
Modelling Australia's National Electricity Market with JuMP
James D Foster

I will discuss challenges, techniques and design choices in developing a flexible JuMP-based modelling workflow as a decision tool for a major Australian transmission network operator's development planning across diverse scenarios.

JuMP Track
12:30
30min
Symbolics.jl - fast and flexible symbolic programming
Shashi Gowda

Symbolics.jl is a fast, yet flexible symbolic manipulation package. It can generate serial or multi-threaded Julia code; or even C, Stan or MATLAB code from symbolic expressions. This talk is an overview of the features and the organization of the Symbolics.jl package, and the design decisions that make it fast and extendable.

Red
12:40
12:40
10min
AnyMOD.jl: A Julia package for creating energy system models
Leonard Göke

AnyMOD.jl is a Julia framework for creating large-scale energy system models. It applies a novel graph-based approach that was developed to address the challenges in modeling high levels of intermittent generation and sectoral integration. To enable modelers to work more efficiently, the framework provides features that help to visualize results, streamline the read-in of input data, and rescale optimization problems to increase solver performance.

JuMP Track
12:50
12:50
10min
Power Market Tool (POMATO)
Richard Weinhold

In this talk, we present the open-source Power Market Tool (POMATO), which has been designed to study capacity allocation and congestion management policies of zonal electricity markets, especially flow-based market coupling.

JuMP Track
13:00
13:00
10min
3.6x speedup on A64FX by squeezing ShallowWaters.jl into Float16
Milan Klöwer

ShallowWaters.jl, a fluid circulation model that was written with a focus on 16-bit arithmetics, runs on A64FX 3.6x faster in Float16 compared to Float64 without a significant model degradation. Calculations were systematically rescaled to fit into the very limited range of Float16 guided by Sherlogs.jl. ShallowWaters.jl shows that 16-bit calculations on A64FX are indeed a competitive way to accelerate Earth-system simulations on available hardware.

Purple
13:00
30min
A Brief Introduction to InfrastructureModels
Carleton Coffrin

The design, operation and resilience of critical infrastructure networks plays a foundational role in modern society. One open question is how artificial intelligence can provide decision support to maintain and adapt critical infrastructures to a changing world. This talk provides an overview of InfrastructureModels, a software foundation developed at Los Alamos National Laboratory for critical infrastructures analysis and optimization to help explore this question.

JuMP Track
13:00
30min
Easy, Featureful Parallelism with Dagger.jl
Julian P Samaroo

Parallelizing codes with Distributed.jl is simple and can provide an appreciable speed-up; but for complicated problems or when scaling to large problem sizes, the APIs are somewhat lacking. Dagger.jl takes parallelism to the next level, with support for GPU execution, fault tolerance, and more. Dagger's scheduler exploits every bit of parallelism it can find, and uses all the resources you can give it. In this talk, I'll build an application with Dagger to highlight what Dagger can do for you!

Blue
13:00
10min
Julia Developer Survey Results
Viral B. Shah

Results from the annual Julia Developer survey will be shared.

Green
13:00
30min
Unleashing Algebraic Metaprogramming in Julia with Metatheory.jl
Alessandro Cheli, Philip Zucker

A novel data structure and technique from theorem provers, a pattern matching system and classical term rewriting. Mix it with dynamism and the homoiconic metaprogramming system of Julia. Add algebraic composability. Shake well before using. What could go wrong? Composable compiler transforms, numerical code optimizers, interpreters and compilers, computer algebra systems, categorical theorem provers and much more to come. Come experiment with us and the Metatheory.jl package!

Red
13:10
13:10
10min
SciML for Structures: Predicting Bridge Behavior
Axel Larsson

We study the utility of a scientific machine learning (SciML) model for predicting structural responses such as bridge deflections and stresses. The SciML model is compared with a data-driven neural network model for a synthetic and a real world case.In both cases, we rely on the Julia algorithmic differentiation ecosystem to efficiently fit the models. Our preliminary results indicate the superiority of the SciML mode over the data-driven one in interpolation and extrapolation as well.

Green
13:10
10min
WaterLily.jl: Real-time fluid simulation in pure Julia
Gabriel Weymouth

WaterLily.jl is a new fluid dynamics simulation package written in pure Julia to take advantage of its speed and its active modelling, linear algebra, and machine learning communities. This talk will give an overview of the simulation approach, detail some of the Julia-specific aspects of the code (CartesianIndices for multidimensional algorithms and JuliaDiff for distance-function-based geometries), present a few examples, and discuss the future goals for the package.

Purple
13:20
13:20
10min
New tools to solve PDEs in Julia with Gridap.jl
Francesc Verdugo, Eric Neiva, Oriol Colomes, Santiago Badia

In this talk, we explore the novel capabilities of Gridap to solve Partial Differential Equations (PDEs) in Julia. This includes new features like a high-level API to write the PDE weak form with a syntax almost identical to the math notation, support for automatic differentiation, and simulation of PDEs on manifolds and domains of mixed geometrical dimensions. We will showcase these techniques with representative applications and performance comparisons against codes implemented in C/C++.

Purple
13:20
10min
Simulating a public transportation system with OpenStreetMapX.jl
Przemysław Szufel

We will show how to perform modeling and of an urban network using the OpenStreetMapX.jl package. With actual Toronto data we will show how the library can be used for commuter routing including sidewalks and public transportation. We represent the city’s urban space as a LightGraphs.jl strongly connected, directed graph where vertices are located at geographic coordinates. Additionally, we will also demonstrate a simulation model explaining the role of public transportation in virus widespread.

Green
13:30
13:30
10min
Actors.jl: Concurrent Computing with the Actor Model
Paul Bayer

Actors implements the Actor Model of concurrent computation. Actors
- interact via messages,
- represent computations and
- can create other actors.

Programmers can use actors to
- model computational concepts: e.g. atomic blocks, event handlers, state machines,
- implement concurrent objects such as servers, supervisors, firewalls and to
- compose them into an application.

Actors allows to write fault-tolerant Julia applications and make concurrency easier to understand.

Blue
13:30
30min
JuliaSim: Machine Learning Accelerated Modeling and Simulation
Chris Rackauckas

Julia is known for its speed, but how can you keep making things faster after all of the standard code optimization tricks run out? The answer is machine learning reduced or approximate models. JuliaSim is an extension to the Julia SciML ecosystem for automatically generating machine learning surrogates which accurately reproduce model behavior.

Green
13:30
10min
Towards a symbolic integrator with Rubin.jl
Miguel Raz Guzmán Macedo

Rubin.jl will be a 100% Julia implementation of an integration term-rewriting system. The rule catalogue is taken from RUBI, a Mathematica-based integration engine that uses binary searches in a tree of mutually exclusive rewriting rules, which nets RUBI an order of magnitude speed improvement over Mathematica over an immense test suite. Rubin.jl hosts 99.5+% of RUBI's rules, and 99.9% of the test suite in a JSON format, spanning more than 72,000 single variable integration unit tests.

Red
13:30
30min
UnitCommitment.jl: Security-Constrained Unit Commitment in JuMP
Alinson Santos Xavier

In this talk, we introduce UnitCommitment.jl, an open-source Julia/JuMP optimization package which aims to eliminate some of the roadblocks researchers typically face when developing and evaluating new solution methods for the Security-Constrained Unit Commitment (SCUC) problem.

JuMP Track
13:30
30min
What's new in ITensors.jl
Matthew Fishman

Tensor networks encapsulate a large class of low rank decompositions of very high order -- potentially infinite order -- tensors. They have found a wide variety of uses in physics, chemistry, and data science. ITensors.jl is a high performance Julia library with a unique memory independent interface that makes it easy to use and develop tensor network algorithms. In this talk, I will give an overview of the library and new features that have been added since its release last year.

Purple
13:40
13:40
10min
AlgebraicDynamics: Compositional dynamical systems
Sophie Libkind, James Fairbanks

AlgebraicDynamics is a new library in the AlgebraicJulia ecosystem for specifying and solving dynamical systems with compositional and hierarchical structure. This modular approach to constructing and analyzing dynamical systems is grounded in the mathematics of applied category theory.

Red
13:40
10min
BPFnative.jl: eBPF programming in Julia
Julian P Samaroo

eBPF is a virtual machine that can run user-defined code in the Linux kernel. The ability to generate eBPF bytecode from Julia would allow our Linux users to introspect, manipulate, and explore the core of their operating system from the comfort of a high-level language. In this talk, I will explain the basics of eBPF, how it's integrated and used in the Linux kernel, and how we can use "eBPF superpowers" from Julia.

Blue
13:50
13:50
10min
Atomic fields: the new primitives on the block
Jameson Nash

Atomic accessors support have recently been expanded to provide more efficient build-blocks for working with threads. Dealing effectively with multi-core programs requires a vocabulary for communicating intent, both to humans and machines. Here I'll talk about what atomics are, why we needed them, and how to use them!

Blue
13:50
10min
The OSCAR Computer Algebra System
Max Horn, Claus Fieker

We present OSCAR, an Open Source Computer Algebra Research system for abstract algebra, algebraic geometry, group theory, number theory, and more. It joins existing world class systems under a common Julia interface in the Oscar.jl package. Applications exist well beyond pure mathematics (e.g. in coding theory, cryptography, robotics, ...).

We give an overview of existing and planned capabilities. We also discuss what sets us apart from Symbolics.jl.

Red
14:30
14:30
45min
Keynote (Soumith Chintala)

Keynote

Green
15:15
15:15
10min
Sponsor talk - RelationalAI

Sponsor talk - RelationalAI

Green
15:25
15:25
15min
The state of DataFrames.jl
Bogumił Kamiński

In this talk I discuss what has recently changed in DataFrames.jl, what is the current state of the package, and what are our plans for the future.

Green
15:40
15:40
15min
Sponsor talk - JuliaComputing

Sponsor talk - JuliaComputing

Green
15:55
15:55
5min
Closing remarks

Closing remarks

Green
16:30
16:30
90min
Virtual posters session

The virtual poster session will include 100 posters hosted on gathertown. Link to all the posters: https://juliacon.org/2021/posters/

BoF/Mini Track
18:00
18:00
60min
GatherTown -- Social break

Join us on Gather.town for a social hour.

It is a virtual location where we will facilitate the poster sessions, social gatherings, and hackathon. You can join the space using the URL: https://gather.town/invite?token=3QYkt8gX.

You should have received the password through Eventbrite

Green
19:00
19:00
30min
A Short History of AstroTime.jl
Helge Eichhorn

Time is...complicated. It seems simple enough when you are close to the surface of the Earth and you have a device in your pocket that is constantly connected to atomic clocks. But go to outer space and things get uncomfortable pretty quickly. This talk explores how AstroTime.jl has evolved and how it can help you deal with the intricacies of time such as leap seconds and different time scales. Even if you are neither an astronomer nor an astronaut!

Blue
19:00
30min
Applied Measure Theory for Probabilistic Modeling
Chad Scherrer

We'll give an overview of MeasureTheory.jl, describing some of the advantages relative to Distributions.jl and some applications in probabilistic modeling.

Purple
19:00
90min
Discussing Gender Diversity in the Julia Community
Laura Ventosa, Kim Louisa Auth, Xuan (Tan Zhi Xuan)

Julia Gender Inclusive is an initiative that came to life from a focus group that has been working on diversity in the Julia community for the last year. We are a group of people whose gender is underrepresented in the community and aim at providing a supportive space for all gender minorities in the Julia community. Through a BoF session we wish to discuss what we are doing and what we hope to do in the future with other people whose gender is underrepresented or allies willing to support us.

BoF/Mini Track
19:00
30min
Enabling Rapid Microservice Development with a Julia SDK
Malcolm Miller

The Optimal Reality platform, by Deloitte Digital Australia, is a modelling and simulation environment built and deployed as Julia microservices. This talk describes our Software Development Kit which enables rapid building and deployment of these microservices. We discuss our use of templates, utility packages, standardised multi-threading and logging functions, and a custom GraphQL interface; and share how they can be used to bolster team creativity and efficiency.

Red
19:00
30min
Introducing Chemellia: Machine Learning, with Atoms!
Rachel Kurchin

In this talk, I introduce Chemellia: a machine learning ecosystem (built on Flux.jl) designed for chemistry and materials science problems involving molecules, crystals, surfaces, etc. I will focus on two packages I have developed: first, ChemistryFeaturization, which allows customizable and invertible featurization of atomic systems. The second, AtomicGraphNets, implements graph neural network models tailored to atomic graphs, and substantially outperforms comparable Python packages.

Green
19:00
30min
Linear programming by first-order methods
Miles Lubin

We present PDLP, a practical first-order method for linear programming (LP) that can solve to the high levels of accuracy that are expected in traditional LP applications. In addition, it can scale to very large problems because its core operation is matrix-vector multiplications.

JuMP Track
19:30
19:30
10min
Cerberus: A solver for mixed-integer programs with disjunctions
Joey Huchette

Disjunctive programming (DP) is a powerful framework for modeling complex logic in optimization problems. In this talk, we present Cerberus, a prototype MIP solver that treats disjunctive constraints as first-class objects.

JuMP Track
19:30
10min
FourierTools.jl | Working with the Frequency Space
Rainer Heintzmann, Felix Wechsler

FourierTools.jl aims at simplifying work in Fourier/Frequency space without loosing efficiency.
We provide several convenient wrappers to speed-up the common fft(fftshift(x)) pattern.
This package also brings functionality to up and downsample signals through sinc interpolation.
Furthermore, based on FFTs it provides shearing, rotation, convolution and (sub) pixel shift functions which can be applied to N-dimensional data efficiently.

Purple
19:30
10min
Going to Jupiter with Julia
Joe Carpinelli

Modern astrodynamics demands a lot from scientific-computing. Calculations are often expensive, and correct unit handling is essential. Sometimes, complex algorithms are needed to parse through vast amounts of data. Julia's efficient syntax, and rich and growing ecosystem has met these challenges with minimal developer effort throughout the development of GeneralAstrodynamics.jl. Feature development and research applications will be presented alongside a simple Earth-Jupiter transfer design.

Blue
19:30
30min
Simulating Chemical Kinetics with ReactionMechanismSimulator.jl
Matthew S Johnson

Understanding many complex chemical processes requires the study of large chemical mechanisms that can involve thousands of species. We present ReactionMechanismSimulator.jl a highly extensible software that can be used to simulate, calculate sensitivities for, analyze and visualize a wide variety of kinetic systems and reactors from gas phase ignition to liquid oxidation to electrocatalysis. We present benchmarks against alternative software and our extensive mechanism analysis toolkit.

Green
19:30
10min
kubernetes-native julia development
Kolia Sadeghi

You have access to a k8s cluster, and you want to use it to scale out computations. But first, you need to develop and debug julia code that can take advantage of it!

I will present an ergonomic julia development setup to help make k8s feel like home, using freely available and easily installed tools.

Red
19:40
19:40
10min
ClimaCore.jl: Tools for building spatial discretizations
Simon Byrne

This talk will cover ClimaCore.jl: a suite of tools for building spatial discretizations, primarily aimed at weather and climate modeling applications. It provides a high-level interface for composing multiple operators and functions, and are compatible with the SciML suite of differential equations solvers.

Blue
19:40
10min
HiGHS
Ivet Galabova

In this talk we present HiGHS, a suite of high performance open source optimization solvers, written in C++. HiGHS has simplex and interior point solvers for LP, and MIP and QP solvers. HiGHS can be called from Julia via the HiGHS.jl package.

JuMP Track
19:40
10min
IntervalLinearAlgebra.jl: Linear algebra done rigorously
Luca Ferranti

Solving linear systems is central in most computational domains, from mathematics to engineering applications. This talk will introduce IntervalLinearAlgebra.jl: a package written in Julia to solve linear systems, with interval or real coefficients, rigorously. That is, producing a set guaranteed to contain the true solution of the original problem. This can be applied to solve problems involving uncertainty propagation or perform self-validated computations.

Purple
19:40
10min
Rewriting Pieces of a Python Codebase in Julia
Satvik Souza Beri

Many people looking at Julia are coming from Python, and already have a sizable codebase.
Our fund started rewriting performance-critical parts of our Python codebase in Julia, getting 10x-30x speedups. I'll go over how to start migrating Python code to Julia using PyCall and PyJulia, some gotchas to avoid, and where you're likely to see the biggest benefits.

Red
19:50
19:50
10min
ClimateModels.jl -- A Simple Interface To Climate Models
Gael Forget

Here we provides a uniform interface to climate models of varying complexity and completeness. Models that range from low dimensional to whole Earth System models are
ran and analyzed via this simple interface. Three examples illustrate this framework as applied to:

  • a stochastic path (zero-dimensional, Julia function)
  • a shallow water model (two-dimensional, Julia package)
  • a general circulation model (high-dim., feature-rich, fortran, MPI)
Blue
19:50
10min
Global Sensitivity Analysis for SciML models in Julia
Vaibhav Dixit

Majority of scientific modelling workflows involve doing global sensitivity analysis as an intermediate step. It can be used primarily in two stages, either before parameter estimation to simplify the fitting problem by fixing unimportant parameters or for analysis of the input parameters' influence on the output. GlobalSensitivity.jl is a package in the SciML ecosystem that provides a full suite of GSA methods that can be of great utility to a lot of practitioners.

Purple
19:50
10min
Julia in the Windows Store
David Anthoff

I will describe an effort to distribute Julia via the Windows Store. This effort includes a full Julia version manager that provides the ability to install multiple Julia versions at the same time, switch between them etc. The talk showcases an experimental working version of the installer from a user perspective, and also gives a brief deep dive around the technologies used.

Red
19:50
10min
vOptSolver: an ecosystem for multi-objective linear optimization
Xavier Gandibleux

vOptSolver is an open source ecosystem written in the Julia language, for modeling and solving multi-objective linear optimization problems (mixed integer problems, continuous problems, integer problems, and combinatorial problems). Currently vOptSolver is composed of two independant packages named vOptGeneric.jl and vOptSpecific.jl integrated and registered as Julia packages since 2017. The source codes, examples, documentation and tutorial are available at https://github.com/vOptSolver.

JuMP Track
20:00
20:00
30min
A Derivative-Free Local Optimizer for Multi-Objective Problems
Manuel Berkemeier

In real-world applications, optimization problems might arise where there is more than one objective.
Additionally, some objectives could be computationally expensive to evaluate, with no gradient information available.
I present a derivative-free local optimizer (written in Julia) aimed at such problems. It employs a trust-region strategy and local surrogate models (e.g., polynomials or radial basis function models) to save function evaluations.

JuMP Track
20:00
10min
Clapeyron.jl: An Extensible Implementation of Equations of State
Paul Yew, Pierre Walker, Andrés Riedemann

The implementation of thermodynamic equations of state for physical property prediction (density, heat capacity, enthalpy, phase fractions, etc) is traditionally an esoteric process. With Julia’s clean syntax and efficient multiple-dispatch system, it is possible to produce extremely lucid code without trade-offs in efficiency, while also being infinitely extensible. We hope to show that Julia is a powerful tool that can transform the art of thermodynamic modelling in both academia and industry.

Green
20:00
30min
Redwood: A framework for clusterless supercomputing in the cloud
Philipp A. Witte

We present Redwood, a Julia framework for clusterless supercomputing in the cloud. Redwood provides a set of distributed programming macros that enable users to remotely execute Julia functions in parallel through cloud services for batch and serverless computing. We present the architecture and design of Redwood, as well as its application to existing Julia packages for machine learning and inverse problems.

Red
20:00
10min
Space Engineering in Julia
Dr. Ronan Arraes Jardim Chagas

Amazonia 1 was the first remote sensing satellite fully designed, integrated, tested, and operated by Brazil. It was developed by the National Institute for Space Research (INPE) and was launched on February 28, 2021. In this project, Julia language was frequently used in the mission analysis and the development of the attitude and orbit control subsystem (AOCS).

Blue
20:00
30min
ZigZagBoomerang.jl - parallel inference and variable selection
Moritz Schauer

ZigZagBoomerang.jl provides piecewise deterministic Monte Carlo methods. They have the same goal as classical Markov chain Monte Carlo methods: to sample for example from the posterior distribution in a Bayesian model. Only that the distribution is explored through the continuous movement of a particle and not one point at a time. This provides new angles of attack: I showcase a multithreaded sampler and high-dimensional variable selection sampler.

Purple
20:10
20:10
10min
In-Situ Data Analysis with Julia for E3SM at Large Scale
LI TANG, Earl Lawrence

In this talk, we will present our work of coupling the Julia runtime with E3SM, an advanced earth system simulation application for supercomputers, and running E3SM with swappable in-situ Julia modules at large scale. The talk includes (1) the Julia runtime coupling with legacy High-Performance Computing (HPC) applications (i.e., E3SM), (2) the design of two in-situ data analysis modules in Julia, and (3) the communication design for E3SM and the in-situ Julia modules.

Blue
20:10
10min
Modia – Modeling Multidomain Engineering Systems with Julia
Hilding Elmqvist, Martin Otter, Andrea Neumayr

Modia (www.ModiaSim.org) is a set of Julia packages for modeling and simulation of multidomain engineering systems (electrical, 3D mechanical, fluid, etc.). Status and plans of a largely redesigned version of Modia is presented consisting of a new syntax in pure Julia mixing equation with function based modeling (e.g. drive trains + 3D mechanics) and new transformation techniques in order that Modia models can be simulated with the ODE integrators of DifferentialEquations.jl.

Green
20:20
20:20
10min
Optical simulation with the OpticSim.jl package
Brian Guenter, Charlie Hewitt

OpticSim.jl

Green
20:30
20:30
60min
GatherTown -- Social break

Join us on Gather.town for a social hour.

It is a virtual location where we will facilitate the poster sessions, social gatherings, and hackathon. You can join the space using the URL: https://gather.town/invite?token=3QYkt8gX.

You should have received the password through Eventbrite

Green
21:30
21:30
1440min
JuliaCon Hackathon

Join us on Gather.town for a 24 hour hackathon!

It is a virtual location where we will facilitate the poster sessions, social gatherings, and hackathon. You can join the space using the URL: https://gather.town/invite?token=3QYkt8gX.

You should have received the password through Eventbrite

Green
No sessions on Saturday, July 31, 2021.