Middle/Senior C++/Python Engineer (High Performance Computing)

1 Hour ago • 3 Years + • Programming

Job Summary

Job Description

We are looking for a skilled HPC Developer to create the computational core for digital twin modeling software, performing high-performance grid calculations and advanced operations on GPUs and CPUs using parallel computing techniques. You will be responsible for designing, implementing, and optimizing asynchronous workflows, including load balancing, memory allocation, and cross-platform execution. The role involves developing algorithms for CPU and GPU architectures using frameworks like CUDA, OpenCL, OpenMP, SYCL, or MPI, and ensuring efficient communication between distributed processes. Collaboration with orchestration, backend, and visualization teams is key to integrating the computation module into the Odin architecture, along with implementing APIs, developing tests, and troubleshooting issues across heterogeneous systems.
Must have:
  • 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 (OpenMP, MPI, or similar).
  • Proficiency in C++/Python.
  • Strong understanding of GPU programming and multi-threaded CPU programming.
  • Expertise in optimizing memory allocation and data movement.
  • Experience with dynamic and static load-balancing techniques.
  • Strong problem-solving skills and teamwork.
  • Excellent communication skills.
  • Bachelor’s or Master’s degree in a relevant field.
Good to have:
  • Familiarity with asynchronous workflows and task orchestration frameworks.
  • Experience with orchestration tools.
  • Experience developing simulation or visualization software.
  • Familiarity with containerization technologies (Docker, Kubernetes).
  • Knowledge of advanced numerical methods.
Perks:
  • Flexible working format (remote, office-based, or flexible)
  • Competitive salary and compensation package
  • Personalized career growth
  • Professional development tools (mentorship, tech talks, trainings)
  • Active tech communities
  • Education reimbursement
  • Anniversary presents
  • Corporate events and team buildings
  • Location-specific benefits

Job Details

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++/Python. 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

*not applicable for freelancers

Similar Jobs

Looks like we're out of matches

Set up an alert and we'll send you similar jobs the moment they appear!

Similar Skill Jobs

Looks like we're out of matches

Set up an alert and we'll send you similar jobs the moment they appear!

Jobs in Colombia

Looks like we're out of matches

Set up an alert and we'll send you similar jobs the moment they appear!

Programming Jobs

Looks like we're out of matches

Set up an alert and we'll send you similar jobs the moment they appear!