Parallelisation Approaches and Their Effect on LZO Compression Efficiency
摘要
This work presents a systematic evaluation of three parallelisation approaches, POSIX threads (pthreads), OpenMP on multicore CPUs, and OpenMP target offloading to NVIDIA GPUs, for accelerating the Lempel-Ziv-Oberhumer (LZO) lossless compression algorithm. Using an inter-task, chunk-based strategy, we benchmark seven heterogeneous datasets ranging from 0.8 MB text files to a 28.6 GB Wikipedia dump. Relative to a tuned serial baseline, on average of different dataset results, pthreads achieves a compression speed-up of 3.38 \(\times \) , while CPU-based OpenMP attains 3.59 \(\times \) ; in contrast, GPU offloading peaks at 1.05 \(\times \) , with transfer and kernel-launch overheads frequently offsetting the device’s massive concurrency. Scalability on CPUs plateaus beyond twenty threads, indicating memory-bandwidth contention, whereas several low thread anomalies exhibit cache-driven super-linear behaviour. The study highlights the trade-offs between low-level thread management and directive based approaches, and underscores the need for finer-grained intra-task parallelism and asynchronous data movement to unlock GPU potential. All source code and experimental scripts are publicly released to foster reproducibility and further research.