GPU computing is gaining in popularity as the path forward for High Performance Computing (HPC), machine learning and artificial intelligence, bitcoin mining, autonomous vehicles, and datacenters. Geomechanica has taken advantage of the dawn of GPU computing and has developed state-of-the-art simulation software for civil, mining, and petroleum engineering applications. At the core of the package is the Irazu computational engine, a parallel GPU-based software implemented using the CUDA platform under both MS Windows and Linux operating systems. The purpose of this internship is to assist Geomechanica in extending the features of our code base, improving performance, and adding support for multi-GPU execution.
Responsibilities
- Implementing new physics formulations from a mathematical model to optimized GPU code
- Participating in research and implementation of a multi-GPU version of our code that could scale efficiently for up to 8 GPUs in a single node
- Profiling the code performance after each major development, proposing more efficient algorithms, and corresponding implementation
- Testing and debugging the implementation using the automated testing frameworks developed at Geomechanica
Requirements
- Excellent computer programming skills, familiarity with object-oriented programming, inheritance, and other related concepts
- Knowledge and experience of C and/or C++. Prior parallel programming/OpenCL/CUDA experience is highly valued. Experience with C++ is a must
- Ability to work independently and as part of a team
- Familiarity with version control software
- Familiarity with Windows and Linux software development
Preferred desciplines
- Computering engineering/science
- Electrical engineering
- Engineering science (Electrical and Computer)