Return to search

A Concurrent IFDS Dataflow Analysis Algorithm Using Actors

There has recently been a resurgence in interest in techniques for effective programming
of multi-core computers. Most programmers find general-purpose concurrent programming to be
extremely difficult. This difficulty severely limits the number of applications that
currently benefit from multi-core computers.
There already exist many concurrent solutions for the class of regular applications,
which include various algorithms for linear algebra.
For the class of irregular applications, which operate on dynamic and pointer- and graph-based
structures, efficient concurrent solutions have so far remained elusive.
Dataflow analysis applications, which are often found in compilers and
program analysis tools, have received particularly little attention
with regard to execution on multi-core machines.
Operating on the theory that the Actor model, which structures computations
as systems of asynchronously-communicating entities, is a more appropriate
method for representing irregular algorithms than the shared-memory model,
this work presents a concurrent Actor-based formulation of the IFDS,
or Interprocedural Finite Distributive Subset, dataflow analysis algorithm.
The implementation of this algorithm is done using the Scala language and its Actors
library. This algorithm achieves significant speedup on multi-core machines without using
any optimistic execution.
This work contributes to Actor research by showing how the Actor model can be practically
applied to a dataflow analysis problem.
This work contributes to static analysis research by showing how a dataflow analysis
algorithm can effectively make use of multi-core machines,
allowing the possibility of faster and more precise analyses.

Identiferoai:union.ndltd.org:WATERLOO/oai:uwspace.uwaterloo.ca:10012/5283
Date January 2010
CreatorsRodriguez, Jonathan David
Source SetsUniversity of Waterloo Electronic Theses Repository
LanguageEnglish
Detected LanguageEnglish
TypeThesis or Dissertation

Page generated in 0.0027 seconds