Hybrid of genetic algorithm and local search to solve MAX-SAT problem using nVidia CUDA framework

General Purpose computing over Graphical Processing Units (GPGPUs) is a huge shift of paradigm in parallel computing that promises a dramatic increase in performance. But GPGPUs also bring an unprecedented level of complexity in algorithmic design and software development. In this paper we describe the challenges and design choices involved in parallelizing a hybrid of Genetic Algorithm (GA) and Local Search (LS) to solve MAXimum SATisfiability (MAX-SAT) problem on a state-of-the-art nVidia Tesla GPU using nVidia Compute Unified Device Architecture (CUDA). MAX-SAT is a problem of practical importance and is often solved by employing metaheuristics based search methods like GAs and hybrid of GA with LS. Almost all the parallel GAs (pGAs) designed in the last two decades were designed for either clusters or MPPs. Unfortunately, very little research is done on the implementation of such algorithms over commodity graphics hardware. GAs in their simple form are not suitable for implementation over the Single Instruction Multiple Thread (SIMT) architecture of a GPU, and the same is the case with conventional LS algorithms. In this paper we explore different genetic operators that can be used for an efficient implementation of GAs over nVidia GPUs. We also design and introduce new techniques/operators for an efficient implementation of GAs and LS over such architectures. We use nVidia Tesla C1060 to perform several numerical tests and performance measurements and show that in the best case we obtain a speedup of 25×. We also discuss the effects of different optimization techniques on the overall execution time.

[1]  M. Matsumoto,et al.  Parallel Mersenne Twister , 2007 .

[2]  Jerome Spanier,et al.  Dynamic creation of pseudorandom number generators , 2000 .

[3]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[4]  Habiba Drias,et al.  Solving weighted Max-Sat optimization problems using a Taboo Scatter Search metaheuristic , 2004, SAC '04.

[5]  Thomas Stützle,et al.  SATLIB: An Online Resource for Research on SAT , 2000 .

[6]  Enrique Alba,et al.  Introduction to Cellular Genetic Algorithms , 2008 .

[7]  H. Drias,et al.  Solving MAX-SAT problems using a memetic evolutionary meta-heuristic , 2004, IEEE Conference on Cybernetics and Intelligent Systems, 2004..

[8]  Marco Tomassini,et al.  Spatially Structured Evolutionary Algorithms: Artificial Evolution in Space and Time (Natural Computing Series) , 2005 .

[9]  Tien-Tsin Wong,et al.  Evolutionary Computing on Consumer Graphics Hardware , 2007, IEEE Intelligent Systems.

[10]  Bart Selman,et al.  Noise Strategies for Improving Local Search , 1994, AAAI.

[11]  Wen-mei W. Hwu,et al.  MCUDA: An Efficient Implementation of CUDA Kernels for Multi-core CPUs , 2008, LCPC.

[12]  J. Frank A Study of Genetic Algorithms to Find Approximate Solutions to Hard 3-SAT Problems , 1995 .

[13]  Chu Min Li,et al.  Heuristics Based on Unit Propagation for Satisfiability Problems , 1997, IJCAI.

[14]  Donald W. Loveland,et al.  A machine program for theorem-proving , 2011, CACM.

[15]  Sam S. Stone,et al.  MCUDA: An Efficient Implementation of CUDA Kernels on Multi-cores , 2011 .

[16]  Zhigeng Pan,et al.  Parallel Genetic Algorithms on Programmable Graphics Hardware , 2005, ICNC.

[17]  Takuji Nishimura,et al.  Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator , 1998, TOMC.

[18]  Erik Lindholm,et al.  NVIDIA Tesla: A Unified Graphics and Computing Architecture , 2008, IEEE Micro.

[19]  Zhong-Xian Chi,et al.  An Efficient Fine-grained Parallel Genetic Algorithm Based on GPU-Accelerated , 2007, 2007 IFIP International Conference on Network and Parallel Computing Workshops (NPC 2007).

[20]  Habiba Drias,et al.  Scatter Search with Random Walk Strategy for SAT and MAX-W-SAT Problems , 2001, IEA/AIE.

[21]  Lakhdar Sais,et al.  Tabu Search for SAT , 1997, AAAI/IAAI.