We are looking for an experienced 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 in one or more HPC application domains
- Hands-on experience with one or more AI/ML frameworks, such as pytorch
- Proficiency in C/C++ and/or Fortran
- Ability to measure application-level performance and profile HPC applications at the node level and at scale
- Working understanding of OpenMP, MPI, and related parallel programming models
- Expertise in competitive performance analysis is strongly preferred
- Willingness to travel as necessary
- Ability to work remotely and independently in a fast-paced environment with minimal direct supervision
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