Who We Are?
Our business is supercomputing. We’ve been developing, building and supporting highly advanced computing solutions for the world’s most complex science, engineering and analytics challenges since 1976. We pride ourselves on understanding the problems our customers are trying to solve and developing the technologies that enable them to make the discoveries that better our world.
We are proud to be an Equal Opportunity Employer including women, minorities, protected veterans, and individuals with disabilities. CRAY Inc. is an Affirmative Action, Equal Opportunity Employer.
Who You Are?
You are a dynamic, driven professional with a passion for success – yours, your company’s and your customer’s.
Who We Need?
Cray is seeking a motivated and skilled software engineer with experience in the HPC community to join its team in advancing the state of the art in Cray’s performance analysis tools targeted for optimization of scientific applications on our current and future supercomputers. The team is responsible for software that performs application instrumentation, performance data measurement, analysis and presentation. We focus on production quality profiling capability that helps users identify key performance issues, particularly at large scale (hundreds of thousands of cores), while offering both a simple usage model, as well as a wealth of capability to discover key performance issues in HPC application. The tools work on a variety of processors including X86 (Intel and AMD), ARM, and GPUs (NVIDIA and AMD). They need to function with different compilers (Cray, Intel, NVIDIA, GCC, Arm and AMD), support MPI and PGAS across multiple interconnects (Cray custom, Intel OPA, IB, etc.), and support the common programming models in the HPC community (MPI, PGAS, OpenMP, SHMEM and CUDA).
The engineer in this position will maintain existing functionality and add new functionality through the multiple phases (instrumentation, measurement, analysis and presentation) of the toolset. Areas of work include advancing our GPU profiling capability to support larger and more complex applications and workflows, supporting a wider variety of GPU architectures, and identifying innovative analysis and insight into application inefficiencies. He or she must be capable of all phases of feature development (design, implementation, unit testing, tuning and maintenance), able to work closely with others in the team to create seamless functionality across the various components, and motivated to step in and help in any area of the tool development process when needed.
Key Qualifications include:
• BS in Computer Engineering or related field. Advanced degrees are welcome
• Background in high performance computing (HPC) architectures, including multiprocessors, distributed memory systems, GPU accelerators, distributed memory MPI and shared memory OpenMP is highly desired
• Experience programming for GPUs using CUDA and OpenMP target
• Expertise with several of the following programming tools, and the ability to quickly learn others: MPI, Compilers (Fortran, C, C++), OpenMP, OpenMP target for accelerators, CUDA, HIP, Python and other scripting languages, Linux, Application performance profiling tools and debugging tools
• Proficient in C, C++ and scripting languages (bash, python)
• Proficient in parallel programming (threads)
• Experience working with Git and Jira
• Keen analytical skills and problem-solving ability
• Excellent organizational and collaborative skills, with strong verbal and written communication
• The willingness and ability to recognize and address issues encountered when working with leading edge technology, and to in a fast-paced challenging environment
*Please note that Cray does not use Google Hangouts for any interviews.
As part of our standard hiring process for new employees, employment with CRAY will be contingent upon successful completion of a comprehensive background check.