for the performance issue can be to use the
aforementioned CPU+GPU architecture.
Our overall goal is to create a general model-
transformation tool using the computing power of
GPUs. The tool is referred to as the GPGPU-based
Engine for Model Processing (GEMP). We have done
several steps in creating GEMP (Fekete and Mezei,
2015). In that paper, we concluded that the usage of
the GPUs in graph transformation tools is a promising
direction. In this paper, we follow this path by
introducing a general, GPU-based solution for
pattern-matching.
The rest of the paper is organized as follows: In
Section 2, the features of the OpenCL framework are
collected and compared against other solutions.
Moreover, a short overview of model transformation
tools can also be found. In Section 3, the input domain
model is described which is used for illustrating the
non-functional properties of the GEMP. In Section 4,
an architectural overview is given. The following two
Sections pay attention to the data mapping to the
OpenCL framework and introduce the core
algorithms. In Section 7, the main properties of the
tool are discussed, namely the performance and the
scalability. Finally, in Section 8, we conclude and
give an outlook for the possible researching
directions.
2 RELATED WORK
There are several possibilities to realize
heterogeneous computation tasks, especially for
CPU+GPU based platforms. One of them is the usage
of the popular OpenCL framework. Another widely
applied way of accessing the GPUs is the usage of the
CUDA (CUDA’s website, 2015). It is necessary to
question which of them is better considering several
viewpoints such as performance, scalability, or the
difficulty of the integration. In a paper, (Veerasamy
et al., 2014), they introduced the usage of both the
CUDA and the OpenCL in deeper details, but they do
not give suggestion which is the better to integrate.
Both of them have their own advantages which
heavily depend on the actual problem that must be
solved. The main reason of using the OpenCL
framework over CUDA is that OpenCL can be used
by many hardware manufacturers realizing the
interfaces.
In a paper, (Yan et al., 2014), there are
benchmarks showing how the OpenCL framework
can be effectively used on different hardware
components. They compared several hardware
components like multi-core CPUs, AMD and
NVIDIA GPUs. They also considered the differences
between their and other existing results. They
measured the GFLOPS both on GPUs and CPUs and
collected their experiments in case of different kinds
of tasks.
The usage of the OpenCL framework is
challenging to those, who do not have experience in
hardware close programming. Probably this is the
main reason why there are so many libraries for
OpenCL and for other multi-platform environments.
In a paper, (Viñas et al., 2015), there is a discussion
about the extension of a Heterogeneous Library with
OpenCL; this modification provides easier access to
OpenCL framework. Significantly decreasing the
number of lines in the source code is achieved and
introduced in the paper.
There are many OpenCL-based graph libraries
and wrappers which can be used in realizing an
OpenCL-based model-transformation tool. Using
GPUs in a graph library is introduced by (Che et al.,
2014). In this paper, solutions of several popular
graph problems are modified to achieve the GPU-
based version of them. They also realized that
programming of the GPU can be difficult for a regular
programmer and the implementation of the graph
application can take a big effort. Therefore, they
created a library which is called BelRed. The software
building blocks are implemented on the top of the
OpenCL framework. The performance of the library
is represented on a case study. The main advantages
of the BelRed library are its portability and the fact
that the programmer does not need care of the kernel
code writing and hardware close working.
In a paper, (Xu et al., 2014), they introduce how
important and critic the graph processing components
nowadays are. The paper also focuses on the
algorithm mapping between the host and the GPU
which is the biggest challenge in the effective usage
of GPUs. They compiled 12 graph applications into
the GPU device, studied the performance and
suggested several approaches to accelerate the
performance of the GPU-based algorithms.
There are several papers and studies which collect
and classify the model transformation tools. In a
paper, (Jakumeit et al., 2014), there are tools which
are described, for example GREAT, IncQuery,
Fujaba, Groove, Henshin, MOLA and Viatra2. None
of these tools can use the power of the GPUs in model
processing. Our current research focuses on the
challenges to create a general purpose pattern
matching tool, namely the first step towards creating
a GPU-based model transformation engine. The
verification and validation of GEMP is applied on
two levels: (1) Low level functional properties are