Post Job Free
Sign in

C++/CUDA, parallel computing, and Python

Company:
Intelliswift Software
Location:
Redmond, WA, 98052
Posted:
April 28, 2024
Apply

Description:

Must Have skills:

Modern C++ (19) w/ CUDA

Experience using MPI (message passing interface) and OpenMP - parallelization / distributed computing

Optimizing / refactoring code

Supplemental” Skills, Plusses:

Numerical Method (unicorn)

Full stack on cluster - bare metal, operating system, drivers, applications (unicorn)

Physics understanding

High Performance Computing

Optimizations

Nice to have DSP background (sample rates, digital filters, etc)

Detailed Job Description

*Please prioritize C++/CUDA, parallel computing, and Python. The other skills requested (HPC, SLURM, 3D Math) are now nice-to-haves.*

Reality Labs at Meta is seeking a contractor for the role of Parallel Computing Engineer in AR/VR audio to work in our research lab. The job entails supporting the audio research team in achieving their research goals by performing infrastructure and workflow setup/management and implement/optimize research code into massively parallel software suite.

Responsibilities

• Work side by side with research scientists to optimize, solve, and integrate existing or future research

• Create, debug, and optimize core parallel algorithms and data structures withing a distributed environment through library development, direct application contributions and software profiling

• Build software, tools, platforms, infrastructure, and documentation that enable research staff to be more effective and efficient

• Write clean readable code, debug complex problems that span systems, prioritize ruthlessly, and get things done with a high level of efficiency

• Mentor researchers and other team members on software engineering best practices, tips and techniques

• Collaborate in a team environment across multiple scientific and engineering disciplines, making the architectural tradeoffs required to rapidly deliver software solutions

• Learn constantly, dive into new areas with unfamiliar technologies, and embrace the ambiguity of AR/VR problem solving

Minimum Qualifications Requirements

• Demonstrated proficiency in computational complexity, algorithm design, low level computer architecture, data structures, software design, large-scale C/C++ systems

• 5+ years relevant experience in parallel computing

• 5+ years of experience in C++ ( v.11)

• Experience with parallel programming, ideally C/C++ threads, MPI and OpenMP

• Experience in GPGPU programming, ideally CUDA C/C++, OpenCL or DirectCompute

• Strong mathematical fundamentals, including linear algebra, computational physics and numerical methods

• Excellent communication and organization skills, with a logical approach to problem solving, good time management, and task prioritization skills

Preferred Qualifications

• Good grasp of audio and DSP fundamentals

• Proven experience in scientific computing using Python and/or MATLAB

• 1+ years experience in working with HPC clusters, automation software, and virtualization/containerization (e.g., Kubernetes, SLURM, VMWare)

• Experience in computer graphics algorithms/principles and physics principles (e.g., wave propagation)

• Experience in SQA, formal/empirical Verification of mathematical models, software defect, and complexity analysis

Additional Notes/Comments

● Top 3 must-have HARD skills:

Modern C++ (19) w/ CUDA

Experience using MPI (message passing interface) and OpenMP - parallelization / distributed computing

Optimizing / refactoring code

● Good to have skills:

Numerical Method (unicorn)

Full stack on cluster - bare metal, operating system, drivers, applications (unicorn)

Physics understanding

High Performance Computing

Optimizations

Nice to have DSP background (sample rates, digital filters, etc)

● Story Behind the Need – Business Group & Key Projects:

Backfill

Audio Simulation Environment / Research

Simulations Team on RLR-Audio

● Is there anything we can share with Candidates to compel them to choose Meta over competitors?:

Working with PhD researchers

Candidates who like physics, applied mathematics, audio and acoustics and high performance compute will have a great time - fun project for the right person

● Typical Day in the Role:

Infra, optimization, new features, debugging - typical software development day

Weekly standups

Daily face time with researchers

80-90% coding vs. meetings / admin

● How will performance be measured:

Can the candidate deliver expected outcomes?

Communication / raise issues when they come up

Apply