Senior C++ Engineer (High Performance Computing) (#2839)

REFERRAL BONUS
$1000
Europe, South America, Ukraine
Work type:
Office/Remote
Technical Level:
Senior
Job Category:

We are seeking a skilled and motivated HPC Developer to join our team and contribute to the development of the computational core for digital twin modelling software. This module will perform high-performance grid calculations and advanced operations on GPUs and CPUs using state-of-the-art parallel computing techniques. You will play a critical role in designing, implementing, and optimizing asynchronous workflows with load balancing, memory allocation, and cross-platform execution capabilities.

Key Responsibilities:

  • Design and implement high-performance computation modules for grid operations.
  • Develop algorithms optimized for both CPU and GPU architectures using modern frameworks like CUDA, OpenCL, OpenMP, SYCL, or MPI.
  • Implement task-based parallelism and asynchronous execution strategies.
  • Collaborate with the orchestration team to integrate task scheduling and resource management systems.
  • Profile and optimize memory allocation, load balancing, and data movement across CPU and GPU.
  • Ensure efficient communication between distributed processes using MPI or similar frameworks.
  • Develop portable code that supports multiple hardware configurations (NVIDIA GPUs, AMD GPUs, CPUs).
  • Leverage frameworks like SYCL, Kokkos, or OpenCL for cross-platform compatibility.
  • Work closely with the backend and visualization teams to integrate the computation module with the overall Odin architecture.
  • Implement APIs for seamless interaction between the computation module and other components.
  • Develop unit tests, benchmarks, and validation procedures for computational accuracy and performance.
  • Troubleshoot and debug issues across heterogeneous systems.
  • Document code, algorithms, and design decisions to ensure maintainability and knowledge sharing.

Experience and Qualification:

  • 3+ years of experience in HPC, parallel computing, or numerical simulations.
  • Proven experience in GPU programming (CUDA, HIP, or OpenCL).
  • Hands-on experience with CPU parallelism using OpenMP, MPI, or similar frameworks.
  • Familiarity with asynchronous workflows and task orchestration frameworks
  • Bachelor’s or Master’s degree in Computer Science, Computational Physics, Applied Mathematics, or related fields.
  • Programming Languages: Proficiency in C++. Rust or Julia experience is a plus.
  • Parallel Computing: Strong understanding of GPU programming (CUDA, HIP, or SYCL) and multi-threaded CPU programming (OpenMP, MPI).
  • Memory Management: Expertise in optimizing memory allocation, data movement, and unified memory (e.g., CUDA UVM).
  • Load Balancing: Experience with dynamic and static load-balancing techniques in HPC systems.
  • Experience with orchestration tools
  • Strong problem-solving skills and ability to work in a multidisciplinary team.
  • Excellent communication skills for cross-team collaboration and documentation.
  • Passion for innovation and a drive to push technological boundaries.

Preferred Qualifications:

  • Experience in developing simulation or visualization software for oil and gas or similar industries.
  • Familiarity with modern containerization technologies (e.g., Docker, Kubernetes).
  • Knowledge of advanced numerical methods like finite element/volume methods, deep learning or deep neural operators.

 

We offer:

  • Flexible working format - remote, office-based or flexible
  • A competitive salary and good compensation package
  • Personalized career growth
  • Professional development tools (mentorship program, tech talks and trainings, centers of excellence, and more)
  • Active tech communities with regular knowledge sharing
  • Education reimbursement
  • Memorable anniversary presents
  • Corporate events and team buildings
  • Other location-specific benefits
×

Easy apply


    or
    Refer a friend