We are still reviewing talk proposals, meanwhile we have a list of accepted workshops for you:

- The Unique Features and Performance of DifferentialEquations.jl

– Chris Rackauckas - Integrating Julia in real-world, distributed pipelines

– Daniel Whitenack - Deep Learning with Julia

– Pontus Stenetorp - NLOptControl.jl a tool for Solving Nonlinear Optimal Control Problems

– Huckleberry Febbo - An Invitation to Julia – toward version 1.0

– David P. Sanders - GPU programming with Julia

– Tim Besard, Simon Danisch, Valentin Churavy - From One to Many: Writing Julia Code to Simulate Big Quantum Systems on Big Computers

– Katharine Hyatt

Chris Rackauckas, University of California, Irvine

DifferentialEquations.jl is a highly extendable high-performance library for solving a vast array of differential equations in Julia. The purpose of this workshop is to introduce the participants to DifferentialEquations.jl, focusing on the new types of problems that are able to be explored through this software and how Julia has made this possible. We will start with a tutorial of the ordinary differential equation solvers. Users will be shown how to use the common solver interface to solve and analyze equations using the solvers from OrdinaryDiffEq.jl, Sundials.jl, ODE.jl, LSODA.jl, and ODEInterface.jl. (maybe just OrdinaryDiffEq.jl and Sundials.jl?) Next, the capabilities will be explored in further depth, and users will walk through solving hybrid differential equations continuous + discrete components), using arbitrary precision and unitful arithmetic, and solving equations with discontinuous events. After that, the tutorial will show users how to branch out to other forms of differential equations, showing how the same interface allows them to use the unique high-order adaptive Runge-Kutta methods for stochastic differential equations and the fast high-order methods for delay differential equations. Lastly, participants will be walked through the analysis add-on tools, using Optim.jl to perform parameter estimation of ordinary differential equation models, identify sensitive parameters, and quantify numerical uncertainties of solutions. Users will leave the workshop with an expanded view of what kinds of problems can be solved with DifferentialEquations.jl and with the knowledge of how to solve them.

Chris Rackauckas is a 4th year Ph.D student in Mathematics at the University of California, Irvine. He is the principal author of many Julia packages, including the JuliaDiffEq packages (DifferentialEquations.jl) and ParallelDataTransfer.jl, and has contributed to numerous other packages related to scientific computing. Chris is also actively engaged in the Julia community as the author of the StochasticLifestyle blog and the tutorial “A Deep Introduction to Julia for Data Science and Scientific Computing”.

Daniel Whitenack, Pachyderm

After attending this workshop, you will be have the skills needed to integrate Julia in real-world environments. Not only that, you will understand at least one strategy for distributing Julia data analysis at production scale on large data sets and streaming data. The Roadmap of the workshop will include:

- Intro - This section will explore any barriers to pushing Julia into production. What do real-world environments and what are the challenges of integrating Julia at production scale?
- Making your Julia analysis portable - Here, we will learn how to containerize Julia analyses, which goes a long way to making them deployable within organizations. We will also explore the trade offs with containerization and common gotchas. In this case, we will use Docker to containerize an example data analysis written in Julia.
- Distributing your Julia analysis at scale - Finally, we will learn how to take our Docker-ized Julia analysis and distributed at scale. That is, we will learn how to orchestrate the distribution of that analysis across a cluster and how to distribute data between instances of Julia. To do this, we will employ Kubernetes and Pachyderm. The workshop will be completely example/demo based and will include individual exercises for the students.

Daniel (@dwhitena) is a Ph.D. trained data scientist working with Pachyderm (@pachydermIO). Daniel develops innovative, distributed data pipelines which include predictive models, data visualizations, statistical analyses, and more. He has spoken at conferences around the world (Datapalooza, DevFest Siberia, GopherCon, and more), teaches data science/engineering with Ardan Labs (@ardanlabs), maintains the Go kernel for Jupyter, and is actively helping to organize contributions to various open source data science projects.

Pontus Stenetorp, University College London

