SLAC National Accelerator Laboratory
Improving High-level High Performance Computing in the Regent Programming Language
Lawrence Roy, Oregon State University
Practicum Year: 2019
Practicum Supervisor: Elliott Slaughter, Associate Staff Scientist, Computer Science Research Department, SLAC, SLAC National Accelerator Laboratory
Regent is a parallel programming language developed for the Legion high performance computing system. It uses a type system to allow efficient placement of distributed memory regions. However, regions currently are not treated as first-class values, as they cannot be assigned, returned, or stored on the heap while maintaining the permissions used to access them. The goal of the project was to make high level programming in Regent easier by bringing regions closer to being first-class. I added a type system for handling region assignments, together with a data-flow analysis to infer these types automatically, and extended the code generation pass with with this capability. I also made a type system and type inference for functions returning regions. These features can help Regent programmers write more readable and reusable functions.
Implementation of GPGPU-based algorithms for tensor hypercontraction
Helena Qi, Massachusetts Institute of Technology
Practicum Year: 2017
Practicum Supervisor: Todd Martinez, Professor, Chemistry, SLAC National Accelerator Laboratory
Tensor hypercontraction (THC) reduces the scaling of second order Moller-Plesset perturbation theory (MP2) from O(N^5) to O(N^4). Previously, THC-MP2 has previously been implemented with a mixed GPU and CPU algorithm. In this implementation, data must move back and forth, leading to a memory transfer cost, and operations on the CPU may be memory bound. The goal of my project was to develop and implement a fully GPU based algorithm.
Re-Sampling Observed Supernova/Host Galaxy Populations Using an XD Gaussian Mixture Model
Thomas Holoien, Ohio State University
Practicum Year: 2016
Practicum Supervisor: Risa Wechsler, Associate Professor, Particle Physics & Astrophysics, SLAC National Accelerator Laboratory
For my practicum I worked with researchers at SLAC National Laboratory to build new open-source software to improve supernovae in simulated data for the upcoming Large Synoptic Survey Telescope (LSST). Our goal was to build a tool that could use existing catalogs of observed supernova and host galaxy properties to predict realistic supernova properties for a given set of host parameters. This resulted in two new pieces of software. One, called XDGMM, allows the user to perform Extreme Deconvolution Gaussian Mixture Modeling (XDGMM), a method of density estimation using Gaussian mixtures for noisy or incomplete data. XDGMM is generalized to be applicable to many types of problems, not just our specific goals, and implements machine learning algorithms and conditioning methods that are not available in other XDGMM implementations. The second piece of software, EmpiriciSN, is an application of XDGMM for predicting supernova properties. We built a default model using over 1400 supernova-host pairs from the Sloan Digital Sky Survey (SDSS) and Supernova Legacy Survey (SNLS), and EmpiriciSN is now being implemented to sample more realistic supernovae for the simulated galaxy catalogs being built to test the LSST pipeline. As a result of our work, we can better train the LSST data reduction pipeline prior to the survey going live in 2019.