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

pugace a cellular evolutionary algorithm framework on gpus
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

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,

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

Instituto de Computación, Facultad de Ingeniería, Universidad de la República, Uruguay 2010 IEEE World Congress on Computational Intelligence Barcelona, Spain

slide-2
SLIDE 2

Outline Outline

  • Motivation & Objectives
  • Graphic processing units
  • Cellular Evolutionary Algorithms
  • Related work
  • PUGACE

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  • PUGACE
  • Experimental results
  • Conclusions and future work
slide-3
SLIDE 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

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

– complex architecture

  • Objective:

– build a tool for easily developing cellular Evolutionary Algorithms (cEAs) on GPUs

slide-4
SLIDE 4

Graphic Processing Units Graphic Processing Units

  • Architecture is intrinsically parallel
  • Shared memory multi-core processors
  • Memory hierarchy:

– registers – shared block memory

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

– local memory – global memory

  • Programming tools for general purpose computing: CUDA and

OpenCL

slide-5
SLIDE 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)

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  • High-quality solution gradually spreads (diffusion)
slide-6
SLIDE 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

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  • 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
slide-7
SLIDE 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

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

crossover operators and mutation operators

  • Supports a local search method
  • Can be extended to incorporate additional operators
slide-8
SLIDE 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)

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

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

slide-9
SLIDE 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

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  • 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
slide-10
SLIDE 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
  • ne of its children
  • Random numbers could be generated:

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  • 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

slide-11
SLIDE 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

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

– 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+

slide-12
SLIDE 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

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  • Acceptable for a simple approach
slide-13
SLIDE 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)

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

population size)

slide-14
SLIDE 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

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs

  • 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

slide-15
SLIDE 15

Thank you for your attention Thank you for your attention

PUGACE, A Cellular Evolutionary Algorithm framework on GPUs