|Home | People | Curriculum | Projects | Resources | Media|
This began as a join investigation with John McCalpin, and involved numerous undergraduates, including Jaime Spacco (HC '98), Tina Shen (Bryn Mawr '98), Vince Gabor (HC '99), and Frank Rusch (HC 2000). Ian Harrison (HC '03) and I have got some empirical results for the multiprocessor time skewing optimization on an 8-workstation linux cluster, but this involved a lot of hand-coding of inter-processor communication. More recently (summer 2009), Tim Douglas (HC '11) and Sharon Warner (HC '12) worked with me to explore the use of scalable locality to get good performance for dense matrix computations on clusters, by combining the Pluto automatic parallelizer and Cluster OpenMP. Our tech report gives a more recent version of the work we presented at MASPLAS 2009. In the summer of 2010 and 2010-'11 academic year, Sharon Warner (HC '12), Sol Lutze (HC '11), and Tim Douglas (HC '11) worked with me to configure a much larger and faster cluster and extend our results; ongoing work will explore additional benchmarks and to compare optimizers, including Pluto, and AlphaZ.
The goals of our work are to better prepare students who wish to continue in computer science, provide a better appreciation of the intellectual processes involved in CS for students who do not continue, and emphasize the fun of problem solving over the tedium of learning the arcane details of a programming language. After exploring the use of mathematical techniques (as used in formal verification), we have more recently (post-2005) been working on a balance between informal and formal approaches, and between test suites and specifications.
For more details, see the the 3-2-1 web site, or our paper at SIGCSE '05 (for our work before 2005) or the current course notes at lulu.com. (We have been quite happy with the quality and price of lulu.com materials: the "lab copy" of the materials that we put in the lab in September 2007 was still in good condition when the academic year ended in May 2008).
The goal of this work is to help students appreciate the connections among these upper-level applied computer science courses by constructing a single multi-course project that involves all the steps from a high-level programming language to the basic AND/OR/NOT logic of computer hardware. The first students to complete this entire sequence using HERA graduated in the spring of 2005.
I presented this work in a poster session (not reviewed) at SIGCSE '05. A (reviewed) paper describing this work and another describing my use of attribute grammars in teaching Compiler Design appeared at CCSCE '06. The specification for the HERA architecture is available in printed form through lulu.com.
The diagrams we use to illustrate our ideas about computation tell us a lot about the ideas themselves. For example, the choice of which aspects of a computation need to be shown, and which can be omitted, tell us a lot about what is important in our thinking. To help clarify the subtleties of various diagrams, I have started work on a Wikibook titled Visualizing Computation. Feel free to use or add to it (is is a wikibook, after all).
I have recently begun to investigate techniques to use computers to help visualize the execution of algorithms. If my own ideas prove to be sufficiently different from prior work, I'll add more here.
I have worked with the Vivo project at the Rutgers University Department of Computer Science to develop tools to instrument code to measure and improve coverage of fault recovery code in Java web services (see our papers at DSN '03, ISSTA '04, and The April 2005 issue of IEEE Transactions on Software Engineering).
Vince Gabor (HC '99) and Rob Seater (HC '02) participated in this work.
This is an extension of Ben Flynn's (HC '99) senior thesis, which appeared at MASPLAS '99.
The above research has been funded by grants from the Zimmer Corporation and grants CCR-9808694 and CCF-0943455 from the National Science Foundation. "Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation."
I was a grad student in Bill Pugh's Omega Project.
Here's a list of Researchers in Programming Languages and Compilers.
I use Gnu Privacy Guard here's my public key.