A Time Optimal Parallel Algorithm for the Dynamic Programming on the Hierarchical Memory Machine
Department of Information Engineering, Hiroshima University, Kagamiyama 1-4-1, Higashi Hiroshima, 739-8527 Japan
International Symposium on Computing and Networking, pp. 86-95, 2014
@article{nakano2014time,
title={A Time Optimal Parallel Algorithm for the Dynamic Programming on the Hierarchical Memory Machine},
author={Nakano, Koji},
year={2014}
}
The Hierarchical Memory Machine (HMM) is a theoretical parallel computing model that captures the essence of architecture of CUDA-enabled GPUs. The main contribution of this paper is to present an efficient implementation of the O(n^3)-time dynamic programming algorithm for solving the optimal triangulation problem for a convex n-gon in the HMM. Although the HMM can run a lot of threads in parallel, it is very hard to accelerate computation involving complicated memory access such as the dynamic programming for the optimal triangulation problem. It is often the case that the acceleration rate is limited to the bandwidth w of the global memory for problems involving complicated stride memory access. Quite surprisingly, our implementation of the dynamic programing algorithm for solving the optimal triangulation problem runs O(n^3/w^2) time units using max(wL,w^2l) threads on the HMM with bandwidth w, global memory latency L and shared memory latency l. Hence, this parallel algorithm achieves the acceleration rate of more than w although the dynamic programming algorithm involves complicated stride memory access. Also, we prove that this parallel algorithm is time optimal when L=O(wl).
January 13, 2015 by hgpu