Skip to content
View ethan-puyaubreau's full-sized avatar

Block or report ethan-puyaubreau

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ethan-puyaubreau/README.md

Ethan Puyaubreau

I build research software that measures what scientific computing costs.

Research software engineer in high-performance computing. M.Eng.-equivalent from Polytech Paris-Saclay (September 2026) after three years of work-study at EDF R&D and a research stay at Oak Ridge National Laboratory.

Available early 2027 for research software engineer roles in HPC and scientific computing, at national labs, universities or research institutes, in the US or in France. For US roles I need visa sponsorship (J-1 or H-1B).

Portfolio · LinkedIn · Google Scholar · ORCID · ethan.puyaubreau@gmail.com


Oak Ridge National Laboratory, summer 2025

Graduate Research Fellow (GRO program). I built GPU energy-measurement tooling for Kokkos, the C++ performance-portability library behind many US Department of Energy codes: a sampling daemon and connectors that read power through NVML or Variorum every 20 ms, plus an AMD path through ROCm SMI, not public yet, which is the version that ran on Frontier. They attach at run time through Kokkos Tools, so an application is measured without a rebuild.

  • Ran on Frontier, the first exascale supercomputer (the ROCm SMI version), and on production SLURM clusters.
  • Found a cost a timer understates. On the same input and result, ArborX's dense DBSCAN takes 19% less time than the default one but 25% less energy, because it also draws 9% less power (medians of 64 runs on an H100 NVL, re-analysed in 2026; traces and script are public).
  • Went through public review. 9 PRs, 8 to kokkos-tools and 1 to LAMMPS: 3 merged: the sampling daemon I started (kokkos-tools #300, reworked through review by my ORNL mentor after my stay) and two build fixes. The core (#299), the NVML connector (#301, changes requested) and the Variorum connector with its unit tests (#302, draft) are still open.
  • Presented. Poster at the 2025 Smoky Mountains Conference and at an ORNL internal session (Understanding GPU energy dynamics in HPC applications), and invited to present at SC25 (declined, apprenticeship schedule). Cited in ORNL's S4PST 2024-2025 report.

The analysis side is open source and archived on Zenodo (DOI 10.5281/zenodo.22943410): energy-dashboard-for-kokkos, rewritten in September 2026 as a single Rust binary that attributes measured energy to Kokkos regions and kernels, with a console table, a Perfetto trace and a standalone HTML report.

EDF R&D, work-study (2023-2026)

On the C++ platform that simulates EDF's nuclear reactor cores (500k+ lines, 30+ engineers):

  • Wrote the memory and compute-time profilers (C++, Python bindings). The memory profiler pinned down a memory blow-up the team had been chasing for days.
  • Developed the prototype of a new modular architecture for the neutronics solvers and measured it with those tools: bit-for-bit identical results, up to 12% faster on the compute core, 38% lower peak memory.
  • Automated the test and delivery chain: cluster runs, result validation, PostgreSQL ingestion, Debian packaging (Jenkins, GitLab CI/CD).
  • Worked in the team's process: code reviews given and received, five internal technical notes, Sphinx documentation for the tools.

Infrastructure I run

A 5-node Proxmox cluster I have designed and operated alone since 2020, for about twenty services and ~60 regular users. Over the years it has run Ceph, Ansible and GitLab CI; today Gitea and Coolify carry the CI/CD and a Kubernetes (K3s) VM runs alongside, behind Traefik, Authelia SSO and a VyOS-segmented network, watched by Gatus and Uptime Kuma. Every incident is mine.

proxmox-ops-mcp lets an AI assistant operate that cluster. Every command goes through a deny-by-default classifier; destructive ones wait for my approval on a separate channel and land in an append-only audit log, so a prompt injection cannot approve itself.

Side project

nbody-webgpu: up to 65,536 bodies in a WGSL compute shader, tiled through workgroup shared memory, leapfrog integrator. Run it in your browser.

Spiral galaxy simulated in real time with WebGPU compute shaders

Stack

HPC: C++17/20 · CUDA · Kokkos · MPI · OpenMP · SLURM · NVML · ROCm-SMI
Research software: Python · PyBind11 · CMake · Rust · Git · GitHub Actions · GitLab CI · Sphinx
Infra: Proxmox · K3s · Ceph · Docker · Traefik · Ansible
Also: PostgreSQL · TypeScript · WebGPU


Hiring a research software engineer for early 2027? Email me.

Pinned Loading

  1. energy-dashboard-for-kokkos energy-dashboard-for-kokkos Public

    energy-dashboard-for-kokkos: per-region energy attribution for Kokkos applications (NVML). Single Rust binary with a console table, Perfetto trace export and a standalone HTML report.

    Rust

  2. nbody-webgpu nbody-webgpu Public

    Real-time N-body galaxy simulation running on WebGPU

    TypeScript

  3. proxmox-ops-mcp proxmox-ops-mcp Public

    MCP server to operate a Proxmox cluster, with a deny-by-default classifier and out-of-band human approval

    JavaScript

  4. smc2025-gpu-energy-poster smc2025-gpu-energy-poster Public

    Poster presented at SMC 2025 (Chattanooga, TN): GPU energy profiling for the Kokkos ecosystem, developed at Oak Ridge National Laboratory.

    HTML

  5. ethan-puyaubreau.github.io ethan-puyaubreau.github.io Public

    Portfolio of Ethan Puyaubreau, research software engineer in HPC

    Astro

  6. heapline heapline Public

    Heap usage of a Linux program through LD_PRELOAD, without recompiling it

    C++