New
C++ Software Engineer (GPU, OpenMP Experience)
TEKsystems | |
$55.00 - $70.00 / hr | |
life insurance, sick time, 401(k), retirement plan | |
United States, Colorado, Boulder | |
Feb 04, 2025 | |
*Description*
Position name: GPU and OpenMP optimization Position Title: Software Engineer III Lab/Prog and Group: UCAR/UCP/JCSDA Basic Function of Job: The Joint Center for Satellite Data Assimilation (JCSDA) is backed by the leading operational environmental forecasting centers in the US (NOAA, NASA, the US Navy, and the US Air Force) to improve the nation's capacity for Earth system prediction in the decades ahead, including the extreme weather events that are increasingly shaping our world. A key project under the JCSDA, the Joint Effort for Data assimilation Integration (JEDI) is an inter-agency effort aimed at developing a unified community data assimilation system that provides initial conditions for research and operational models in Earth system prediction. The JEDI system is a set of core C++ software packages implementing numerical algorithms for data assimilation, along with interfaces through which JEDI integrates with various Earth system forecasting models. The core code is nearly half a million lines of C++ code parallelized via MPI, with an emphasis on modularity and scalability. This design allows JEDI to run data assimilation experiments across a range of different scales, from testing on laptops to generation of operational forecast initial conditions on HPC or cloud resources. In this position, the successful candidate will join the JEDI Interfaces and Optimization team to work on several initiatives aimed at reducing the runtime of JEDI applications. These include offloading key software components (B-matrix, linear algebra) to run on GPU architectures, and using thread-parallelism and other optimizations to reduce JEDI runtime on CPU architectures. The candidate will collaborate with colleagues both at JCSDA and at its partner agencies to identify performance bottlenecks and project requirements; to design and implement solutions within JEDI and its underlying open-source libraries; to test and validate these optimizations. These optimizations will prepare JEDI for transition to operational use by partner agencies, and will enable JEDI to push the boundaries of the state-of-the-art in data assimilation. The ideal candidate excels in gathering system requirements and performance measurements, then using these to guide the design and implementation of efficient, easily maintainable code. They have experience in OpenMP-based GPU programming and optimization of numerical algorithms. Finally, they have experience working with scientific code on HPC/cloud resources, have experience with collaborative development of large codebases, and have excellent communication skills. Duties: % of Time Participate in the design and implementation of OpenMP-based GPU offload of specific JEDI components, and in underlying open-source libraries. Iterate with the JCSDA team and stakeholders to benchmark and optimize these developments. Improve JEDI computational efficiency through improved parallelism and optimization. Implement thread-parallelism (OpenMP) so science applications can fully utilize available resources. Investigate optimizations from reducing memory footprint, from vectorizing computations, or from using alternative algorithms and numerical methods.80 20 The above statements describe the primary work being performed. Additional tasks may be assigned from time to time. Supervision Responsibilities: None KNOWLEDGE/SKILLS/ABILITIES Required knowledge, skills, and abilities: *Experience with directive-based GPU programming frameworks such as OpenMP, OpenACC; including porting numerical algorithms to run on GPUs and optimizing for GPU performance. *Experience in parallel programming via MPI or threading *Expert skill in C++ *Skill with code optimization for high performance computing systems; including in the use of debugging and optimization tools such as Vtune, Totalview, DDT, MAP, or equivalents *Excellent oral and written communication skills with an emphasis in technical communication; ability to communicate with software engineers and scientists *Ability to work well within a diverse, international, and multidisciplinary team *Knowledge of modern software engineering practices (source code management, continuous integration, issue tracking, agile software development) Desired, but not required: *Experience designing or refactoring complex software applications *Strong mathematical, numerical algorithms, or scientific programming background *Experience with Fortran 90 *Knowledge of computational science methods used in Earth system science or related disciplines EDUCATION & EXPERIENCE Bachelor's degree in computer-related field and extensive and progressive relevant experience, which is typically gained by eight to twelve years of experience; or equivalent combination of education and experience. *Skills* c++, software engineering, engineering, C++ programming, GPU, OpenMP, MPI, Parallel Programming, threading, thread-based parallelism, OpenACC, fortran, software development, git *Top Skills Details* c++,software engineering,engineering,C++ programming,GPU,OpenMP,MPI,Parallel Programming,threading,thread-based parallelism,OpenACC *Additional Skills & Qualifications* -8 month contract to help them deliver on one of their sponsor partners request. Run part of their code on GPU as opposed to CPU. Take the existing code (written for CPUs) and offload/rewrite the code for GPUs using OpenMP method (or they would be open to OpenACC) - They also hope they can utilize this person to help with other improvements across their code base with OpenMP or OpenACC *Experience Level* Entry Level *Pay and Benefits* The pay range for this position is $55.00 - $70.00/hr. Eligibility requirements apply to some benefits and may depend on your job classification and length of employment. Benefits are subject to change and may be subject to specific elections, plan, or program terms. If eligible, the benefits available for this temporary role may include the following: * Medical, dental & vision * Critical Illness, Accident, and Hospital * 401(k) Retirement Plan - Pre-tax and Roth post-tax contributions available * Life Insurance (Voluntary Life & AD&D for the employee and dependents) * Short and long-term disability * Health Spending Account (HSA) * Transportation benefits * Employee Assistance Program * Time Off/Leave (PTO, Vacation or Sick Leave) *Workplace Type* This is a hybrid position in Boulder,CO. *Application Deadline* This position is anticipated to close on Feb 17, 2025. About TEKsystems: We're partners in transformation. We help clients activate ideas and solutions to take advantage of a new world of opportunity. We are a team of 80,000 strong, working with over 6,000 clients, including 80% of the Fortune 500, across North America, Europe and Asia. As an industry leader in Full-Stack Technology Services, Talent Services, and real-world application, we work with progressive leaders to drive change. That's the power of true partnership. TEKsystems is an Allegis Group company. The company is an equal opportunity employer and will consider all applications without regards to race, sex, age, color, religion, national origin, veteran status, disability, sexual orientation, gender identity, genetic information or any characteristic protected by law. |