Projects

Three things I built, and what each one proves

Each entry states the result first and links the repository that backs it.

1 · Agent-style performance analysis over real HPC data

2026

hpc-benchmark-agent

Ask a question in Chinese about PETSc benchmark runs; get an answer grounded in a database rather than in the model's memory.

  • Layered so the two halves stay independent.
  • A rule router as the baseline, not as a fallback.
  • Both routers return the same shape.
  • The eval set scores tool calls, not answer text.
  • Failure is explicit.
  • Reports are byte-deterministic.
  • Traceable and offline-testable.
Verify it in three minutes: clone the repo, install, then run the tests — no API key needed.
PythonSQLiteFastAPI OpenAI SDKpytestPETSc MPISlurm

github.com/leyancode/hpc-benchmark-agent

2 · Value factorisation in multi-agent actor-critic methods

2025 · dissertation

marl-value-factorisation

Final year project at the University of Liverpool (COMP390), reworked into a portfolio repository in 2026.

  • A controlled comparison.
  • The headline result runs against intuition.
  • Diagnosis, not just observation.
  • Negative results and self-criticism are in the write-up.
  • Made reproducible in 2026.
PyTorchPyMARLMAPPO VDNQMIXPettingZoo GitHub Actions

github.com/leyancode/marl-value-factorisation

3 · PETSc solver scaling on ARCHER2

2026 · coursework

Benchmark sweep and performance analysis

ARCHER2 is the UK national supercomputer, an HPE Cray EX system at EPCC with 128 cores per node.

  • A sweep driven by data, not by edited scripts.
  • 408 audited runs, 5M–165M unknowns, up to 4,096 cores.
  • Hybrid wins; 2D peaks at 64×2, 3D at 32×4.
  • 29.83× at 93.2% efficiency in 2D; in 3D each layout saturates at a different node count.
  • MAP: MPI exposure 46.7%→6.2%, OpenMP waiting 48.3%→76.5%; threaded BLAS ruled out.
  • 302 of 303 logs had mismatched process counts; that stage was binned, not adjusted.
This was coursework, so the full run dataset is not published.
PETScMPIOpenMP SlurmARCHER2Bashpandas

Read the write-up

Also public