The HPC Software Scientist will obtain, build, profile, modify, debug , and benchmark the GROMACS and other open-source High-Performance Computing (HPC) codes used for computational chemistry. These are large codes written by others, so the ability to work with software through its documentation and by reading the code is essential. The codes will be run on NSCC supercomputers , not individual personal computers.
Building the code will require skill with makefiles. Profiling the code involves knowledge of timers and parallel profiling tools. Modification will be to replace parts of the codes with routines that make use of Next-Generation Arithmetic functions developed by others in the ProNGA group (see www .posithub.org for more information). Debugging involves not just the removal of logic errors, but also testing for accuracy. Benchmarking similarly involves both timing of the modified HPC codes but also measuring the accuracy of the output. Changes to the codes should not require the users of the code to change how they submit jobs . Benchmarking will require the obtaining of representative workload examples , using NSCC actual workloads.
- MS or PhD in Applied Mathematics,Computer Science, Engineering, Chemistry,or Physics, Any technical post-grad degree that involved hands-on construction of high-performance parallel computing code
- 2+ years of experience building and modifying large technical codes written by others
- C proficiency required; C++ and Fortran familiarity desirable. Familiarity with MPI and basic principles of parallel programming. Experience with large makefiles,debugging tools, and profiling tools.
- Knowledge of computational chemistry is desirable but not essential