Eric Holk

I am a Ph.D. candidate at Indiana University. My research
interests relate to designing and implementing programming
languages that facilitate the production of safer, more
reliable, and better performing software. I am part of the
Center for Research in Extreme
Scale Technologies (CREST).

Projects

Harlan

Harlan is a high level language for general purpose GPU
computing. It supports a full complement of functional
programming features that work seamlessly on both CPUs and
GPUs. For more information, see our OOPSLA
paper. The code for Harlan is available
at https://github.com/eholk/harlan.

GPU Graph Algorithms

In collaboration with the Software Engineering Institute at
Carnegie Mellon University, CREST is developing a library of
graph algorithms that effectively leverage GPU for performance
and scalability.

PXRT

The goal of this project is to
apply HPX in a
challenging real-time and power-constrained environment. We
are doing this by means of an autonomous quadcopter. This is
in connection with
CREST's Fabrication
Lab.

Elegant Weapons

Elegant
Weapons is an R6RS Scheme library for creating compilers
that generate C code. This project is used by
Harlan.

Rust

Rust is a new systems
language that is being developed by Mozilla. It features a
powerful type system, explicit control over garbage collection,
and safe communication primitives. I worked at Mozilla as an
intern during the summers of 2011 and 2012. My biggest
contributions were implementing the task system as well as
designing and implementing
the pipes
communication system.

Computational Photography

My advisor, Andrew
Lumsdaine, is interested in photography with plenoptic
cameras. These cameras capture directional information, which
enables things such as refocusing an image after the fact. I
have produced a web-based refocusing algorithm in WebGL. See
the live
demo!

Kanor

Kanor is a declarative language for specifying collective
communication patterns in MPI programs. See
our PADL paper for more information.