Cliff Click,

Azul Systems


Available core counts are going up, up, up! Intel is shipping quad-core chips; Sun’s Rock has (effectively) 64 CPUs and Azul’s hardware nearly a thousand cores. How do we use all those cores effectively? The JVM proper can directly make use of a small number of cores (JIT compilation, profiling), and garbage collection can use about 20 percent more cores than the application is using to make garbage but this hardly gets us to four cores. Application servers and transactional—J2EE/bean applications scale well with thread pools to about 40 or 60 CPUs, and then internal locking starts to limit scaling.

Unless your application (such as a data mining; risk analysis; or, heaven forbid, Fortran-style weather-prediction application) has embarrassingly parallel data, how can you use more CPUs to get more performance? How do you debug the million-line concurrent program?

Locking paradigms (lock ranking, visual inspection) appear to be nearing the limits of program sizes that are understandable and maintainable. Transactions, the hot new academic solution to concurrent-programming woes, has its own unsolved issues (open nesting, wait, livelock, significant slowdowns without contention). Neither locks nor transactions provide compiler support for keeping the correct variables guarded by the correct synchronization, such as atomic sets. Application-specific programming, such as stream programming or graphics, is, well, application-specific. Tools (debuggers, static analyzers, profilers) and libraries (JDK Concurrent utilities) are necessary but not sufficient. Where is the general-purpose concurrent programming model? This session’s speaker claims that we need another revolution in thinking about programs.

With more than twenty-five years experience developing compilers, Cliff serves as Azul Systems Chief JVM Architect. Cliff joined Azul in 2002 from Sun Microsystems where he was the architect and lead developer of the HotSpot Server Compiler, a technology that has delivered dramatic improvements in Java performance since its inception.

Previously he was with Motorola where he helped deliver industry leading SpecInt2000 scores on PowerPC chips, and before that he researched compiler technology at HP Labs. Cliff has been writing optimizing compilers and JITs for over 20 years. He is invited to speak regularly at industry and academic conferences including JavaOne, JVM, ECOOP and VEE; serves on the Program Committee of many conferences (including PLDI and OOPSLA); and has published many papers about HotSpot technology. Cliff holds a PhD in Computer Science from Rice University.


Date: 2010-Jun-02     Time: 16:00:00     Room: Anfiteatro do Complexo Interdisciplinar (IST)

For more information: