
Researcher - Heterogeneous Optimization Solver (HPC/NLA Specialization)
- Vancouver, British Columbia
- 88rfl
Job description
Huawei Canada has an immediate permanent opening for a Researcher.
About the team:
The Intelligent Cloud Infrastructure Lab aims to innovate technologies, algorithms, systems, and platforms for next-generation cloud infrastructure. The lab addresses scalability, performance, and resource utilization challenges in existing cloud services while preparing for future challenges with appropriate technologies and architectures. Additionally, the lab aims to understand industry dynamics and technology trends to create a robust ecosystem.
About the job:
Design and implement parallel core algorithms for optimization, with a specific focus on developing, optimizing, and integrating high-performance sparse linear solvers (e.g., factorization, preconditioning) for large symmetric linear systems.
Develop and design HPC-ready solver infrastructure, focusing on efficient memory management, cache utilization, NUMA-aware programming, and cross-platform portability for heterogeneous systems.
Optimize performance across multiple fronts (cutting-edge parallelization strategies for distributed memory/shared memory), with a strong emphasis on profiling and accelerating key computational bottlenecks on heterogeneous architectures (CUDA/CANN/OpenCL/HIP).
The base salary for this position ranges from $121,000 to $230,000 depending on education, experience and demonstrated expertise
Job requirements
About the ideal candidate:
Advanced degree (PhD or Master’s degree) in Computational Mathematics, Numerical Analysis, Operations Research, or Computer Science with a focus on large-scale optimization or HPC.
Proficiency in modern C++ (C++17) with exceptional software engineering skills and expertise in low-level performance tuning, data layout optimization, and memory management for parallel architectures.
Deep expertise in Numerical Linear Algebra (NLA), specifically sparse matrix computations and the design/implementation of direct and iterative solvers for symmetric indefinite and symmetric positive definite systems.
Ability to design algorithms with attention to algorithmic scalability, numerical stability (e.g., pivot selection/reordering), and high computational efficiency on parallel/heterogeneous hardware.
Direct experience with parallel programming models such as MPI, OpenMP, and/or TBB for shared and distributed memory systems.
Nice to have:
Experience contributing to or deeply utilizing the core NLA components of major open-source or commercial solvers. (e.g., Gurobi, CPLEX, SCIP, HiGHS, OR-Tools, IPOPT).
Hands-on experience developing or extending optimization algorithms (e.g., simplex, interior-point, branch-and-bound, constraint propagation, heuristics, local search, nonlinear solvers).
Proven experience with GPU programming (CUDA, OpenACC, OpenCL, or HIP) and utilizing high-performance numerical libraries (e.g., cuSPARSE, cuSOLVER, PETSc, Trilinos, or similar HPC NLA packages).
Contributions to open-source optimization or numerical computing libraries.
Track record of publications in top venues relevant to optimization, large-scale numerical analysis, or high-performance computing (HPC) (e.g., SIAM, ACM TOMS, Supercomputing conferences).
or
All done!
Your application has been successfully submitted!
