Conversão do NAS Parallel Benchmarks para C++ Standard
Resumo
A linguagem C++ recebeu novas abstrações de paralelismo com a definição das políticas de execução dos algoritmos da biblioteca padrão. Entretanto, a adequabilidade e o desempenho dessa alternativa ainda necessita ser estudado em comparação com outras alternativas bem estabelecidas. Portanto, o objetivo deste trabalho foi explorar a vasta gama de opções de recursos da biblioteca padrão C++ para avaliar a aplicabilidade e desempenho a partir de cinco kernels do NPB. Através dos experimentos em um ambiente multithreaded, foi constatado que a incorporação de estruturas de dados da biblioteca padrão, assim como a abstração para acesso multidimensional criada, não apresentam impacto notável no tempo de execução. Já os algoritmos com políticas de execução paralela demonstraram uma perda de desempenho estatisticamente significativa.
Referências
Di Domenico, D., Cavalheiro, G. G. H., and Lima, J. V. F. (2022). Nas parallel benchmark kernels with python: A performance and programming effort analysis focusing on gpus. In 2022 30th Euromicro International Conference on Parallel, Distributed and Network-based Processing (PDP), pages 26–33.
Do, Y., Kim, H., Oh, P., Park, D., and Lee, J. (2019). SNU-NPB 2019: Parallelizing and Optimizing NPB in OpenCL and CUDA for Modern GPUs. In 2019 IEEE International Symposium on Workload Characterization (IISWC), pages 93–105.
Griebler, D., Loff, J., Mencagli, G., Danelutto, M., and Fernandes, L. G. (2018). Efficient nas benchmark kernels with c++ parallel programming. In 2018 26th Euromicro International Conference on Parallel, Distributed and Network-based Processing (PDP), pages 733–740.
Josuttis, N. M. (2012). The C++ standard library: a tutorial and reference. Addison-Wesley.
Lin, W.-C., Deakin, T., and McIntosh-Smith, S. (2022). Evaluating iso c++ parallel algorithms on heterogeneous hpc systems. 2022 IEEE/ACM International Workshop on Performance Modeling, Benchmarking and Simulation of High Performance Computer Systems (PMBS), pages 36–47.
Löff, J., Griebler, D., Mencagli, G., Araujo, G., Torquati, M., Danelutto, M., and Fernandes, L. G. (2021). The nas parallel benchmarks for evaluating c++ parallel programming frameworks on shared-memory architectures. Future Generation Computer Systems, 125:743–757.
Mietzsch, N. and Fuerlinger, K. (2019). Investigating performance and potential of the parallel stl using nas parallel benchmark kernels. 2019 International Conference on High Performance Computing & Simulation (HPCS), pages 136–144.
Seo, S., Jo, G., and Lee, J. (2011). Performance characterization of the nas parallel benchmarks in opencl. In 2011 IEEE International Symposium on Workload Characterization (IISWC), pages 137–148.
Voss, M., Asenjo, R., Reinders, J., Voss, M., Asenjo, R., and Reinders, J. (2019). Tbb and the parallel algorithms of the c++ standard template library. Pro TBB: C++ Parallel Programming with Threading Building Blocks, pages 109–136.