Electrical and Computer Engineering
University of British Columbia
craigm@ece.ubc.ca
Last updated: Mon Apr 05 2021 10:16:15 GMT-0700 (Pacific Daylight Time)
I'm looking for a job! I am graduating in Fall 2020. Reach out!
Hi there! I'm a final-year PhD student, supervised by Alexandra (Sasha) Fedorova at the University of British Columbia. My research interests revolve around data analytics systems, compilers, and computer architecture, and how they can be made to work together to do useful things for people. But, you might also catch me performing a qualitative study. :)
I transferred to UBC, along with Sasha, in Fall 2016. At UBC, I also work with Ivan Beschastnikh and members of the NSS Lab. Before, I was at Simon Fraser University, where I got my bachelors (2007-2011), and worked on a masters (2011-2013) before transferring to their PhD program.
I have significant experience outside of academia. I worked at Oracle Labs for two years (2015-2016) on the RAPID Project [1,2,3] where I worked on the C/C++ compiler for the DPU instruction set, improved project-wide performance analysis tools, and wrote a highly efficient JSON parser and other workloads. Prior to Oracle, I interned at ST-Microelectronics (Summer 2013) as part of my Master's work, where I developed software for emerging scratchpad memory architectures, such as software caches and map-reduce frameworks. Before starting my bachelors, I co-founded a company that built easy to use content management systems.
My PhD thesis presented Jumpgate and KeyChain, two techniques that draw on compilation techniques to improve performance of data analytics.
ThesisNetwork Function (NF) throughput is bounded by network link capacity, but that capacity is wasted by unexamined packet payload. This paper explores using a programmable switch to temporarily hold unexamined packet data to improve link goodput and improve NF performance.
PaperThe increased storage bandwidth of Storage Class Memories (e.g., NVRAM) means software will become the bottleneck when reading from storage. To help offset this bottleneck, this paper advocates for adding processors to SCM that scale with storage capacity.
PaperTo enable data analytics systems to benefit from in-network processing, this paper proposes to offer in-network processing as a service.
Paper SlidesA low overhead and effective technique to identify equivalent computations in user-defined functions of data processing systems. Awarded Best Paper.
Paper Slides