Computational Scientist
CurrentResearch and develop in C++11; document numerical algorithms for Computational Electromagnetics (CEM) software to improve EM simulator that can be launched on 300GB memory workstation with GPUCarry out code refactoring, performance/memory optimization and documentation of numerical algorithmsTook role of team lead to dramatically increase accuracy, stability, and performance of Lorentz’s two main computational EM engines, with performance of most important direct solver engine improved at least 4x timesEnsure release note for each new version contains speed, memory usage, or accuracy improvementsDiscovered how to apply Helmholtz decomposition using algebraic analysis to improve EM formulation; decreased condition number of final system of linear equations to use single accuracy precision in direct solver: gained 2x performance boost, halved memory, solved problems on regular GPUs without fast double precisionOrganized total rebuild of frequency domain integral equations iterative EM solver (previously failed project) based on ACA compression using GMRES type algorithm; helped bring iterative solver from prototype to production-level with same accuracy as direct engine on much smaller memoryTo improve EM Integral Equations Solver, developed Krylov subspace linear algebra numerical algorithms, made precondition matrix optimizations, round-off error optimization, can solve very large systems of linear equations with ACA compressed matrices, C++ OpenMP, multi-threading/thread pools, SIMD, MKL, GPU MAGMA parallelizationLeveraged advanced math expertise to help rebuild and accelerate iterative solver using round-off errors treatment; improved condition number and appropriate normalization of system of linear equationsContribute to performance/accuracy of EM engine, directly increasing likelihood of long-term support contractsOptimized existing Numerical Linear Algebra algorithms; improved matrices condition number and EM models