Performance Evaluation of Parallelizing Algorithm Using Spanning Tree for Stream-Based Computing
Guyue Wang, Koichi Wada, Shinichi Yamagiwa · 2016
This paper proposes a detailed performance evaluation of an algorithm using spanning tree that automatically exploits the parallelism and determines an execution order of multiple kernel programs in distributed environment. In stream-based computing, efficient parallel execution requires careful scheduling of the invocation of the kernel programs. By mapping a kernel to a node and an I/O stream between kernels to an edge, the entire stream process can be treated as a spanning tree. The spanning tree, which allows feedback and feedforward edges, is effective for expressing dependencies that exist among kernels. In spanning tree, the nodes at the same depth do not have edges between them, and thus can be executed in parallel in the case parent nodes have been already executed. The series of the nodes can be executed in a pipelined manner. Thus, the proposed algorithm can extract both spatial and temporal parallelism. To evaluate the effectiveness of the proposed algorithm, two applications have been developed and parallelized based on the proposed algorithm. The results show that the parallel execution using four nodes of a GPU cluster obtained 3.5 times speedup in 2D-FFT and 3.0 times speedup in LU decomposition, compared to the sequential execution.