Mark Hoemmen is an architect at NVIDIA with 15 years of experience designing high-performance parallel software for CPUs, GPUs, and heterogeneous systems. He specializes in parallel algorithms, numerical linear algebra, and performance portability, contributing to C++ Standard proposals and production-grade libraries like Kokkos and RAPIDS' raft. His work spans low-level optimization, fault-tolerant algorithms, and automatic performance tuning across MPI, OpenMP, CUDA, and modern C++ features such as mdspan. At Sandia and in industry roles he bridged research and engineering, shipping robust scientific software and fixing tricky memory/atomic bugs that improved stability and performance. Mark’s contributions to widely used open-source projects include modernizing interfaces (mdspan-ifying core ML primitives) and optimizing scratch-memory and sort paths, reflecting a pragmatic mix of research rigor and production-savvy. He holds a PhD in Computer Science from UC Berkeley and is based in Albuquerque, NM.
15 years of coding experience
13 years of employment as a software developer
PhD Computer Science, PhD Computer Science at University of California, Berkeley
Bachelor of Science - BS Mathematics and Computer Science, Bachelor of Science - BS Mathematics and Computer Science at University of Illinois Urbana-Champaign
RAFT contains fundamental widely-used algorithms and primitives for machine learning and information retrieval. The algorithms are CUDA-accelerated and form building blocks for more easily writing high performance applications.
Role in this project:
Back-end Developer & ML Engineer
Contributions:110 reviews, 9 commits, 11 PRs in 29 days
Contributions summary:Mark contributed to the `raft` library by fixing memory management issues related to `malloc` and `delete[]` mismatches, improving code stability. They also modernized the codebase by adding `mdspan` overloads for several functions, including `make_regression`, `permute`, `sampleWithoutReplacement`, and `rmat_rectangular_gen`, enhancing the library's usability. Additionally, the user developed a new `mdspan`-ified `multi_variable_gaussian` interface, which is a core component for machine learning projects.
Kokkos C++ Performance Portability Programming Ecosystem: The Programming Model - Parallel Execution and Memory Abstraction
Role in this project:
Back-end Developer
Contributions:12 reviews, 22 commits, 15 PRs in 4 years
Contributions summary:Mark primarily contributed to bug fixes and enhancements within the Kokkos library, addressing issues related to complex number operations, atomic operations, and memory management. They improved the performance of the scratch memory space by conditionally enabling debugging output. Furthermore, they refactored and improved the library's resize functionality and incorporated optimizations by leveraging GNU parallel sort. These changes indicate a focus on improving the core functionality, stability, and performance of the Kokkos library.
memorympic-plus-plusmulti-threadingkokkos
Find and Hire Top DevelopersWe’ve analyzed the programming source code of over 60 million software developers on GitHub and scored them by 50,000 skills. Sign-up on Prog,AI to search for software developers.