I just gave the keynote talk "The Berkeley View: A New Framework and a New Platform for Parallel Research" Image:LCPC06Patterson1.5.ppt at the The 19th International Workshop on Languages and Compilers for Parallel Computing (LCPC) (http://research.ihost.com/lcpc06/) on November 3 2006 in New Orleans.
Talk went well. Given the audience, most questions were about autotuning.
One memborable comment is about motivation, which we gave (slide 24) as
"Takes a decade for compiler innovations to show up in production compilers?"
2 points in a question about this was
1) Most ideas at, say, PLDI aren't so great that they obviously need to be put into production compilers. Don't you have the same problem in architecture?
- My reply was no, architecture is very good at getting its good ideas into practice. Whether PLDI has quality ideas is not for me to comment, as its not my area.
2) Given the nature of compilers (new optimization must help most programs, and cannot break any program), its not surprising that you are getting these results for a specific dwarf
- My reply was that I agreed. This is a better case for autotuners. Since we can identify dwarfs, we should be exploring dwarf specific optimizations via autotuners that cannot expected to be done in production static compilers.
- As we only have 14 dwarfs (at least so far), its not rocket science to imagine 14 autotuners, perhaps with a library interface to a modern programming system. Since Yelick et al are getting 4X improvement over compilers using autotuners for *sequential code* this seems like a great case for both the dwarfs and for autotuning for parallel code. If by identifying a small set of dwarfs where we can get, say, 10X speed up on a speficic parallel machines via a set of autotuned library functions, this would be a boon for parallel HW/SW systems.
I thought a lot about all the 'dwarfs' like someting essential was missing, and my mind started drifting to the diffrent classes of applications that compilers are used for, and the thing that was missing was ... Benchmarks. Benchmarks are a class of applicatiom that people scrutiize the performance results most heavly, and like age is subject to the most schenanagians. OR Does each type of 'dwarf' require its own performance profiling.
And a question: I have experence with MassPar super computers. What class of 'drarf' do SmithWaterman and Blast searches come under? ( Massivly parelell, very little return communication overhead ).
--Artoftransformation 06:15, 2 October 2007 (PDT)
- Now with a bunch more consideration, it occurs that each dwarf as a class, needs both its own profiling and benchmarking. What class is program compiling? How well does compiling a compiler vs compiling a OS or some extrodinarly large applicaqtion like Adobe Director?
--Artoftransformation 11:04, 4 October 2007 (PDT)