O artigo intitulado “The NAS Parallel Benchmarks for evaluating C++ parallel programming frameworks on shared-memory architectures” foi publicado no periódico Future Generation Computer Systems (FGCS). O trabalho foi conduzido pelo aluno de mestrado do GMAP Júnior Löff sob orientação dos professores Dr. Dalvan Griebler e Dr. Luiz Gustavo Fernandes. O artigo aceito contou com a colaboração dos pesquisadores da Itália Dr. Gabriele Mencagli, Dr. MassimoTorquati e Dr. Marco Danelutto, e a colaboração do aluno de mestrado do GMAP, Gabriell Araujo. A parceria entre GMAP/PUCRS e a Universidade de Pisa vêm dando certo ao longo dos últimos anos e têm trazido resultados frutíferos para ambos lados.
A seguir, o resumo do artigo:
The NAS Parallel Benchmarks (NPB), originally implemented mostly in Fortran, is a consolidated suite containing several benchmarks extracted from Computational Fluid Dynamics (CFD) models. The benchmark suite has important characteristics such as intensive memory communications, complex data dependencies, different memory access patterns, and hardware components/sub-systems overload. Parallel programming APIs, libraries, and frameworks that are written in C++ as well as new optimizations and parallel processing techniques can benefit if NPB is made fully available in this programming language. In this paper we present NPB-CPP, a fully C++ translated version of NPB consisting of all the NPB kernels and pseudo-applications developed using OpenMP, Intel TBB, and FastFlow parallel frameworks for multicores. The design of NPB-CPP leverages the Structured Parallel Programming methodology (essentially based on parallel design patterns). We show the structure of each benchmark application in terms of composition of few patterns (notably Map and MapReduce constructs) provided by the selected C++ frameworks. The experimental evaluation shows the accuracy of NPB-CPP with respect to the original NPB source code. Furthermore, we carefully evaluate the parallel performance on three multi-core systems (Intel, IBM Power, and AMD) with different C++ compilers (gcc, icc, and clang) by discussing the performance differences in order to give to the researchers useful insights to choose the best parallel programming framework for a given type of problem.Júnior Löff et al.
Mais informações sobre o journal FGCS podem ser encontradas no site oficial.
Por: Gabriella Andrade