pugace a cellular evolutionary algorithm framework on gpus
play

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs Nicols - PowerPoint PPT Presentation

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs Nicols Soca, Jos Luis Blengio, Nicols Soca, Jos Luis Blengio, Martn Pedemonte Martn Pedemonte y Pablo Ezzatti y Pablo Ezzatti Instituto de Computacin, Facultad de


  1. PUGACE, A Cellular Evolutionary Algorithm framework on GPUs Nicolás Soca, José Luis Blengio, Nicolás Soca, José Luis Blengio, Martín Pedemonte Martín Pedemonte y Pablo Ezzatti y Pablo Ezzatti Instituto de Computación, Facultad de Ingeniería, Instituto de Computación, Facultad de Ingeniería, Universidad de la República, Uruguay 2010 IEEE World Congress on Computational Intelligence Barcelona, Spain PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  2. Outline Outline • Motivation & Objectives • Graphic processing units • Cellular Evolutionary Algorithms • Related work • PUGACE • PUGACE • Experimental results • Conclusions and future work PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  3. Motivation & Objectives Motivation & Objectives • Parallel Evolutionary Algorithms: – decrease execution time – not only speed up the search: new exploration patterns • Graphic Processing Units (GPUs): – low cost platform for implementing parallel algorithms – complex architecture • Objective: – build a tool for easily developing cellular Evolutionary Algorithms (cEAs) on GPUs PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  4. Graphic Processing Units Graphic Processing Units • Architecture is intrinsically parallel • Shared memory multi-core processors • Memory hierarchy: – registers – shared block memory – local memory – global memory • Programming tools for general purpose computing: CUDA and OpenCL PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  5. Cellular Evolutionary Algorithms Cellular Evolutionary Algorithms • Single population structured in many small overlapped neighborhoods • Each individual belongs to several neighborhoods • An individual can only be mated for reproduction with individual of its neighborhood • High-quality solution gradually spreads (diffusion) • High-quality solution gradually spreads (diffusion) PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  6. Related work Related work • All standard parallel strategies for Evolutionary Computation have already been implemented successfully on GPUs: – master-slave – island model – cellular model • cEAs on GPUs obtained good speedup values • cEAs on GPUs obtained good speedup values • EASEA: – generates code that automatically exploits GPU capabilities – follows a master-slave model for evaluation of the population • No proposals of generic framework PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  7. PUGACE PUGACE • Generic framework for implementing cEAs on GPUs • Problem related features must be implemented • In line with: Mallba, JCell, ParadisEO, etc. • Implemented in C and CUDA (version 2.1). • Supports different problem encoding, selection policies, crossover operators and mutation operators crossover operators and mutation operators • Supports a local search method • Can be extended to incorporate additional operators PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  8. PUGACE (2) PUGACE (2) • Design: – extensible: new evolutionary operators and neighborhood structures can be incorporated – easy to use: implementation separated in several modules encapsulating different functionalities (CUDA limitations) functionalities (CUDA limitations) • First version: generality of the design favored over efficiency • GPU aspects not considered in this version: – maximizing the usage of shared block memory – coalescing the access to memory PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  9. PUGACE (3) PUGACE (3) • Population: – always resided in the device memory – arranged in a circular 1-dimensional structure – individuals from both ends are copied to opposite end • Each individual executes in a different thread (blocks of varying size) • Neighborhood: configurable number of individuals to the left and right • Application of crossover and mutation operator is decided at block level (to avoid thread divergence) • Problem information preloaded on constant memory PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  10. PUGACE (4) PUGACE (4) • Fitness values are stored in an auxiliary vector • Fitness function evaluation uses an independent thread for each chromosome • Generational replacement: each parent is replaced by the best one of its children • Random numbers could be generated: • Random numbers could be generated: – in the CPU and transferred to GPU in each generation (CPU idle times) – in the GPU with a specific algorithm based on a linear congruential method PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  11. Experimental results Experimental results • Quadratic Assignment Problem with a simple approach: – permutation representation – proportional selection – partially mapped crossover – mutation operator: randomly swap two values – local search: randomly selects a position and makes the best – local search: randomly selects a position and makes the best exchange between the selected position and the rest • Parameters: – population = 2048, neighborhood length = 4 – thread blocks = 32 – thread per block = 64 • Pentium dual-core 2.5 GHz with 2 GB RAM and a nVidia GeForce 9800 GTX+ PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  12. Experimental results (2) Experimental results (2) • Best known solution in 13 out of 14 instances • More than 5 Hits in 10 runs for instances with less than 30 facilities • Less than 5 Hits in 10 runs for instances with more than 30 facilities • Acceptable for a simple approach • Acceptable for a simple approach PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  13. Experimental results (3) Experimental results (3) • Tests performed to evaluate reductions in runtime obtained by implementing a cEA on a GPU rather than on a CPU • Runtime reductions ranged between 15 and 19 • Increase in number of individuals impacts in a sublinear increase in the execution time (10% when doubling the population size) population size) PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  14. Conclusions and future work Conclusions and future work • Conclusions: – Proposal of a tool for easily implementing cEA on GPUs – High reductions on execution time • Future work: – second version: • coalescing the access to memory • coalescing the access to memory • maximizing the usage of shared block memory • upgrade to CUDA 3.1 – use the framework to solve a concrete problem – new experiments on different devices PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  15. Thank you for your attention Thank you for your attention PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend