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.