Congratulations to these five members of the SIAM community who were recently awarded the James H. Wilkinson Prize for Numerical Software, SIAG/CSE Early Career Prize, and SIAM/ACM Prize in Computational Science and Engineering.

Jeff Bezanson, Stefan Karpinski, and Viral B. Shah - James H. Wilkinson Prize for Numerical Software

Jeff Bezanson, Stefan Karpinski, and Viral B. Shah of Julia Computing are the 2019 recipients of the James H. Wilkinson Prize for Numerical Software. The prize will be awarded at the 2019 SIAM Conference on Computational Science and Engineering (CSE19), held February 25 – March 1, 2019 in Spokane, Washington. The three of them will receive their prize and give their talk, “Solving the Two Language Problem in Scientific Computing and Machine Learning with Julia,” on February 28, 2019.

The James H. Wilkinson Prize for Numerical Software recognizes innovative software in scientific computing by researchers in the earlier stages of their career. Candidates must have worked in mathematics or science for at most 12 years after receiving their PhD, allowing for breaks in continuity. The prize is awarded every four years to the authors of an outstanding piece of numerical software, or to individuals who have made an outstanding contribution to an existing piece of numerical software. It is awarded for an entry that best addresses all phases of the preparation of high-quality numerical software.

The prize was established, in honor of James H. Wilkinson’s outstanding contributions to the field of numerical software, by Argonne National Laboratory (ANL; Argonne, IL), the National Physical Laboratory (NPL; Teddington, Middlesex, England), and the Numerical Algorithms Group Ltd (NAG; Oxford, England). They sponsored the award every four years at the International Congress on Industrial and Applied Mathematics (ICIAM) beginning with the 1991 award. By agreement in 2015 among ANL, NPL, NAG, and SIAM, the prize will be administered by SIAM starting with the 2019 award.

The 2019 award recognizes Bezanson, Karpinski, and Shah for the development of Julia, an innovative environment for the creation of high-performance tools that enable the analysis and solution of computational science problems. Julia allows researchers to write high-level code in an intuitive syntax and produce code with the speed of production programming languages. It has been widely adopted by the scientific computing community for application areas that include astronomy, economics, deep learning, energy optimization, and medicine. In particular, the Federal Aviation Administration has chosen Julia as the language for the next generation airborne collision avoidance system.

Jeff Bezanson

Jeff Bezanson got his start in technical computing with a high school summer job as a programmer in an MRI research group led by Yi Wang. After an AB in computer science at Harvard University, he worked at Interactive Supercomputing where he met Viral Shah and Alan Edelman. The experience led him to continue pursuing numerical computing as a PhD student of Edelman’s at Massachusetts Institute of Technology, receiving the degree in 2015. For his thesis work on Julia, he received the 2015 George M. Sprowls Award for outstanding PhD thesis in computer science at MIT. Soon after, Jeff co-founded Julia Computing in order to continue pushing the ideas and abstractions behind Julia into new domains.

Stefan Karpinski

Stefan Karpinski is a New York native who attended Harvard University for his AB in mathematics. He taught himself to program in Pascal in eighth grade for a science fair project in which he simulated “Logic Creatures”—a thought experiment from a Scientific American column by Martin Gardner. Stefan has completed most of a PhD at the University of California Santa Barbara and is “all but dissertation.” He has worked as a combination data scientist, research engineer, and software engineer at a variety of companies, including Akamai, Citrix Online and Etsy. Along with the other recipients of this prize, Stefan co-founded Julia Computing in 2015 to help bring the benefits of Julia to industry and academic users around the world. He also has an appointment as a research engineer at New York University.

Viral B. Shah

Viral B. Shah started programming in BASIC in eighth grade and taught himself C in high school. As an undergraduate at PVPP College of Engineering in Mumbai, he implemented a risk management system for derivatives trading on the National Stock Exchange in India. He was then accepted into the PhD program at University of California Santa Barbara, where his thesis on abstractions for large scale combinatorial computing was advised by John Gilbert. There, he also developed Circuitscape, a widely used tool in conservation and landscape ecology, for which he received an award from the Wildlife Society in 2013. Soon after, Viral relocated to India to work on India’s Aadhaar (National ID) project, and published his experiences in a book, Rebooting India. While Julia started out as a hobby, it has now become a full time preoccupation; Viral is currently the CEO of Julia Computing.

