We are looking for an experienced Staff Applications Engineer to join the Applications team, with demonstrated ability in moving HPC applications onto new platforms and in evaluating performance on node and at scale.
Location: Hybrid in either our Austin, TX or Minneapolis, MN offices (or willing to relocate) preferred but Remote considered for exceptional candidates.
As part of a software-defined hardware company, you will play a pivotal role in driving new software features based on your analysis of customer-defined applications and measuring the resulting performance improvements. This role stands on the edge of computer science/architecture and scientific applications which span a wide range of fields, including but not limited to graph algorithms, sparse computations, weather prediction, seismic imaging, genomics, molecular dynamics, quantum chemistry, and computational fluid dynamics. If you have a passion for science, a knack for solving complex problems, and thrive in a bleeding-edge multidisciplinary environment, we want to hear from you!
Requirements- US citizenship and eligibility to visit US government research facilities
- B.S. degree in a hard science, engineering, computer science, or a related field; M.S. or Ph.D. strongly preferred
- Hands-on experience with development applications in one or more HPC domains, particularly scientific applications that run at rack or system scale
- High level of proficiency in one of C/C++/Fortran and familiarity with the others
- Extensive experience with node level and distributed parallel programming models and a working understanding of OpenMP, MPI in particular
- Ability to measure application-level performance and profile HPC applications at the node level and at scale
- Willingness to travel as necessary
- Ability to work remotely and independently in a fast-paced environment with minimal direct supervision
Desired Skills:- Expertise in competitive performance analysis is strongly preferred
- CUDA or similar GPU kernel languages
- Hands-on experience with one or more AI/ML frameworks, such as pytorch
Responsibilities- Profile and identify bottlenecks of a wide range of HPC applications on different architectures
- Develop creative algorithmic and software solutions to solve bottlenecks and accelerate applications on a novel dataflow architecture
- Translate application requirements into software features and hardware requirements
- Develop performance models for future hardware architectures