# An Evaluation of Directive-Based Parallelization on the GPU Using a Parboil Benchmark
## 8 Conclusions  
In this paper, we evaluated the OpenACC programming model on a Parboil benchmark suite. Our aim was to evaluate OpenACC on performance and applicability. All applications within this benchmark suite were implemented using this programming model and afterwards tested using the provided datasets. Our conclusion is that OpenACC provides similar--in some cases, even better--performance than traditional programming models like CUDA and OpenCL. For that reason, it can serve as a good starting point for the parallelization of scientific applications on the GPU. In addition, it does not demand deep knowledge of underlying hardware features since they are hidden by the OpenACC directives.  
Further work includes expanding the benchmark suite with new applications like the ones included in the Rodinia suite. The results from these applications can provide further insight and can help us better understand the merits and limitations of the OpenACC programming model. The other interesting direction for research in that sense is a comprehensive comparison of high-level programming models, such as OpenACC, OpenMP, Kokkos, RAJA, and SYCL, using different compilers and architectures. The emphasis should be both on the applicability for different types of problems, but also on compiler infrastructure and architectural support. In addition, the OpenACC programming model itself can be implemented and tested on other platforms and accelerators, such as AMD graphic processors and FPGA boards, in order to provide more portability and overcome some hardware specific issues.  
Conceptualization, M.M.; methodology, M.M.; software, J.D.; validation, J.D. and M.M.; formal analysis, J.D.; investigation, J.D. and M.M.; resources, M.M.; data curation, J.D.; writing--original draft preparation, J.D. and M.M.; writing--review and editing, J.D. and M.M.; visualization, J.D.; supervision, M.M.; project administration, M.M.; funding acquisition, M.M. All authors have read and approved the final manuscript.  
**Funding:** This work was partially financially supported by the Ministry of Science, Technological Development and Innovation of the Republic of Serbia under contract number: 451-03-47/2023-01/200103.  
**Data Availability Statement:** All applications and datasets within the Parboil benchmark suite are available in the following link: [[http://impact.crhc.illinois.edu/parboil/parboil.aspx](http://impact.crhc.illinois.edu/parboil/parboil.aspx)]([http://impact.crhc.illinois.edu/parboil/parboil.aspx](http://impact.crhc.illinois.edu/parboil/parboil.aspx)) accessed on 29 October 2023. All OpenACC implementations are available in the following link: [[https://github.com/jovan-djukic/parboil](https://github.com/jovan-djukic/parboil)]([https://github.com/jovan-djukic/parboil](https://github.com/jovan-djukic/parboil)) accessed on 29 October 2023.  
**Conflicts of Interest:** The authors declare that they have no conflicts of interest  
**Abbreviations**  
The following abbreviations are used in this manuscript:  
\begin{tabular}{l l} BFS & Breadth-First Search \\ BLAS & Basic Linear Algebra Subprograms \\ CFD & Computational Fluid Dynamics \\ CPU & Central Processing Unit \\ CUDA & Compute Unified Device Architecture \\ CUTCP & Cutoff-limited Coulombic Potential \\ FPGA & Field Programmable Gate Array \\ GCC & GNU Compiler Collection \\ GPP & General Plasmon Pole \\ GPU & Graphics Processing Unit \\ HISTO & Histogramming \\ HPC & High Performance Computing \\ JDS & Jagged Diagonal Storage \\ LBM & Lattice-Boltzman Method \\ MPI & MESage Passing Interface \\ MRI-Gridding & MRI Cartesian Gridding \\ MRI-Q & MRI non-cartesian Q matrix calculation \\ OpenACC & Open Accelerators \\ OpenCL & Open Computing Language \\ OpenMP & Open Multi-Processing \\ PGI & Portland Group, Inc. \\ RAM & Random Access Memory \\ SAD & Sum of Absolute Differences \\ SGEMM & Dense single precision general matrix multiplication operation \\ SPMV & Sparse Matrix-Dense Vector Multiplication \\ TPACF & Two-Point Angular Correlation Function \\ \end{tabular}