Colleagues of mine at Lawrence Livermore National Laboratory (LLNL), having seen the advantages of working closely with LLVM, have decided to toss their hat into the ring and would like to hire an LLVM-focused compiler engineer. I collaborate with LLNL regularly, and I'm excited that they're taking this step. I expect that a qualified applicant will find this position both challenging and rewarding, and I'd be remiss if I did not mention that LLNL has some of the largest supercomputers in the world (with more to come: https://www.llnl.gov/news/next-generation-supercomputer-coming-lab). LLNL runs a variety of codes on their HPC systems from a variety of science domains, is transitioning as many of them as possible to very modern C++, and cares deeply about performance. LLNL is in Livermore, CA (which is on the edge of the San Francisco Bay area).
The job posting: http://bit.ly/llnl-job-13027
LLNL's terminology may not make this obvious, but this posting permits hiring an experienced developer into an advanced job category, as well as for hiring someone newly graduated.
Please share this with anyone you feel might be interested.
Now for the official text...
Job Title: High Performance Computing (HPC) Compiler and Tool Developer
Job ID: 13027
Jobcode Desc: Science & Engineering MTS 3 (SES.3) / Science & Engineering MTS 4 (SES.4)
NATURE AND SCOPE OF JOB
As a member of the Development Environment Group in the Livermore Computing (LC) supercomputing center, will work as a software developer specializing in compilers and application development tools for supporting High Performance Computing (HPC). Will work with scientific computing teams, the open source software community, and HPC vendor partners on the development of enabling technologies for the state-of-the-art platforms currently in use and under procurement. The working environment is challenging and team oriented. LC is one of the largest supercomputer centers in the world, offering resources and services to employees and collaborators for scientific research and computation. Customers include scientists from the three National Nuclear Security Administration labs, other government, academia, and private industry. Selected candidate is expected to apply expert knowledge of HPC systems and software to enhance and improve the development environment. Will report to the Group Leader of the LC Development Environment Group. Additional information about LC can be found on the web at https://computing.llnl.gov.
IN ADDITION AT THE SES.4 LEVEL
Will additionally set broad research/project vision and strategy to address challenges inherent in HPC computing at the level of Exascale performance. Will direct activities of projects with the latitude to pursue a course of action essential to obtain desired outcomes. Will represent the Laboratory’s interests on standard committees that define the programming languages and components that support HPC application development, using advanced knowledge.
- Lead the development of LLVM compiler infrastructure-based tools as well as enhancements to LLVM, Clang, and open source projects in collaboration with DOE colleagues.
- Independently evaluate, analyze, implement, and benchmark performance optimizations on advanced architectures including BlueGene/Q.
- Provide prime technical support of compilers – isolating, reporting, and fixing compiler-related bugs in complex HPC applications running on LC systems on multiple networks.
- Evaluate vendor solutions for compiler and toolchain-related topics, and deploy proposed solutions on LC systems.
- Investigate, diagnose, and resolve complex software issues, which may involve interacting with LC staff members with different areas of expertise, vendors, and customers.
- Provide software quality assurance (SQA) to ensure a stable software computing environment.
- Set direction in compiler area and engage other developers and staff members frequently to share relevant knowledge and recommendations.
- Perform all assignments in accordance with ES&H, security, and business practice requirements and policies.
IN ADDITION AT THE SES.4 LEVEL
- Represent the Laboratory’s interests on standard committees that define the programming languages and components that support HPC application development, using advanced knowledge.
- Set broad research/project vision and strategy to address challenges inherent in HPC computing at the level of Exascale performance.
- Direct activities of projects with the latitude to pursue a course of action essential to obtain desired outcomes.
ESSENTIAL SKILLS, KNOWLEDGE AND ABILITIES
- B.S. in Computer Science, or related field, or equivalent level of demonstrated knowledge.
- Experience with compiler and toolchain development, including intermediate representations, machine-independent and machine-dependent optimizations, and code generation; experience with LLVM is preferred.
- Significant experience with C++, including the use of templates.
- Demonstrated advanced knowledge of instruction sets and computer architectures, including pipeline structure and hazards, and cache and memory hierarchies.
- Advanced knowledge of the language semantics of one of the following: C, C++, Fortran.
- Significant experience with and demonstrated advanced knowledge of UNIX/Linux, compiled programming languages, and script programming languages (Python, shell).
- Experience working with, and contributing to, open-source programming projects.
- Demonstrated advanced knowledge and application of structured software engineering and SQA practices.
- Demonstrated effective analytical and problem-solving skills to contribute to creative solutions to complex problems.
- Significant experience working effectively in a dynamic, multi-disciplinary environment with competing priorities.
- Advanced verbal and written communication skills necessary to effectively collaborate in a team environment and present and explain technical information and provide advice to management.
- Ability to occasionally travel for meetings, training, and conferences.
IN ADDITION AT THE SES.4 LEVEL
- Expert knowledge and significant experience in compiler and toolchain development.
- Expert knowledge and significant experience in the development of programming models and new programming language standards.
- Demonstrated ability to provide innovative solutions to broadly defined tasks and problems.
- Significant, in-depth, and current experience using HPC systems and tools, and knowledge of node-level and distributed parallel programming models and techniques.
- Expert verbal and written communication skills necessary to effectively collaborate in a team environment and present and explain technical information to customers, managers, and external colleagues.
DESIRED SKILLS, KNOWLEDGE AND ABILITIES
- MS/PhD. in Computer Science, or related field.
- Experience with assembly languages, especially x86_64 and/or PowerPC.
- Experience with high-performance computing and scientific code development.
- Current and in-depth experience using HPC systems and tools, and knowledge of node-level and distributed parallel programming models and techniques.
- Experience with development of software tools for debugging, code-correctness, or performance analysis using compiler technology infrastructure such as LLVM.
- Experience with code optimization, using profiling and performance monitoring tools and techniques.
- Familiarity with GPGPU programming, OpenMP, CUDA, OpenACC
- Experience with MPI programming.
- Advanced knowledge and experience in the development of programming models, new language standards and their runtimes (e.g., OpenMP runtime libraries).
Pre-Placement Medical Exam: None required.
Pre-Employment Drug Test: External applicant(s) selected for this position will be required to pass a post-offer, pre-employment drug test.
Anticipated Clearance Level: Q (Position will be cleared to this level). Applicants selected will be subject to a Federal background investigation and must meet eligibility requirements for access to classified information or matter. In addition, all L or Q cleared employees are subject to random drug testing. If you hold multiple citizenships (U.S. and another country), you may be required to renounce your non-U.S. citizenship before a DOE L or Q clearance will be processed/granted.
LLNL is an affirmative action/ equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, marital status, national origin, ancestry, sex, sexual orientation, disability, medical condition, protected veteran status, age, citizenship, or any other characteristic protected by law.