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