[an error occurred while processing this directive]

Skip to Content

Computer Science Colloquia

Wednesday, March 2, 2011
Jing Yang
Advisor: Mary Lou Soffa; Kamin Whitehouse; Wes Weimer; Mircea Stan
Attending Faculty: Kevin Skadron

Wilsdorf Hall 200, 11:00:00

A Ph.D. Proposal
Dynamic Binary Parallelization

The proposed research will produce a novel technique called dynamic binary parallelization (DBP) which can parallelize software without access to the source code. DBP is based on the insight that many programs tend to frequently repeat long sequences of instructions called hot traces. DBP monitors a program at run time and dynamically identifies the hot traces, parallelizes them, and caches them for later use so that the program can execute in parallel everytime a hot trace repeats. The main advantage of DBP is that it will parallelize any sequential binary instruction stream; if the software can execute, then DBP can parallelize it. Thus, DBP can operate on any program, even when existing techniques have difficulty. For example, DBP will parallelize both legacy and third-party software when the source code is not available. It will parallelize across different program components that were originally written in different languages. It will also parallelize across dynamically linked executables and libraries.

DBP also has an increased visibility into the run-time information and can adapt its parallelization strategy accordingly. In addition to parallelizing code only manifest at run time (e.g., dynamically linked/loaded libraries), the dynamic nature of DBP allows it to decompose programs based on the underlying architecture or the current state of the system. Interrelated variables such as core availability, hardware heterogeneity, resource contention severity, and workload profile may greatly affect the best way that an application should be parallelized. DBP is also inherently adaptive to data inputs and phase changes of the executing program, which directly results in different hot traces identified during run time.