Developing software infrastructure for High Performance Computing (HPC) systems.
Design groundbreaking distributed applications for high efficiency algorithms processing.
Perform detailed timing and work-flow analysis.
Writing high-throughput, efficient and robust code, with automated test capabilities.
Qualifications, but not limited to:
Expertise in C/C++, Linux Development, Performance Engineering.
Hands-on Experience in Application/System Profiling Utilities like vTune, Nvidia Nsight, Linux native utilities
Good debugging skills in using gdb and Linux system utilities to solve timing critical distributed applications.
Use object-oriented principles and design patterns to develop fault-tolerant and extendable software
Good knowledge on HPC system components - including CPU/GPU architecture, scalable/distributed storage, high-bandwidth inter-connects, and cloud-based computing architectures
Preferred Qualifications:
Proficiency in writing scripts and utilities in bash, Python
Solid Understanding of parallel programming; MPI, SLURM, OPENMP, UCX etc
Understanding and working knowledge of –
Linux OS and Kernel capabilities
Deep-Learning and Machine-Learning stacks and workflow.
Containers (Docker/Singularity) to package software services
Networking fundamentals.
Minimum Qualifications
Master's Level Degree and 1 to 3 years related work experience; Bachelor's Level Degree and related work experience of 3 to 5 years