I make scientific code run faster on bigger machines.
Master's in High Performance Computing · ICTP & SISSA, Trieste, Italy
Currently finishing a Master's in High Performance Computing at the Abdus Salam International Centre for Theoretical Physics (ICTP) — a UNESCO research centre in Trieste — run jointly with SISSA, the International School for Advanced Studies. Thesis defends December 2026.
Before that, four years building production platforms — distributed compute, CI/CD and data pipelines — at AI startups. These days I spend my time porting and profiling scientific codes for heterogeneous CPU/GPU systems.
Most of what's here was run on Leonardo at CINECA, up to 1792 cores or 40 A100s. Each badge above links to a project that uses it.
Right now
- Master's thesis with OGS, the National Institute of Oceanography and Applied Geophysics — taking
gmrecordsground-motion processing to the edge, so a seismological network processes records on the accelerometers themselves instead of shipping raw waveforms to a central server. - Ongoing research on xFFL with the University of Turin — cross-facility federated learning, training across HPC sites that cannot pool their data.
| Project | What it is | Result |
|---|---|---|
| low_level_optimisations | An out-of-tree LLVM pass that classifies loop memory access by stride and predicts vectorisability before the code runs | 30% lost purely to missed vectorisation |
| gpu-kernel-profiling | Reading Nsight Systems traces on A100 — plus tooling to extract kernel timings straight from the trace databases | 11% of peak, traced to a bank conflict |
| fft-gpu-programming-models | Six implementations of one FFT — hand-written CUDA, OpenACC and cuFFT — benchmarked head to head | OpenACC 5× slower than CUDA |
| matrix-multiplication-parallel | Dense GEMM four ways, with roofline analysis | 45 TFLOP/s on 16 nodes |
| Project | What it is | Result |
|---|---|---|
| miniWeather-mpi-openacc | Fortran atmospheric model taken to MPI + OpenMP + OpenACC, with parallel NetCDF, CMake and containerised CI | 190 s → 2.1 s, then 8.2× on GPU |
| quantum-espresso-ks-scaling | Profiling and GPU-porting the Davidson eigensolver inside Quantum ESPRESSO — plane-wave DFT | FFT 11.3×, solver only 2.4× |
| jacobi-poisson-solver | One Laplace problem in four parallel models — MPI+OpenMP, HDF5 parallel I/O, OpenACC, NVSHMEM | 94% efficiency at 1120 cores |
| fisher-kpp-rumour-diffusion | Reaction-diffusion PDE solved in parallel with PETSc — DMDA, Runge-Kutta time integration |
Matches the analytic wave speed |
| Project | What it is |
|---|---|
| hpc_containers | One MPI+OpenACC solver shipped four ways — native, InfiniBand-forced, Singularity, Docker — including the UCX/PMIx configuration that makes MPI work over InfiniBand inside a container |
| federated-learning-nextflow | FedAvg as a real Nextflow/SLURM workflow, one GPU per client, model weights exchanged as files |
| python-hpc-interop | What Python actually costs in HPC — pybind11 lands within 5% of native C++ |
| Languages | Fortran · C · C++20 · Python · Bash |
| Parallel programming | MPI (OpenMPI, HPC-X) · OpenMP · OpenACC · CUDA · NVSHMEM · NCCL |
| GPU libraries | cuBLAS · cuFFT · CuPy · NVIDIA HPC SDK |
| Performance analysis | Nsight Systems · NVTX · perf · llvm-mca · LLVM analysis passes · roofline modelling |
| Scientific I/O | NetCDF · HDF5 · collective MPI-IO · ParaView / VisIt |
| Numerical libraries | PETSc · ScaLAPACK · OpenBLAS · FFTW · LAPACK |
| Build & test | CMake · CTest · Make · Git · GitHub Actions |
| Clusters & containers | SLURM · UCX / InfiniBand · NUMA-aware pinning · Docker · Singularity / Apptainer |
| Machines | Leonardo (CINECA) · JUPITER (JSC) · COKA (INFN) · ICTP / SISSA / Ferrara clusters |
| Frameworks | PyTorch · TensorFlow · scikit-learn |
| Scientific Python | NumPy · SciPy · Pandas · Matplotlib · Numba · pybind11 · mpi4py |
| Distributed & federated | FedAvg · Nextflow · Kubeflow · Argo Workflows |
| Tracking | Weights & Biases |
| Cloud | AWS · GCP (Cloud Run, GKE) |
| Orchestration | Kubernetes · Docker · Ansible |
| Backend | Django · FastAPI · Flask · REST / SOAP integrations |
| Data stores | PostgreSQL · MongoDB · Redis · ChromaDB |
| Observability | Prometheus · Grafana · Loki · OpenTelemetry · Sentry |
| Reliability | Load testing · autoscaling · capacity planning · CI/CD · on-call automation |
Smaller collections that the projects above grew out of — cuda_stuff · open_mpi_openmp_stuff · file_io_stuff · fortran · petsc · quantum_computing


