Research in compilers, tools, and programming models to enable complex simulation codes to operate correctly and efficiently across current and next-generation architectures.

Group Lead

Tom Epperly: mathematical optimization, large-scale software architecture, component technology, language interoperability

Research Staff

Johannes Doerfert: optimization of parallel programs, OpenMP, machine learning enhanced compilers and tooling, LLVM

Lindsay Errington: tools for HPC: compiler optimization, code synthesis, program transformation; formal methods: logic, theorem proving, abstract interpretation, category theory.

Rich Hornung: parallel algorithms for scientific computing, performance portability and optimization, computational methods for adaptive mesh refinement and hybrid continuum-atomistic simulation, software infrastructure for multiphysics applications

Jim Leek: parallel discrete events simulation, compiler tools, software architecture

Chunhua (Leo) Liao: compiler optimization, parallel programming models, performance tools, large language models for code transformation and analysis

Pei-Hung Lin: parallel programming models, compiler optimization for HPC performance portability/tuning, machine-learning enabled compiler analysis and optimization

Peter Pirkelbauer: static and dynamic analyses, domain specific programming models, parallel programming models, concurrent and non-blocking algorithms

Dan Quinlan: compiler optimization, program analysis, software assurance, adaptive mesh refinement, object-oriented scientific computing

Craig Rasmussen: computer languages, Fortran, program analysis & transformation, plasma physics, medical physics

David Richards: co-design of HPC systems, proxy applications, parallel programming models, Monte Carlo transport, cardiac simulation, molecular dynamics

Kevin Sala Penades: heterogeneous computing, parallel programming models, compiler tools, performance and debugging tools, parallel runtime systems.

John Sarracino: applied formal methods, computer security, automated and interactive program verification.

Thomas Scogland: formal methods, software correctness tools, design and implementation of programming languages, scientific code verification and validation methods

Matthew Sottile: programming languages for high performance computing, performance analysis, programming models for scientific computing

Mohit Tekriwal: applied formal methods, programming languages, approximate computing, AI assurance

Tristan Vanderbruggen: program analysis and transformations for application maintenance and modernization, high-level abstractions for safer HPC codes, machine-learning enabled program analysis frameworks

Eddy Westbrook: formal verification, proof assistant implementation & automation, Rust and memory-safe type systems, formal methods, programming languages, type systems, and type theory

Qing Yi: compiler optimization for high performance computing, software correctness & productivity, programming languages, domain-specific abstractions