Fortran DO CONCURRENT Evaluation in Multi-core for NAS-PB Conjugate Gradient and a Porous Media Application - Tremarin, Gabriel Dineck; Marciano, Anna Victória Gonçalves; Schepke, Claudio; Vogel, Adriano (Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (SSCAD), 2024)
High-performance computing exploits the hardware resources available to accelerate the applications’ executions, whereas achieving such an exploitation of hardware resources demands software programming. Hence, several parallel programming interfaces (PPIs) are used for sequential programs to call thread resources and parallelism routines. There are explicit PPIs (e.g., Pthreads and TBB) or implicit (e.g., OpenMP and OpenACC). Another approach is parallel programming languages like the Fortran 2008 specification, which natively provides the DO CONCURRENT resource. However, DO CONCURRENT’s evaluation is still limited. In this paper, we explore and compare the native parallelism of FORTRAN with the directives provided by the OpenMP and OpenACC PPIs in the NAS-PB CG benchmark and a porous media application. The results show that the DO CONCURRENT provides parallel CPU code with numerical compatibility for scientific applications. Moreover, DO CONCURRENT achieves in multi-cores a performance comparable to and even slightly better than other PPIs, such as OpenMP. Our work also contributes with a method to use DO CONCURRENT.