Research Positions

Overview

We are engaged in the design and development of parallel programming models that will make it possible for Computational Science and Big Data applications to execute on the fastest machines on the planet. We are looking for enthusiastic Computer Science and Applied Mathematics graduate students to join our research team and help create productive programming environments that will be deployed on future large computing systems.

The successful candidates will perform research within one or more funded research projects related to the development and use of novel parallel programming models in the Institute for Advanced Computational Science as members of Prof. Barbara Chapman’s research group.


PROJECT: Machine Learning Support for Deploying Programs Across Heterogeneous Computers

Today, many scientific application developers are adapting their codes to exploit all the compute resources of so-called heterogeneous systems to solve large problems. In these systems, multicore CPUs may be used together with one or more accelerator devices, such as GPUs, TPUs and FPGAs, to execute a program. One of the most common ways to do so is to insert OpenMP pragmas into a sequential program to describe what code should execute on a device, and how parallelism in the code should be exploited. Yet it is time-consuming to manually adapt programs to run on systems with attached accelerators, and if a program is to be deployed on multiple different platforms, this process may need to be repeated.

In a new NSF-funded project “Performance Portable Parallel Programming On Extremely Heterogeneous Systems (P4EHS)”, we seek to make it easier to use these powerful computers by applying Machine Learning techniques to identify and extract code regions (kernels) that are suitable for execution on a given device. The resulting output program, which may include target device and target data information, will be expressed using features of OpenMP. We seek two motivated graduate students who will work with us to explore ML approaches in this context and identify strategies for optimizing the initial output of the ML model. We will also develop OpenMP extensions, as necessary, to express computations that may use multiple attached accelerator devices simultaneously. Finally, we will build the runtime support necessary to manage and potentially dynamically adapt a program that is deployed across such a system.

Prerequisites:

  • Solid C/C++
  • Understanding of python
  • Undergraduate or graduate AI course
  • Undergraduate or graduate compiler-related course

Desirable:

  • LLVM experience
  • Working knowledge of any compiler framework
  • Parallel Programming experience
  • Software engineering courses
  • Understanding of GPU architecture and programming is plus

How to apply:

Submit a current résumé/CV and list of relevant courses taken as well as any additional information you feel is relevant to:
Dr. Barbara Chapman (barbara.chapman@stonybrook.edu) and Dr. Abid Malik (amalik@bnl.gov)