News & Events

  • Nicholas Edmonds successfully defends his PhD Thesis

    Date: 11/01/2013

    Nicholas Edmonds successfully defended his PhD Thesis.  Congratulations, Nicholas!

    Nicholas's Educational Career:

    MSc, Indiana University, 2005
    BSc, Vanderbilt University, 2003

    Abstract: Active Messages as a Spanning Model for Parallel Graph Computation

    Graph applications are members of an increasingly important class of applications that lack the natural, or domain-induced, locality of traditional computational science problems induced by large systems of PDEs. Rather than being analytically deducible, the dependency structure of graph applications is determined by the input graph itself. This data-carried dependency structure is expressed at run time and offers limited opportunities for static analysis. Graph applications present challenges with regard to load balancing, resource utilization, and concurrency at HPC scales.

    This thesis presents a set of parallel programming abstractions and a software-design methodology which allows for the implementation of flexible, scalable, and highly con- current graph algorithms. The use of active messages as the underlying communication mechanism provides three key performance benefits over more coarse-grained approaches. First, this phrasing reduces global synchronization and exposes asynchrony which can be used to hide communication latency. Second, by executing and retiring messages as they are received memory utilization is reduced. Finally, each active message represents an independent quantum of work which can be executed in parallel. By ensuring atomicity of the underlying vertex and edge properties manipulated by messages, fine-grained parallelism can be employed at the message level. The implementation of these ideas is presented in the context of the Parallel Boost Graph Library 2.0.

    This library is distinguished from other parallel graph implementations by two key features. By moving computation to data, rather than vice-versa, the effects of communication latency are reduced. Simultaneously, runtime optimization separates algorithm specifications from the underlying implementation. This allows optimization to be performed as the structure of the input graph, and thus the computation, is discovered. Separating specification from implementation also provides performance portability and enables retroactive optimization.

    The generic design of the library provides a common framework in which to experiment with dynamic graphs, dynamic runtimes, new algorithms, and new hardware re- sources. Most importantly, this thesis demonstrates that phrasing graph algorithms as collections of asynchronous, concurrent, message-driven fragments of code allows for natural expression of algorithms, flexible implementations leveraging various forms of parallelism, and performance portability-all without modifying the algorithm expressions themselves.