Q: Why are you excited to be winning the prize?

A: We are very excited on a personal level to win the 2019 James H. Wilkinson Prize for Numerical Software, but even more so for the Julia community as a whole—the prize is really a recognition of the community and the accomplishments of the people developing amazing projects and libraries in Julia. The past winners of the Wilkinson Prize for Numerical Software have been a huge inspiration to us. They have created lighthouse numerical software projects such as DASSL, FFTW and IPOPT, which are used around the world and have changed the face of numerical computing. It is an incredible honor to be counted among them.

FFTW pioneered using a high-level language, OCaml, to generate extremely optimized, architecture-specialized, low-level C code. This approach was a big influence on us, and gave us ideas about what numerical programming could look like in the future. We wanted a language that could make this kind of multistage, high-performance programming simple and accessible to everyone. And now for years, we’ve been seeing numerical codes get 10-100x speed-ups simply from direct ports to Julia from other high-level languages. That is gratifying every time it happens. But the real payoff has come in the form of new field-redefining numerical libraries like DifferentialEquations.jl, JuMP.jl (for operations research), and Flux.jl (for flexible, intuitive machine learning). These are projects whose performance and generality would have been out of reach in other languages. Julia lets numerical programmers dream bigger than they have before. We will know that we’ve really succeeded when a future award of this Wilkinson prize is given for software written in Julia.

We would like to recognize the contributions of Alan Edelman, who is not eligible for this prize, but is the fourth co-founder of the Julia project. Without Alan’s support and mentorship, Julia would have been extremely difficult to pull off—and it was already a long shot.

Q: Could you tell us a bit about the research that won you the prize?

A: Julia is the result of our research into programming language design, compilers, numerical analysis, distributed and parallel computing, and applied mathematics. We have been passionate about bringing the power of modern programming language design and implementation to bear in the area of numerical computing for a long time. We started with the goal of building a language that is as fast as C and Fortran, but as easy and interactive as Python, R, or Matlab. We have been driven by the conviction that the historical dilemma of picking either productivity or performance—but not both at once—was holding the computational sciences back. For various reasons, the best general purpose languages have not been ergonomic for day-to-day numerical work, and numerical languages have been considered niche and inadequate for general purpose programming. We wanted to explore a design space where you could have both performance and productivity in a single, coherent general purpose system that is great for exploration and for writing the highest performance applications on supercomputers. We have sometimes said that Julia solves the two language problem: instead of needing to use a high level language for productivity and high-level logic and a separate low-level language for performance, you can smoothly transition between high and low level programming modes in a single language.

The key to our approach is to use a single flexible mechanism—multiple dispatch—for everything. Even the most fundamental operations like addition, array indexing, and numeric promotion use the same dispatch mechanism as user-defined functions. As a result, user-defined numeric types and operations are every bit as efficient and capable as the built in ones, leading to a proliferation of innovative libraries implementing everything from efficient structured array types to interval arithmetic to units. Perhaps most importantly, everything is composable: you can create structured arrays with units, and take automatic derivatives of computations using interval arithmetic—even though these libraries know nothing about each other.

In statically typed languages, the programmer writes some code and the compiler tells them what they did wrong. While that can be helpful, we also believe that there is a time and place for running code without getting into arguments with your software. We see this empirically in the tremendous success of dynamic languages in numerical programming. But in our view, the programmer and the compiler are fundamentally trying to do the same thing: understand what a program means. So we tried to design a language that, although dynamically-typed, limits the kind of unpredictability that makes programs hard to understand—for both the programmer and the compiler. Julia’s compilation process more closely resembles a C++ compiler with a very delayed compile time than modern just-in-time compilers that have been forced to deal with the highly unpredictable behaviors of legacy dynamic languages that were never designed for performance.

We also believe strongly in experimental language design. A programming language cannot be derived from first principles alone. Language design is applied psychology—the computer program is the ultimate human-computer interface. Sometimes you have to try a design out and see how people interact with it and iterate based on that real-world feedback.

