Parallel programming patterns are built upon a foundation of serial programming patterns to maximize the efficiency of parallel code and effectively use parallel resources available in a given system. This work focuses on using NVIDIA GPUs with the CUDA C library for parallel computing. The goal is to implement parallel versions of a genetic algorithm using the Map and Fork-Join parallel patterns to improve its performance. The intent is to demonstrate that the parallel patterns can be implemented on the CUDA platform and achieve increases in speedup, efficiency, and scalability with the parallel genetic algorithms. A comparative assessment of the two parallel patterns is conducted by configuring them to evaluate instances of the Travelling Salesman Problem (TSP) using different data sets. This assessment considers each algorithm's run time performance, their use of system resources, and their required overhead.
Radford, D., & Calvert, D. (2017). A Comparative Analysis of the Performance of Scalable Parallel Patterns Applied to Genetic Algorithms and Configured for NVIDIA GPUs. In Procedia Computer Science (Vol. 114, pp. 65–72). Elsevier B.V. https://doi.org/10.1016/j.procs.2017.09.009