HPC Engineer

  • Corning
  • US - NY - Corning
  • 4 days ago

Company Name: Corning

Location: Corning, NY, US - 14831

Job Duration: 2021-04-08 to 2021-05-08

Overview

Requisition Number: 43594

 

Corning is one of the world’s leading innovators in materials science. For more than 160 years, Corning has applied its unparalleled expertise in specialty glass, ceramics, and optical physics to develop products that have created new industries and transformed people’s lives.

At Corning, our growth is fueled by a commitment to innovation. We succeed through sustained investment in research & development, a unique combination of material and process innovation, and close collaboration with customers to solve tough technology challenges. We are a four-time National Medal of Technology winner thanks to our technology leadership and R&D environment, which attract and enable the best scientific minds in the world. This pipeline of talent has brought life-changing innovation to your fingertips for more than 160 years.

 

SCOPE/PURPOSE OF POSITION:

As an HPC Consultant you will be a member of Corning’s Scientific Computing team supporting the development and use of scientific software on our HPC Clusters. The ideal candidate will be an experienced C, C++, Python, Fortran developer with experience using parallel programming technologies (OpenMP, MPI, CUDA) and familiarity with software engineering and containerized delivery. You will work closely with HPC System Engineers and developers, and with Corning’s Modeling and Machine Learning community to identify and provide solutions and technical support that enable Modeling and Scientific Computing objectives to be met.

 

ROLES AND RESPONSIBILITIES:

• Research, install, configure, maintain, and optimize commercial and open source scientific software for use on HPC clusters

• Consult with scientists and engineers to identify, model, and automate complex scientific processes using commercial and open source software

• Develop software for HPC environments, with consideration of requirements such as efficient use of memory, storage, and network resources, scalability, and parallel execution.

• Develop, modify, and apply computer modeling and programming applications to analyze and solve mathematical and scientific problems

• Develop or enhance scientific code solutions to run optimally in our HPC environment

• Perform application profiling for resource consumption, efficiency, and scaling characteristics both within and across nodes of parallel system.

• Recommend and implement techniques to optimize tool/model performance in the HPC environment

• Develops and maintains technical documentation for customer use

• Respond to user requests for support/assistance

• Recommend and implement suggestions for improving documentation and software development process standards.

• Recommend new technologies and processes for complex software projects.

• Characterize the performance of a variety of HPC and ML workloads

• Assist in maintaining and managing internal HPC/ML clusters

• Research and diagnose software build, execution, and performance problems quickly and effectively

• Coordinate with vendors to understand best practice use of software and apply them and train other users of the application

• Develop and present training for new software or HPC capabilities being deployed

• Work independently and collaboratively within project teams

• Builds relationships that foster collaboration and partnerships to drive better services for the technology community

 

EDUCATION REQUIREMENTS

• PhD in Computational Science, Mathematics, or Computer Science with a strong science background

WORK EXPERIENCE

• Minimum of 5 years of relevant experience in a large, distributed computing environment

• Profiling and optimizing complex scientific code and applications

• Experience in compiling and installing open-source Linux HPC applications

 

REQUIRED SKILLS

• Strong skills and experience developing with standard programming languages used in scientific high performance computing (e.g. FORTRAN, C/C++, Python, Matlab), and libraries (e.g., MPI)

• Experience programming for GPUs, optimally for both compute and visualization tasks.

• Experience with performance benchmarking using profilers and debuggers to recommend code improvements for scalability and performance.

• Proven working experience in developing, configuring, and troubleshooting applications for UNIX /Linux based environments

• Solid understanding of High Performance Computing (HPC) environment and related technologies

• Experience with HPC and parallel programming concepts and techniques (e.g. MPI, OpenMP, OpenACC, CUDA)

• Experience in writing, porting, debugging, analyzing, and optimizing parallel programs

• Solid understanding of the software development process including requirements, use cases, design, coding, documentation and testing of scalable, distributed applications in a Linux environment

• Strong understanding of core network technologies and concepts.

• Self-motivated and eager to learn new technologies, including open-source and commercial

• Positive customer service attitude and strong oral and written communication skills

• Excellent troubleshooting and problem-solving skills

• Adaptable and able to work well in a group environment • Ability to work well with ambiguous requirements and adapt to change quickly

 

DESIRED SKILLS

• Experience working in a research focused IT environment

• Experience with HPC schedulers and resource managers such Slurm Workload Manager, Sun Grid Engine or equivalent.

• Experience with utilization of cluster-based and container-based modeling and simulation packages in HPC environments.

• Knowledge of containerization platforms and technologies such as Singularity and Kubernetes

• Experience with revision control software (git preferred)

• Experience with a variety of build/install tools (e.g. CMake, Makefile, autoconf)

• Demonstrated project development and leadership skills.

• Familiarity with the latest in Machine Learning / Artificial Intelligence frameworks such as TensorFlow, Keras, Pytorch, Scikit-learn, etc.

• Familiarity with Linux kernel and OS tuning is a plus • Experience with Linux system administration is a plus

We prohibit discrimination on the basis of  race, color, gender, age, religion, national origin, sexual orientation, gender identity or expression, disability, or veteran status or any other legally protected status.

We will ensure that individuals with disabilities are provided reasonable accommodation to participate in the job application or interview process, to perform essential job functions, and to receive other benefits and privileges of employment. Please contact us to request accommodation.