Hi.
You have found yourself on the personal home page of Peter-Jan Gootzen. I'm a Research Software Engineer at NVIDIA working on HPC/AI Networking.
Below you will find a list of interesting stuff I previously worked on. You might also enjoy my Github, Linkedin or Mastodon.
These days I am working on the next generation software stack of the NVIDIA BlueField DPU. 😉
DPFS: DPU-Powered File System Virtualization
This research started during my IBM Research Zurich internship and has grown into a full open-source project that has sparked significant interest in and outside of IBM.
I am currently continuing the research for my MSc thesis in collaboration with IBM Research (Zurich & Yorktown) and Nvidia.
The DPFS framework allows Cloud and datacenter operators to provide virtualized file system services to tenants using DPU-offloading.
With DPFS the complete file system implementation runs on the CPU complex of the DPU.
Tenants consume the file system through the `virtio-fs` devices that the DPU exposes over PCIe (SR-IOV).
Noteable things I during this research:
- created a hardware abstraction layer (HAL) for undocumented features in our DPU's firmware and software
- developed features and bug fixes for our vendor supplied DPU's software stack
- implemented the Networked File System (NFS) v4.1 RFC in userspace
- ported the lowlevel libfuse file system API to our framework
- Linux kernel debugging and patch development
- a bit of RDMA debugging and coding
- performed many low-level performance optimization iterations
- created an extensive set reproducible experiments
Bento and the Art of Repeated Research
Research project under supervison of Assistant Professor Animesh Trivedi on Rust File Systems
Advanced projects for university courses
Sadly most of these contain no links to source code or report as to prevent plagarism for future students.
- x86 kernel with multicore scheduling, dynamic memory allocation, kernel and userspace tasks, and device support for PCIe virtio-blk
- Performance engineering a fluid dynamics simulation (Lattice Botlzmann method) - Report, Source code
- MOESI Cache simulator (discrete-event with accurate timings)
- Several scientific HPC simulations using MPI and CUDA
- NVMe userspace FTL (GC) and ext3-like NVMe file system for RocksDB
- Reverse engineering and exploiting systems and web software
BrickEngine and BeastArena
Six month BSc student project on game engine programming and game design. I lead our team on software architecture and performance optimizations.
- BrickEngine: Fully featured 2D Game engine with ECS
- Beast Arena: A fun party game inspired by Duck Game, made using BrickEngine
Some Rust Projects
- For my BSc thesis (intern at Avanade Netherlands) I researched and implemented a WebAssembly embedded device simulator in Rust for Avanade’s IoT showcase PoCs
- DOEM and DOEM math: A tie-fighter demo using a home grown linear algebra library
- Bento and the Art of Repeated Research