Description
Description
SAIC is seeking a Python Programmer to support our customer, NOAA GFDL, in Princeton, New Jersey.
The Flexible Modeling System (FMS) is the Earth System Modeling (ESM) framework used at GFDL. The framework supports the multi-physics model components (e.g. atmosphere dynamical core, atmospheric physics, ocean dynamical core and physics, land model, ice model, etc). The FMS core is written primarily in modern Fortran with some elements in C and C++. The core supplies various services that enable grid based domain decomposition, MPI and OpenMP based inter-processor communication, parallel I/O, model diagnostics generation, etc. Importantly, various grids are employed within a single model across the model component space (e.g. “cubed-sphere” for the atmosphere and “tripolar” for the ocean). A recent engagement with the Allen Institute for Artificial Intelligence (AI2) demonstrated the capabilities of utilizing the GridTools for Python (GT4Py) domain specific language to run GFDL's FV3 dynamical core and associated atmospheric physical parameterizations on GPU-accelerated supercomputers (Pace model). As of the time of publication of this paper, Pace on a GPU performed about 4x faster than the native Fortran version running on CPUs. The work to date has focused solely on GPU performance and Pace on CPUs runs at about 25% of the natively-coded version in Fortran.
The Python Programmer'sresponsibilities include, but are not limited to:
- Continue AI2's groundbreaking work in three key areas:
- Integration of the FMS core infrastructure into the GT4Py ecosystem
- Analyze and improve the performance of the GT4Py x86 code generator
- Integrating new backend capabilities, such as Kokkos or MLIR and perhaps LLVM, into the GT4Py ecosystem
- Utilize Python programming for the development of scientific application
- Performance optimization for high-performance computing architectures
- GPU programming
Qualifications
- Bachelor's degree in computer science, Information Systems, Engineering, Business or other related scientific or technical discipline with 0-2 years of related experience. Experience will be accepted in lieu of degree.
- Ability to obtain and maintain a Public Trust clearance which requires US Citizenship
- Two years of experience in Systems Engineering or Programming
- Significant Experience with Python Programming language
- Experience with GPU programming, HPC architecture, and compilers
- Experience with version control tools, such as git
- Support the investigation and debugging of incidents, installation, modification or manipulation of code
Desirable Skills:
- Knowledge of any of the following is also beneficial:
- C++
- Fortran
- Object-Oriented Python Programming
- Kokkos Performance Portability Library
- DaCe - Data-Centric Parallel Programming Framework
- DaCe - Data-Centric Parallel Programming Framework
Target salary range: $40,001 - $80,000. The estimate displayed represents the typical salary range for this position based on experience and other factors.
Apply on company website