Contributing to PSyclone
PSyclone is a code generation system developed for use in finite element, finite volume and finite difference codes. Notably, it is used in the LFRic project. PSyclone is also being extended to support an API being developed in the GOcean project for two finite difference ocean model benchmarks, one of which is based on the NEMO ocean model. More information on PSyclone ReadTheDocs.

Contributing to PSycloneBench
PSycloneBench contains various small benchmarks used to inform the development of the PSyclone.

DopingHPC (code not released yet)
Doping (Dynamic OPtimization INjector) is a tool to embed a dynamic recompilation infrastructure to C and C++ applications in order to optimize (and improve the vectorization) of loops. The tools targets traditional HPC applications and leverages the additional contextual information available at run-time to perform the optimizations.

This Test-Suite evaluates the auto-vectorization capabilities of compilers for different amounts of compile-time provided information. This contrasts with traditional test-suites that only provide an implementation-specific source to the compiler. To achieve this we have extended the TSVC benchmark and 6 micro-kernels (Binomial options, Black-Scholes, MandelBrot, Convolutions, Small matrix-matrix multiplication and Stencil computation) with preprocessor macros to choose whether the value of: loop bounds, parameters in Array Indices and offsets, parameters in Conditional Evaluations, adn array attributes such as alignment and non-aliasing constrains is provided at compile-time or hidden until the run-time.

Contributed to Hartree Advance Programming Course
Source of the Hartree Centre OpenMP Training

Developed DL_MESO MiniLBE branch
DL_MESO is a mesoscale simulation package that supports both Lattice Boltzmann Equation (LBE) and Dissipative Particle Dynamics (DPD) methods. The MiniLBE branch provides and implementation of the Lattice Boltzmann simulation designed to take advantage of highly parallel architectures with long vector units.

Developed tools for analysis of aggregated traces for Dimemas

Developed a platform for Hybrid Elliptic Curve Cryptographic e-voting systems

University coursework projects: