HPC Software Engineer- Advanced
Business Unit: Product Lifecycle Management-PLM
Requisition Number: 228616
Primary Location: United States-California-Cypress
Assignment Category: Full-time regular
Experience Level: Mid level
Education Required Level: Bachelor's Degree
Travel Required: 10%
In this position, you will act as a high performance computing (HPC) and computer science expert for NX Nastran developers throughout Siemens PL. You will be part of the Numerical Methods group, and report to the Software Engineering Manager for the Dynamics, Numerical Methods, and Development Operations Team. In this role, you will develop in-depth knowledge of the details of shared (SMP) and distributed (DMP) memory parallel processing in NX Nastran. You will become the expert regarding details of NX Nastran specific utilities that are critical to all of its functionality, including memory and I/O subsystems. The role involves maintaining the software packages and high-end hardware necessary for the Numerical Methods group to perform their role.
Your primary responsibilities will be to (1) consult with developers on parallel implementations of new features, improvements to existing parallel features, and fixes for problems in parallel computations; (2) consult on, and implement improvements to and extensions of, NX Nastran specific utilities, with specific attention to application performance, robustness, and maintainability; (3) maintain high-performance focused software packages and hardware deemed critical to application performance.
Specifically, as relates to item (3), you will help maintain an on-site, high performance Linux cluster. You will be responsible for the integration and testing of software packages related to graph partitioning and direct sparse linear solvers. Additionally, you will be expected to act as a vocal proponent of the use of proper programming practices in Modern Fortran, and to provide input on object-oriented design for future products.
• Build, compile, and debug complex Fortran code, both in-house and externally developed
• Provide guidance to developers on correct and efficient use of NX Nastran utilities in application code
• Provide guidance to developers on correct and efficient use of computational resources (memory, I/O buffering, threads, etc.) in application code
• Implement interfaces for new software packages deemed critical to NX Nastran performance, and maintain existing interfaces for same
• Maintenance, diagnostics, and Installation of necessary software packages on Linux Cluster hardware
Required Knowledge/Skills, Education, and Experience
B.Sc. in Computer Science or other computationally-focused area, with 2+ years of experience.
- Fortran 2003 fluency
- C++ proficiency
- Performance testing and tuning of numerical software
- Message Passing Interface (MPI)
- Experience with legacy Fortran code
- Knowledge of Software Development best practices
- Linux Cluster administration
- Numerical Linear Algebra (BLAS, LAPACK, sparse direct solvers)
- Team player
- Excellent English language communication skills
Preferred Knowledge/Skills, Education, and Experience
M.Sc. in Computer Science or other computationally-focused area, with 2+ years experience.
- Graph partitioning software (e.g. Metis)
- Linux Cluster hardware and software administration
- Windows Cluster administration
Some travel (up to 10% time) may be required initially, for more focused interactions with team members in Milford, OH.
Qualified Applicants must be legally authorized for employment in the Unites States. Qualified Applicants will not require employer sponsored work authorization now or in the future for employment in the United States.