Generic approach for pattern matching with OpenCL
Tamás Fekete, Gergely Mezei · 2016
Nowadays, applications must often handle a large amount of data and apply complex algorithms on it. It is a promising way to apply computations in parallel in order to meet the performance requirements. Since GPUs are designed to apply highly parallel tasks, using a CPU+GPU heterogeneous architecture has gained an increasing popularity in computation intensive applications. The paper presents a new generic GPGPU-based approach for pattern matching in graphs. The approach is part of a model-transformation solution we are building. The solution is referred to as GPGPU-based Engine for Model Processing (GEMP). Building on top of the OpenCL framework, the computation is hardware and software platform independent in GEMP. The kernel code is generated at run-time based on the concrete pattern to be found. The generative solution allows us to optimize the code based on several aspects, e.g. the size of the pattern, the GPU device type, or the available memory. This new generic code approach is compared to a universal kernel code which can handle all kinds of patterns without any modification in the code. To verify the functional and non-functional requirements, the implementation is tested in two main steps using unit tests, and a real world case study. Evaluation of our measurements, performance and scalability results are described.