Q: What does your research mean to the public?

A: Julia brings down the time and cost for trying out new ideas, inventing new algorithms, and creating new products. Our community does research related to many of the grand challenges identified by the National Academy of Engineering—climate change, affordable healthcare, clean energy, personalized medicine, personalized education, and more. We stay attuned to our community and focus on building abstractions and capabilities in Julia that will help them achieve these greater goals. Enabling them and seeing the amazing things they do with it is what gets us excited working on Julia every morning!

Q: What does being a SIAM member mean to you?

A: We have always been highly appreciative of SIAM. It has been a key part of our academic and professional journey. The Julia community overall has been present at various SIAM meetings, and has organized many minisymposia. Jeff attended and presented Julia at CSE13. We published our first Julia paper, “Julia: A Fresh Approach to Numerical Computing”, in the February 2017 issue of SIAM Review.

Steven L. Brunton - SIAG/CSE Early Career Prize

Steven L. Brunton

Steven L. Brunton of the University of Washington will receive the 2019 SIAM Activity Group on Computational Science and Engineering Early Career Prize at the SIAM Conference on Computational Science and Engineering (CSE19) held February 25 – March 1, 2019 in Spokane, Washington. He will accept the award and deliver his lecture, “Data-Driven Discovery and Control of Complex Systems: Uncovering Interpretable and Generalizable Nonlinear Models,” on February 28, 2019. The award recognizes Brunton for his significant contributions to a broad range of techniques for, and applications of, data-driven analytics, control theory, sparse sensing, and reduced order modeling.

The SIAM Activity Group on Computational Science and Engineering (SIAG/CSE) awards the SIAG/CSE Early Career Prize every two years to a post-PhD early career researcher in the field of computational science and engineering for outstanding, influential, and potentially long-lasting contributions to the field within seven years of receiving the PhD or equivalent degree as of January 1 of the award year. The candidate’s work must contain significant research contributions to the development and use of mathematical and computational tools and methods for the solution of scientific and engineering problems. The contributions must be contained in a paper or papers published in English in peer-reviewed journals.

Steven L. Brunton is an Associate Professor of Mechanical Engineering at the University of Washington. He is also Adjunct Associate Professor of Applied Mathematics and a Data Science Fellow at the eScience Institute there. He received the BS in mathematics from California Institute of Technology in 2006 and the PhD in mechanical and aerospace engineering from Princeton University in 2012. His research combines machine learning with dynamical systems to model and control systems in fluid dynamics, biolocomotion, optics, energy systems, and manufacturing. Brunton is a co-author of three textbooks. He has received the Army and Air Force Young Investigator Program awards, the Army Early Career Award for Scientists and Engineers, and the University of Washington College of Engineering junior faculty and teaching awards.

Q: Why are you excited about winning this prize?

A: I am thrilled to be selected for the SIAG/CSE Early Career Prize! I am incredibly fortunate to have wonderful students and collaborators, and it is great to know that our work is appreciated by the community.

Q: Could you tell us a bit about the research that won you the prize?

A: Our work has largely focused on the data-driven modeling and control of complex dynamical systems, including how to obtain parsimonious nonlinear models using modern techniques in sparse optimization. Identifying interpretable and generalizable nonlinear models from data has been a long-held goal of the community, and recent advances are increasingly making this tractable, for example in fluid mechanics and computational biology. We are now aggressively working to make these methods more suitable for real-world systems by focusing on noise, multiscale dynamics, latent variables, sensor placement, and coordinate transformations that simplify dynamics.

Q: What does your research mean to the public?

A: Dynamical systems are central to how we describe our changing world. Advances in data-driven optimization (i.e., machine learning) are promising to improve modeling capabilities in canonically challenging fields, such as turbulence, neuroscience, and epidemiology, to name a few. Applying these techniques to systems with physics and constraints will also hopefully benefit the fields of learning and optimization.

Q: What does being a SIAM member mean to you?

A: SIAM has always been a wonderful community to be a part of, and I have been going to SIAM conferences ever since I was a graduate student. I love interdisciplinary research that really applies mathematical modeling to solve real problems in science and engineering, and SIAM provides a great place for us to interact and share. I also find the SIAM community to be incredibly collaborative and open minded, which keeps it fun and interesting.

