Instruct: Identify the main and secondary category of Arxiv papers based on the titles and abstracts
Query: Contract-Based General-Purpose GPU Programming   Using GPUs as general-purpose processors has revolutionized parallel
computing by offering, for a large and growing set of algorithms, massive
data-parallelization on desktop machines. An obstacle to widespread adoption,
however, is the difficulty of programming them and the low-level control of the
hardware required to achieve good performance. This paper suggests a
programming library, SafeGPU, that aims at striking a balance between
programmer productivity and performance, by making GPU data-parallel operations
accessible from within a classical object-oriented programming language. The
solution is integrated with the design-by-contract approach, which increases
confidence in functional program correctness by embedding executable program
specifications into the program text. We show that our library leads to modular
and maintainable code that is accessible to GPGPU non-experts, while providing
performance that is comparable with hand-written CUDA code. Furthermore,
runtime contract checking turns out to be feasible, as the contracts can be
executed on the GPU.

29
The categories of this paper are: funct-an
17
The categories of this paper are: q-fin
31
The categories of this paper are: ao-sci
0
The categories of this paper are: hep-ph
28
The categories of this paper are: alg-geom
35
The categories of this paper are: mtrl-th
2
The categories of this paper are: math
7
The categories of this paper are: hep-th
32
The categories of this paper are: atom-ph
23
The categories of this paper are: solv-int
19
The categories of this paper are: eess
8
The categories of this paper are: hep-ex
18
The categories of this paper are: econ
16
The categories of this paper are: stat
30
The categories of this paper are: q-alg
25
The categories of this paper are: patt-sol