My Portrait

Michael B. Driscoll

I'm a graduate student in the Computer Science Division at UC Berkeley. I'm advised by Kathy Yelick and Armando Fox.

Subdivision Surface Evaluation as Sparse Matrix-Vector Multiplication

Michael B. Driscoll


UPC++: A PGAS Extension for C++

Yili Zheng, Amir Kamil, Michael B. Driscoll, Hongzhang Shan, Katherine Yelick


A Feasibility Study using Image-based Parallel Modeling for Treatment Planning

Amanda Randles, Michael B. Driscoll, Erik Draeger, and Franziska Michor


A Communication-Optimal N-Body Algorithm for Direct Interactions

Michael Driscoll, Evangelos Georganas, Penporn Koanantakool, Edgar Solomonik, and Katherine Yelick


PyCASP: Scalable Multimedia Content Analysis on Parallel Platforms Using Python

Ekaterina Gonina, Gerald Friedland, Eric Battenberg, Penporn Koanantakool, Evangelos Georganas, and Michael Driscoll


PyGAS: A Partitioned Global Address Space Extension for Python

Michael Driscoll, Amir Kamil, Yili Zheng, Shoaib Kamil, and Katherine Yelick


CS 267: Applications of Parallel Computers, Spring 2013

Fall 2011 CS262A: Advanced Topics in Computer Systems Prof. E. Brewer Report (PDF)
CS294: Vectorizing Compilers Dr. R. Allen
Spring 2012 CS267: Applications of Parallel ComputersProf. J. Demmel Paper (PDF)
CS270: Combinatorial Algorithms and Data StructuresProf. S. Rao
Fall 2012 CS284: Computer-Aided Geometric DesignProf. C. Séquin
CS294: Program SynthesisProf. R. Bodik Report (PDF)
Spring 2013 CS283: Graduate Computer GraphicsProf. R. Ramamoorthi
Fall 2013 CS294: Parallel Programming LanguagesProf. K. Yelick
Fall 2014 Math 221: Advanced Matrix ComputationsProf. J. Demmel Report (PDF)
CNM 190a: Advanced Digital AnimationProf. D. Garcia
Spring 2015 CNM 190b: Advanced Digital AnimationProf. D. Garcia Video (pw: Nightmare)
Spring 2016 BioE 265: Principles of MRIProf. M. Lustig

pycl: Python Bindings for OpenCL

We maintain a fork of the pycl library which provides access to the OpenCL API from Python.

ctree: A Library for Building eDSL Compilers

Ctree provides support for building high-performance DSLs embedded in Python.

PyGAS: A Partitioned Global Address Space Extension to Python

PyGAS is a Python extension module that provides a shared-memory abstract for distributed, SPMD programs. The module represents the core functionality upon which higher-level libraries can be implemented, i.e. distributed array packages, graph abstractions, etc. More information can be found in our short paper. PyGAS is currently under active development and APIs may change rapidly.

OpenSubdiv with SpMV Kernels

In a forthcoming paper, we cast subdivision surface evaluation as sparse matrix-vector multiplication (SpMV). We use Pixar's OpenSubdiv as an implementation vehicle and implement our kernels using high-performance linear algebra libraries.

Logical Indexing Library

Complex memory layouts like Z-Morton curves aid performance but hinder productivity. To bridge the gap, the Logical Indexing Library reads layout descriptors and generates expressions that map from a simple, 2D space into the complex layout.