Jack Dongarra - SIAM/ACM Prize in Computational Science and Engineering

Jack Dongarra

Jack Dongarra of the University of Tennessee will receive the SIAM/ACM Prize in Computational Science and Engineering at the SIAM Conference on Computational Science and Engineering (CSE19) held February 25 – March 1, 2019 in Spokane, Washington. He will receive the award and deliver his prize lecture, “The Singular Value Decomposition: Anatomy of an Algorithm, Optimizing for Performance,” on February 28, 2019.

SIAM and the Association for Computing Machinery (ACM) jointly award the SIAM/ACM Prize in Computational Science and Engineering every two years at the SIAM Conference on Computational Science and Engineering for outstanding contributions to the development and use of mathematical and computational tools and methods for the solution of science and engineering problems. With this award, SIAM and ACM recognize Dongarra for his key role in the development of software and software standards, software repositories, performance and benchmarking software, and in community efforts to prepare for the challenges of exascale computing, especially in adapting linear algebra infrastructure to emerging architectures.

Jack Dongarra received his PhD in applied mathematics from the University of New Mexico in 1980. He worked at the Argonne National Laboratory until 1989, becoming a senior scientist. He currently holds an appointment as University Distinguished Professor of Computer Science in the Electrical Engineering and Computer Science Department at the University of Tennessee and holds the title of Distinguished Research Staff in the Computer Science and Mathematics Division at Oak Ridge National Laboratory. At the University of Tennessee, he is the director of the Innovative Computing Laboratory and director of the Center for Information Technology Research, which coordinates and facilitates IT research efforts at the University. Dongarra is also a Turing Fellow at Manchester University and an Adjunct Professor in the Computer Science Department at Rice University. He is a Fellow of the AAAS, ACM, IEEE, and SIAM. He is a foreign member of the Russian Academy of Sciences and a member of the U.S. National Academy of Engineering.

Dongarra specializes in numerical algorithms in linear algebra, parallel computing, the use of advanced-computer architectures, programming methodology, and tools for parallel computers. His research includes the development, testing, and documentation of high quality mathematical software. He has contributed to the design and implementation of many open source software packages and systems.

Q: Why are you excited to be winning the SIAM/ACM Prize in CSE?

A: The list of people who have been awarded this prize is truly amazing, and to be included in that list is humbling and a great honor, as it validates the work we have been doing in a major way.

Q: Could you tell us a bit about the research that won you the prize?

A: I have been involved in the design and development of high performance mathematical software for the past 35 years, especially regarding linear algebra libraries for sequential, parallel, vector, and accelerated computers. Of course, the work that led to this award could not have been achieved without the help, support, collaboration, and interactions of many people over the years. I have had the good fortune of working on a number of high profile projects: in the area of mathematical software, EISPACK, LINPACK, LAPACK, ScaLAPACK, ATLAS and today with PLASMA, MAGMA, and SLATE; community de facto standards such as the BLAS, MPI, and PVM; performance analysis and benchmarking tools such as the PAPI, LINPACK benchmark, the Top500, and HPCG benchmarks; and the software repository netlib, arguably the first open source repository for publicly available mathematical software.

Q: What does your research mean to the public?

A: The work we have been involved with helps in forming the basic part of the fabric of computational science and high performance computing.

This work can be directly integrated in many important technologies that can be used for large-scale computations in medical and health sciences, high performance computing for biomedical and biomechanical engineering, parallel computing in bioinformation and computational biology, modeling and simulation of materials sciences and processing controls, environmental sciences and physics, chemical and biochemical systems simulations, etc. (almost everywhere). Our work is developed with the support of the National Science Foundation and the U.S. Department of Energy. The software is freely available to the community.

Q: What does being a SIAM member mean to you?

A: I’m actively involved in three professional societies, and SIAM is my “first” society. What I mean by that is, I was a member of SIAM before becoming a member of the other societies and I view myself as more closely aligned to the SIAM family. SIAM has had the longest, most significant influence on my work, and therefore I feel a special connection and sense of gratitude to the SIAM family.