Hal Finkel

Hal Finkel

Lead, Compiler Technology and Programming Languages


Argonne National Laboratory
9700 S. Cass Avenue
Building 240 - Rm. 2128
Lemont, IL 60439

Hal Finkel graduated from Yale University in 2011 with a Ph.D. in theoretical physics focusing on numerical simulation of early-universe cosmology. He’s now the Lead for Compiler Technology and Programming Languages at the ALCF. Hal has contributed to the LLVM compiler infrastructure project for many years and is currently the code owner of the PowerPC backend and the pointer-aliasing-analysis subsystem, among others. As part of DOE's Exascale Computing Project (ECP), Hal is a PathForward technical lead, Co-PI for the PROTEAS-TUNE, Flang, Kokkos, and Proxy Apps projects, and a member of several other ECP-funded projects. Hal represents Argonne on the C++ Standards Committee and serves as vice-chair of the committee. He was the lead developer on the bgclang project, which provided LLVM/Clang on IBM Blue Gene/Q supercomputers. Hal also helps develop the Hardware/Hybrid Accelerated Cosmology Code (HACC), a two-time IEEE/ACM Gordon Bell Prize finalist. He has designed and implemented a tree-based force evaluation scheme and the I/O subsystem and contributed to many other HACC components.

Some recent publications (full publication list):

Some of my open-source projects:

  • ClangJIT - An extension to Clang bringing just-in-time (JIT) compilation to C++ (video)
  • bgclang - LLVM/Clang for the BG/Q
  • GenericIO - GenericIO is a write-optimized library for writing self-describing scientific data files on large-scale parallel file systems (used by HACC).
  • hpcrc64 - A High-Performance CRC64 Library
  • HACCKernels - A benchmark for HACC's particle force kernels
  • memlog - This tool attempts to help you answer the question: Why is my application using so much memory?
  • trackdeps - An LD_PRELOAD module to track dependencies of an executable on its inputs