Graduate STEM Fellow Profile
College/University: University of Colorado Boulder
Research Advisor: Dirk Grunwald
Degree Sought: Ph.D., Computer Science
Department: Department of Computer Science
Research Focus: Operating Systems, Parallel Computing, and Programming Languages
Teaching Partner(s): Scott Slaby
Description of Research
Current trends in computer hardware indicate that in the near future desktop computers, and even portable computing devices, will have tens or hundreds of computing cores that may not be homogeneous. Current programming and computational models are poor fits for these new hardware environments. As such, new programming languages and runtime systems are needed to both make it easier to write software for these environments and make use of resources efficiently. Decades of research have shown ways to parallelize traditional sequential programming languages and provide techniques for writing implicitly parallel code such as lockless data structures, MapReduce, and software transactional memory. With the diversity of hardware configurations and the difficulty of writing concurrent programs, these methods have proven to be insufficient. My research focuses on creating a programming language, compiler, and run time environment that will make it easier for programmers to write portable, efficient, parallel programs.
Example of how my research is integrated into my GK-12 experience
One way in which I have brought my research into my classroom was an exercise I did with the students where we demonstrated the principle behind the MapReduce algorithm. Starting with a hat full of numbers, the students worked together to add them all together. We discussed why it was possible to distribute the work (the commutative property of addition), the work that was required to coordinate the student’s efforts, where errors may be introduced, and how this method may be used to solve real world problems.