Year of Graduation
The Development and implementation of the GPU Based Heuristic Algorithm for the Vertex Colorings Problem
The graduate paper which is entitled: "The development and implementation of the GPU based heuristic algorithm for the vertex colorings problem" contains 68 pages, 12 pictures, 4 tables, 6 charts and 32 references.The main purpose of the work is the development, realization and analysis of the efficiency of the heuristic algorithm for the vertex colorings problem with the use of the graphics processing unit (GPU).The object of the research is the vertex colorings problem.The subject of the research is the new heuristic algorithm, which allows getting a graph coloring (a vector of n natural numbers) on the basis of bit operations on the forbidden colors matrix and the graph’s adjacency matrix with the use of the GPU.Due to the fact that GPUs become more and more universal computers, the technologies for programming the tasks which are not connected with computer games and rasterization begin to appear. Therefore, to increase the efficiency of the vertex coloring algorithm, the possibility of realization of the algorithm with use of the GPU is considered. Such approach to the solution of the task gives a chance to use parallel computations distributing resources between the CPU and the GPU. Today such approach becomes more and more popular.In the theoretical part of the work the peculiarities of the GPU architecture in comparison with the central processing unit (CPU) architecture are analysed; also some existing vertex coloring algorithms are considered. Furthermore, own vertex coloring algorithm based on mathematical operations over bit representations of an adjacency and forbidden colors matrices is developed. In the practical part, 3 various versions of the developed vertex coloring algorithm with the use of the GPU are presented. They differ in methods of working with different types of the GPU memory and its streams. The comparison of the programs’ speeds is made, and the fastest of them – the algorithm which uses the GPU global memory for the adjacency and forbidden colors matrixes storage and shared memory for the bit array with which 32 streams work simultaneously – is revealed.The developed algorithm implemented with the use of the GPU shows an average speed-up of 2,3 times in comparison with the same algorithm on the CPU. Alexey Berillo mentions in his article "NVIDIA CUDA – non-graphics computations using the graphics processing unit" that the average speedup that can be achieved while transferring calculations on the GPU is 5-30 times in comparison with the CPU. The analysis of the implemented algorithm showed that frequent streams addressing operations to the global memory of the GPU and the data dependence when performing steps of the algorithm were the factors which slowed down the productivity of GPU.The conclusion that the GPU is more beneficial to be used for work with graphics or for problems containing large volume of data over which simple operations are made was drawn.When performing the graduate paper methods of the graph theory and the theory of sets were used as their concepts, theorems, axioms are the basis of any vertex coloring algorithm. These methods helped to understand the mathematical model of the graph coloring algorithms and as a result to develop successfully and implement own C ++ vertex coloring algorithm and the same algorithm with use of the graphics processing unit. The use of such methods of scientific research as formalization, analysis, synthesis also helped with receiving and analysis of the work’s results.