Over the last few years we have seen Deep Learning rise to prominence not just in academia with state-of-the-art results for well-established tasks, but also in industry to leverage an ever-increasing amount of data becoming available. Due to the computationally heavy nature of Deep Learning approaches, Julia is in a unique position to serve as the language of choice for developing and deploying deep machine learning models. In this workshop we will introduce Deep Learning for a general audience – assuming only high school-level mathematics to gain a practical understanding of the topics covered. We will first introduce the history and theoretical underpinnings of Deep Learning. After this we will proceed to introduce the lay of the land in terms of libraries and frameworks in Julia – demonstrating to the audience how one can implement state-of-the-art Deep Learning models for various forms of data. After attending the workshop the audience will have an understanding of how they can use Julia for Deep Learning and adapt these approaches to their own data. The organisers of the workshop have between them many years of experience of teaching, research, and working with and implementing Deep Learning frameworks in Julia and other programming languages.

Pontus is a research associate at University College London, that spends most of his research time on Natural Language Processing and Machine Learning – with a particular focus on Deep Learning. He has been using Julia since 2014 due to a need for rapid prototyping and computational performance. When it comes to Julia contributions, he tends to contribute small occasional patches to the standard library.

Huckleberry Febbo, University of Michigan

I am the developer of NLOptControl.jl, a JuliaOpt tool that is an extension for JuMP.jl. NloptControl.jl is used for formulating and solving nonlinear optimal control problems. A current limitation of optimization modeling software, such as JuMP is that it does not allow for ease of adding integral constraint equations. NLOptControl.jl also provides an implementation of the pseudo-spectral method written in written in julia which is extremely fast. While I have not yet benchmarked it against GPOPSii (a commercial software that also uses this method to solve optimal control problems), I hope to have made some comparisons to help motivate my users during juliaCon2017. NLOptControl.jl is an extension of JuMP.jl, and with that comes the a tremendous amount of power. For instance, have you ever struggled calculating Hessians and Jacobians? Well those days are over because NLOptControl.jl takes care of that for you by simply utilizing JuMP and the automatic differentiation capabilities of ReverseDiffSparse.jl. Workshop Details The workshop will give people interested in nonlinear optimal control guidance and hands-on experience using a very high level tool that is fast, concise, and powerful. The workshop will be organize into two parts; background information and hands-on experience. The background information section will explain the basics of nonlinear optimal control problems, why I got started with julia, and then show some examples including the Autonomous Vehicle Control problems that I am solving. Then during the hands-on part, users will solve optimal control problems from start to finish and the results will be automatically plotted.

- Background Information:
- What is nonlinear optimal control?
- basic problem setup

- Why I got started with julia?
- Autonomous Vehicle Controls (not running fast enough in MATLAB)
- Examples of how I use the software

- Benchmark
- Compare to other similar tools (GPOPSii)

- What is nonlinear optimal control?
- Hands on:
- Guide users through several simple examples
- Discuss syntax etc.

- Guide users to solve other more advanced problems
- Perhaps a simple version of their own

- Guide users through several simple examples

Mechanical Engineering PhD 4th year student

David P. Sanders, Department of Physics, Faculty of Sciences, National University of Mexico

This is an introductory tutorial on Julia as it is today, aimed at people with experience in another language, and who want to get up to speed quickly as Julia heads towards its first stable version.

David P. Sanders is associate professor of computational physics in the Department of Physics of the Faculty of Sciences at the National University of Mexico in Mexico City.
His previous Julia tutorials on YouTube have over 75,000 views. He is a principal author of the `ValidatedNumerics.jl`

package for interval arithmetic, and `IntervalConstraintProgramming.jl`

for constraint propagation.

Tim Besard, Simon Danisch, Valentin Churavy, Various

This interactive workshop will introduce a couple of tools and packages for GPU programming in Julia: how to set-up a working environment, basic usage, and optimization. Participants will be able to follow along using their own system, or on a cloud-based JuliaBox instance.

- Introduction to the JuliaGPU ecosystem
- CUDAnative.jl
- GPUArrays.jl

Contributors to the JuliaGPU ecosystem

Katharine Hyatt, UC Santa Barbara

Start using Julia to do simulations of quantum systems with many interacting particles! We will write a single-core exact diagonalization code which can handle a variety of models from quantum physics, using Julia to make it readable and performant. We’ll tour the Julia package ecosystem for useful packages that will help us store our results to share with others and get to the interesting physics. Then, we’ll use some of Julia’s parallel features to scale up our code to do many-body simulation on many-core and many-node systems in a convenient, reproducible, and fast way. You need not ever have written any Julia before. We’ll use physics examples as natural motivation to explore Julia’s capabilities, but no background in quantum mechanics is required. We will introduce the models as we go.

5th year physics graduate student, sometimes Julia contributor

© 2014-2017 JuliaCon.org All rights reserved. Fork this site on Github or open a bug report.