Brief Bio
I am currently a PhD student and a Cunningham Fellow at
Virginia Tech.
I graduated Magna Cum Laude from the University of South Carolina in
December 2008. I have been a member of the SCAPE Lab
since Fall '04, first at USC, now at Virginia Tech. In my spare time, I
rock climb religiously, mountain bike, backpack, and generally enjoy
the outdoors. I also play the guitar, banjo, and harmonica, often with
my bluegrass band the Soggy Biscuit
Boys.
Research Interests
My primary research interest lies in high performance computing,
especially large-scale scientific systems and codes. Here are some
specific research interests that I have.
Performance
-
The creation (both automagically and by hand) of
highly accurate
analytical models of parallel codes. Specifically, I'm interested in
the problem of automatically creating analytical models that are
machine-parameterized. This interest has been fueled in part by the
work of the PAL
group at Los Alamos and the work of the PERC group,
as well as the studies I have performed on large-scale codes, such as
POP and GYRO. I am currently involved in a project in this area.
-
The use of hardware performance counters to analyze
and
predict performance patterns at a fundamental level. I am currently
involved in projects in this area.
-
Benchmarking and performance measurement.
Systems
-
The creation of transparent methods of
self-adaptation for systems to
optimize over power, performance, thermal constraints, etc. By
leveraging emergent monitoring facilities (e.g. hardware performance
counters) and applying control-theoretic techniques, it may be possible
to create these adaptive control systems with both low overhead and
high accuracy. I find the work of Martonosi
et al particularly engaging. I am currently involved in a project in
this area.
-
Heterogeneous parallel and distributed systems.
Scheduling, transparent access, etc.
Misc.
-
Real-time graph drawing. I'd like to create a system
where even
large-scale graphs can be drawn in real-time, adapting to changes from
the user. I have a code I whipped together in a couple of nights that
can accomodate graphs of hundreds (but not thousands) of nodes. It uses
OpenGL and glut, and is available here
with a couple of sample graphs.
-
Genetic algorithms, especially their application to
non-traditional problems, and the theoretical basis for their
correctness.
-
Computational combinatorics, graph-theoretic stuff
especially. Fixed
parameter tractability, approximation algorithms, parallelization, etc.