2019-07-22 –, PH 211N
Parallel computing is hard. Julia can make it much easier. In this workshop, we discuss modern trends in high performance computing, how they’ve converged towards multiple types of parallelism, and how to most effectively use these different types in Julia.
This interactive workshop demonstrates how to write parallel Julia code in a variety of ways, including shared memory computing with threads, multiple processes for distributed computing, and computing on the GPU. Julia makes all these modes of parallelism possible, and the Julia community is continuing to perform active research to make high performance parallel computing easier. Many national labs, major corporations, and universities are already using Julia with parallel computing.
The workshop will help you:
* identify the challenges in converting a program from serial to parallel
* discover the many forms of parallelism Julia offers and learn when to use each
* learn how to structure programs to take advantage of parallel computation
* write programs that use an appropriate form of parallelism
In this workshop, we will cover
* A quick primer on serial performance
* Multithreading
* Designing parallel algorithms
* Tasks (also known as co-routines or green threads)
* Multi-process parallelism
* A very quick introduction to GPU programming
* Future developments
Participants should have basic understanding of non-parallel programming techniques and of Julia itself.
Matt Bauman is a Senior Research Scientist at Julia Computing, focusing on teaching and training as well as continuing to improve Julia's array infrastructure. He’s been contributing to both the core language and multiple packages since 2014. At his previous position as a Data Science Fellow at the University of Chicago’s Center for Data Science and Public Policy, he longed for dot-broadcasting in Python. He recently defended his PhD in Bioengineering from the University of Pittsburgh, focusing on neural prosthetics.
Avik Sengupta is VP of Engineering at Julia Computing, Inc. In that role he is responsible for all product development and software engineering at the company. He's a contributor to the open source Julia programming language, and maintainer of many Julia packages. Previously, Avik has worked on large, complex solutions for world’s leading investment banks, creating single dealer platforms, equity research services and risk and trading systems. Over the past decade, he has co-founded 2 startups working on AI/ML in the financial services sector.
Avik is the author of "Julia High Performance", a book about performance optimisation in Julia. He has an MBA from IIM Bangalore, and an MS in Computational Finance from Carnegie Mellon University.