I'm primarily interested in the multicore problem: that individual processor cores are not increasing in speed at the rate to which programmers have become accustomed, but instead the number of cores per processor is increasing. There is no comparable decrease in the rate of growth in software complexity. This means that typical software developers in industry will hit CPU limitations more often unless they're able to take advantage of multiple cores. To date, it is generally the case that they cannot - the symptom of inadequate languages, tools, and education in parallel programming.
I earned an MS degree in Computer Science from the McGill University Sable Lab
studying compiler-assisted lock allocation for Java, and I'm currently undertaking a PhD program in Computer Science at the University of California, Santa Cruz.
Richard L. Halpert, Christopher J. F. Pickett, and Clark Verbrugge. Component-based lock allocation. In PACT'07: Proceedings of the 16th International Conference on Parallel Architectures and Compilation Techniques, September 2007, pages 353-364.
Richard L. Halpert. Static Lock Allocation. Master's thesis, School of Computer Science, McGill University, Montreal, Quebec, Canada, April 2008.
, Associate Staff Software Engineer, 2007-2011. Knowledge modeling
, query engines, biostatistics pipelines
Raytheon Company, Systems Engineer II, 2003-2005. Software requirements, communications protocols.
Asahi America, Research and Development Co-op, 2002-2003. Device calibration.
Thornton Inc., Research and Development Intern, 2001. Device interface.