Date of Award


Degree Type


Degree Name

Doctor of Philosophy (PhD)


Computer Science

First Advisor

Lutz Hamel


Let D be a DAG and let V be any non-empty subset of D's vertices. X is a convex set of D if D contains a path that originates in X , and then leaves X , and then re-enters X . This work presents basic convexity algorithms for creating, growing, and shrinking convex sets using two different approaches: predecessor and successor sets, and topological orderings. It shows that the algorithms based on predecessor and successor sets typically have higher asymptotic running times than those based on topological ordering. However, when creating a convex set based upon a potentially non-convex set of "seed" vertices, the use of predecessor and successor sets permits the creation of a convex set which is the uniquely smallest superset of the seeds.

This work also considers the problem of stochastically searching for a global minimum over all convex sets of a given DAG, using the basic convexity algorithms described above. This work demonstrates the existence of such an algorithm that, when run for a finite but bounded number of iterations, the probability of it covering the entire search space approaches one.

This work presents one possible mapping which extends this work's optimization of a single parallel task to the optimization of task-parallel programs with mutiple tasks. This mapping is studied experimentally. The results demonstrate a minor (5%) speed improvement over a human-crafted parallelization of the same program, suggesting the possible merit in this work's approach to automated parallel-program optimization.