SSE554_SmithC_Project3

=GPGPU and its Application to Genetic Algorithms= = = =Introduction:= This project explores the recently expanding area of general purpose computing on graphics processing units, or otherwise most-commonly known as GPGPU. GPGPU does not discount the use of multi-core central processing units (CPU) for running multiple distinct processes. Instead, graphics processing units (GPU) can complement CPU by performing an identical operation, i.e., running a single kernel, on multiple threads simultaneously. One might ask, why would anyone want to perform the same operation across some or all GPU threads?

GPU can outperform CPU in one primary element: floating-point operations per second (FLOPS). "The reason behind the discrepancy in floating-point capability between the CPU and the GPU is that the GPU is specialized for compute-intensive, highly parallel computation – exactly what graphics rendering is about – and therefore designed such that more transistors are devoted to data processing rather than data caching and flow control. More specifically, the GPU is especially well-suited to address problems that can be expressed as data-parallel computations – the same program is executed on many data elements in parallel – with high arithmetic intensity – the ratio of arithmetic operations to memory operations."

Not only do graphic pixels need to be manipulated simultaneously in blocks on the screen in front of the reader, but other applications can also benefit from multiple objects undergoing an identical set of operations. Take, for instance, two different populations of a genetic algorithm. Genetic algorithms, which are a type of evolutionary algorithm, modify an initial population such that the same population undergoes three stages in a continuous loop: evaluation, selection, and recombination. This loop continues until the population reaches a predetermined fitness level. While the structure of such an evolutionary algorithm will not be revisited extensively, the desired effect is to understand that a GPU can operate on multiple initial populations and return the population which has the highest fitness level; alternatively, and as a matter of design choice, it could return the first population to reach the desired fitness level. The exploration of GPGPU in this particular application is the desired goal.

NEXT

You Are Here | → Basics | → Application | → Improvements | → Reflections | ⇥ Resources