Dynamic Prioritization for Parallel Traversal of Irregularly Structured Spatio-Temporal Graphs

We introduce a dynamic prioritization scheme for parallel traversal of an irregularly structured spatio-temporal graph by multiple collaborative agents. We are concerned in particular with parallel execution of a sparse or fast algorithm for, but not limited to, an all-to-all transformation by multiple threads on a multi-core or manycore processor. Such fast algorithms play an escalating role as the basic modules to constitute, at increasingly large scale, computational solutions and simulations in scientific inquiries and engineering designs. We describe certain typical features of a spatio-temporal graph, not necessarily a tree, that describes a sparse or fast algorithm in execution. We show how the proposed dynamic prioritization scheme utilizes available but insufficient computing resources in practical and dynamic execution. We present experimental results with the application of this scheme to the celebrated fast multipole method. 1 Description of ST-DAGs The execution of a large-scale computation in the scientific or engineering studies [4, 5, 15, 17, 20] can often be analyzed and orchestrated as traversing a spatiotemporal directed graph. Typically, a node in the graph represents the computation associated with a particular spatial location, and a directed edge indicates the dependency from a predecessor node to a successor node. A spatial node at location ri may be visited multiple times during the course of the computation, such as in an iterative or time-marching procedure. In analysis, we unfold such a spatial node into multiple spatio-temporal nodes vik = (ri, k), where the temporal index k is local to the spatial index i, specifying the kth visit at the same location ri. This temporal unfolding process results in a spatio-temporal directed acyclic graph (ST-DAG). We may further assume that the computation at each node of a ST-DAG takes equal and hence one-unit time. A node requiring multi-unit time is expanded into multiple unittime nodes. We refer to the nodes without predecessors or successors as the frontier or terminal nodes, respectively, and to the rest as the interior nodes. The ST-DAGs we are concerned with include rooted trees but are not typically or necessarily trees. Specifically, while the out-degree of nodes in a tree equals to 1 uniformly, we consider the multiple out-degree at a nonterminal node v, deg(v) > 1, as a typical characterization of many computation problems. A simple and common example is the pairwise interactions between a source ensemble, S = {sj}, and a target ensemble, T = {ti}. Such interactions may be represented by a matrix-vector product, or a system of linear equations, y = Ax, where yi, for instance, is the potential at target ti and xj is the density at source sj . The interaction between sj and ti is specified by Aij = A(ti, sj). This computation can be represented by a bipartite graph GB = (S, T , E), where (sj , ti) ∈ E is a directed edge from sj to ti if Aij "= 0. The number of nonzero entries in the jth column of A is the out-degree of node sj , deg(sj). If deg (sj) = 1, sj interacts with only one target, which is not a typical situation. The ST-DAGs of our interest are mostly evolved from an initially simple bipartite graph, representing algorithms with reduced arithmetic complexity in terms of the total number of nodes. The low arithmetic complexity is essential, and in strong demand, for enabling scientific computations or simulations at physically or biologically relevant scales. Such ST-DAGs encompass on the one hand sparse computations with introduced supernodes [12, 14] and on the other hand fast algorithms for dense computations based on various sparse factorizations or compressive representations. The latter, with increased and increasing applications, includes the fast Fourier transform (FFT) [6, 8], the Barnesand-Hut (BH) algorithm [1, 2], and the fast multipole method (FMM) [3, 10, 11]. The fast algorithms, with provably minimal or sub-