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
|