Optimization techniques for speedup in a parallel algorithm
Abstract
For our thesis we study about conditions of a good parallel algorithm which greatly increases
efficiency in a program, and show that it is possible to implement Lossless Data Compression
using the Run Length Encoding algorithm in parallel architecture. Lossless compression is when
the original data that was compressed will not get lost after the data is being decompressed,
hence without any loss of data we hope to accomplish a massive reduction in execution time by
applying parallelism to this algorithm. Many compression algorithms are typically executed in
CPU architectures. In our work, we mainly focused on utilizing the GPU for parallelism in data
compression. Hence an implementation of Run Length Encoding algorithm is used by the help of
NVIDIA GPUs Compute Unified Device Architecture (CUDA) Framework. CUDA has
successfully popularized GPU computing, and General Purpose Compute Unified Device
Architecture applications are now used in various systems. The CUDA programming model
provides a simple interface to program on GPUs. A GPU becomes an affordable solution for
accelerating a slow process. This algorithm is convenient for the manipulation of a large data set
as oppose to a small one as this technique can increase the file size greatly. Furthermore, this
paper also presents the efficiency in power consumption of the GPU being used compared to a
CPU implementation. Lastly, we observed notable reduction in both execution time and power
consumption.