RESEARCH AGENDA / SCIENTIFIC COMPUTING
Numerical foundations. Modern systems.
Bridging numerical analysis, software architecture, and high-performance computing to build verifiable, scalable simulation software for exascale systems.
01 /Scientific solver modernization
Read full dossierTrack 01 · Scientific Computing & Solver Architecture
Modernization of a Reactive Compressible Multi-Species Solver
Decomposing legacy Fortran into a modular C++17 architecture with Cantera thermodynamics, WENO-5/TENO shock-capturing, and parallel HDF5 scientific I/O.
- 01
Understand & Audit
Legacy Fortran Solver
Baseline verified - 02
Decouple & Interface
Architecture Redesign
Interfaces defined - 03
Rebuild & Modernize
Modular C++17 / Julia Core
Active development - 04
Verify & Validate
Verification & Validation
Continuous testing - 05
Scale & Port
HPC Scale & Portability
HPC target
02 /Exascale observability & heterogeneous systems
RESEARCH MAP / TRACK 02
Tuning, debugging, and monitoring heterogeneous systems at exascale.
Track 2 focuses on the tools and methods needed to understand heterogeneous HPC systems where CPUs coordinate thousands of nodes and GPUs provide much of the computational power.
03 /Research interests
Investigating how to structure, coordinate, and accelerate numerical software across modern parallel systems—from cache line vectorization to exascale cluster execution.
High-Performance Computing
Supercomputing InfrastructureDesigning simulation software to effectively exploit massively parallel supercomputing resources, batch schedulers, and high-speed interconnects.
- MPI
- SLURM
- Toubkal HPC
- InfiniBand
Parallel Computing
Multi-Core & DecompositionDecomposing spatial computational domains and coordinating multi-threaded execution with minimal synchronization friction.
- OpenMP
- Pthreads
- Domain Decomposition
Task-Based Parallelism
Dynamic SchedulingExpressing scientific workflows as Directed Acyclic Graphs (DAGs) to enable latency hiding, work-stealing, and asynchronous execution.
- Task DAGs
- HPX
- Dependency Tracking
Heterogeneous Computing
CPU + GPU Co-DesignMapping scientific numerical kernels across host CPUs and throughput-oriented GPU accelerators, optimizing data movement across PCIe and NVLink.
- CUDA
- ROCm
- Unified Memory
- PCIe Transfer
Distributed Computing
Inter-Node ScalabilityStructuring low-overhead ghost-cell halo exchange, non-blocking collective communication, and data locality across distributed cluster nodes.
- Non-blocking MPI
- Halo Buffers
- Scalable Collectives
Scientific Software Engineering
Modular Software DesignApplying modern C++ paradigms, zero-cost abstractions, automated regression, and Continuous V&V to sustain long-lived simulation codes.
- Modern C++17
- CMake / CTest
- RAII
- V&V Suites
Performance Optimization
Cache, SIMD & RooflineAnalyzing cache line utilization, memory bandwidth saturation, and SIMD vectorization to approach theoretical roofline hardware performance limits.
- Roofline Model
- SIMD / AVX-512
- Cache Alignment
Performance Portability
Single-Source DispatchWriting portable mathematical kernels that target multi-vendor CPUs and accelerators through modern unified abstraction frameworks.
- Kokkos
- C++ Parallel Algorithms
- Hardware Targets
TECHNICAL METHODOLOGIES & RUNTIMES
BENCHMARKING / EVIDENCE
Measure the system before optimizing it.
Benchmarking is treated as a reproducible loop: define the workload, capture a baseline, compare a change, and keep the evidence attached to the result.