A Parallel Maximum Subarray Algorithm on GPUs
Cleber S. Ferreira, Raphael Yokoingawa De Camargo, Siang Wun Song · 2014
This paper presents a parallel algorithm for the maximum sub array problem implemented on a machine with GPUs. Given a sequence of numbers, the maximum subsequence is a contiguous subsequence with maximum sum. The maximum sub array problem is a 2-D version of the maximum subsequence problem. Given a 2-D array of numbers, the maximum sub array is the sub array with maximum sum of its elements. The main difficulty lies in the complex memory organization of the GPU architecture, as well as its more restricted SIMD computing paradigm. Efficient ways to distribute the tasks among threads should be devised. We ran the experiments on a machine with two NVIDIA Geforce GTX 680 graphics units and an Intel i7 CPU. For large input arrays, the parallel algorithm using CPU and two GPUs was able to run about 590 times faster than the sequential counterpart when only one CPU core is used.