I'm giving a talk today at 4:00 PM in 1325 on identifying implicit 
concurrency in object-oriented programs.
Title:     Identifying Class-Level Parallelism in Object-Oriented 
Programs
Abstract:  The increasing availability of desktop workstations with 
single-chip parallel processors (such as SMT or CMP designs) presents 
both a challenge and an opportunity for improved software performance.  
Typical desktop workloads are single-threaded, and conventional 
multiprogramming is a bad fit for SMT and CMP chips, in which 
synchronization and thread creation are cheap but threads must compete 
for on-chip resources.  A static compiler that could extract implicit 
fine-grained parallelism from serial end-user applications would ensure 
that such applications utilized available hardware contexts more fully. 
 We identify "class-level parallelism" and "creation parallelism," two 
types of implicit parallelism that are prevalent in object-oriented 
programs, and describe our techniques for identifying where such 
concurrency obtains.  We then discuss empirical results:  even given a 
fairly conservative safety analysis, between 20-85% of SPECjvm 
benchmark execution time can be ascribed to code that may safely 
execute in parallel with the rest of the program.  (Joint work with 
Charles Fischer.)
best,
wb
---
Will Benton <willb@xxxxxxxxxxx>
coordinates:  http://www.cs.wisc.edu/~willb/willb.vcf
 
 |