HPC Software Engineer
Business Unit: Product Lifecycle Management-PLM
Requisition Number: 224521
Primary Location: United States-California-Cypress
Assignment Category: Full-time regular
Experience Level: Mid level
Education Required Level: Bachelor's Degree
Travel Required: 10%
Siemens is a global technology powerhouse that has stood for engineering excellence, innovation, quality, reliability and internationality for more than 165 years. As a global technology company, Siemens is rigorously leveraging the advantages that this setup provides. To tap business opportunities in both new and established markets, the Company is organized in nine Divisions: Power and Gas, Wind Power and Renewables, Energy Management, Building Technologies, Mobility, Digital Factory, Process Industries and Drives, Healthineers and Financial Services.
The Siemens Digital Factory Division offers a comprehensive portfolio of seamlessly integrated hardware, software and technology-based services in order to support manufacturing companies worldwide in enhancing the flexibility and efficiency of their manufacturing processes and reducing the time to market of their products.
For more information, please visit:
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.