2017-01-01 research

Graph Languages Research with Dr. Peter Kogge: Project Overview

For the Spring semester of 2017, I am thrilled to be working with the brilliant computer engineer, Professor Peter Kogge. Though our work together will not have a jaw-dropping description like "the first multithreaded computer and the first to fly in space!", it will sure feel like jaw-dropping research to me.

This work is being funded through a grant for Prof. Kogge's startup, Emu Technology. The work at Emu is centered on an Exascale-capable computing architecture, marketed to tackle Big data applications. The idea is incredible: instead of reading blocks of data across a network, Emu migrates the program context to the locale of the data accessed. And you don't have to worry about coherency messages, because there are no caches! Emu has little to no locality. Instead, it supports fully random access to individual words. The hope is that my research ties in nicely to some new work at Emu so that if I am able to intern at the company over the summer, I'll have had 4 months of training under my belt.

Here's a brief overview of my new project.

Final Goal

Demonstrate a graph processing system that can successfully execute simple but realistic graph algorithms.

Approximate List of Activities

  1. Become familiar with a few open-source graph languages
  2. Become familiar with some typical graph problems and algorithms
  3. Write benchmark problems in those languages
  4. Locate and use some sample graph data sets to do scaling experiments
  5. Choose the best-performing language and define a minimal subset that is rich enough to demonstrate interesting benchmarks
  6. Develop and interpreter for the subset and prove correctness by executing a benchmark
  7. Enhance the interpreter to add instrumentation, optimize performance, increase language features
  8. Develop a matching compiler