Estudo preliminar de métricas de produtividade e portabilidade para linguagens de programação paralela
Abstract
The variety of parallel programming languages poses the challenge of selecting an appropriate language for each target platform. Using classical and recent metrics, this preliminary study compares parallel programming languages with respect to programming productivity and performance portability. We used three parallel versions of the Game of Life coded in OpenMP, CUDA and Kokkos. Results show that OpenMP and Kokkos require less coding effort than CUDA, that OpenMP is the best choice for running on the CPU and that Kokkos is the best choice for the GPGPU.References
Conway, J. (1970). Game of life. Scientific American, 223:120–123.
Edwards, H. C., Trott, C. R., and Sunderland, D. (2014). Kokkos: Enabling manycore performance portability through polymorphic memory access patterns. Journal of Parallel and Distributed Computing, 74(12):3202–3216.
Funk, A., Basili, V., Hochstein, L., and Kepner, J. (2005). Application of a development time productivity metric to parallel software development. Proceedings of the second international workshop on Software engineering for high performance computing system applications - SE-HPCS 05.
Hochstein, L., Carver, J., Shull, F., Asgari, S., Basili, V., Hollingsworth, J., and Zelkowitz, M. (2005). Parallel programmer productivity: A case study of novice parallel programmers. International Conference for High Performance Computing, Networking and Storage (SC’05).
Memeti, S., Li, L., Pllana, S., Kolodziej, J., and Kessler, C. (2017). Benchmarking OpenCL, OpenACC, OpenMP, and CUDA: Programming productivity, performance, and energy consumption. Proceedings of the 2017 Workshop on Adaptive Resource Management and Scheduling for Cloud Computing – ARMS-CC 17.
Pennycook, S., Sewall, J., and Lee, V. (2017). Implications of a metric for performance portability. Future Generation Computer Systems.
SDumont. Sistema brasileiro de computação petaflópica. http://www.sdumont. lncc.br/machine.php. Acesso: 30-01-2018.
Edwards, H. C., Trott, C. R., and Sunderland, D. (2014). Kokkos: Enabling manycore performance portability through polymorphic memory access patterns. Journal of Parallel and Distributed Computing, 74(12):3202–3216.
Funk, A., Basili, V., Hochstein, L., and Kepner, J. (2005). Application of a development time productivity metric to parallel software development. Proceedings of the second international workshop on Software engineering for high performance computing system applications - SE-HPCS 05.
Hochstein, L., Carver, J., Shull, F., Asgari, S., Basili, V., Hollingsworth, J., and Zelkowitz, M. (2005). Parallel programmer productivity: A case study of novice parallel programmers. International Conference for High Performance Computing, Networking and Storage (SC’05).
Memeti, S., Li, L., Pllana, S., Kolodziej, J., and Kessler, C. (2017). Benchmarking OpenCL, OpenACC, OpenMP, and CUDA: Programming productivity, performance, and energy consumption. Proceedings of the 2017 Workshop on Adaptive Resource Management and Scheduling for Cloud Computing – ARMS-CC 17.
Pennycook, S., Sewall, J., and Lee, V. (2017). Implications of a metric for performance portability. Future Generation Computer Systems.
SDumont. Sistema brasileiro de computação petaflópica. http://www.sdumont. lncc.br/machine.php. Acesso: 30-01-2018.
Published
2018-04-13
How to Cite
DANIEL, Daniela F. S.; PANETTA, Jairo.
Estudo preliminar de métricas de produtividade e portabilidade para linguagens de programação paralela. In: REGIONAL SCHOOL OF HIGH PERFORMANCE COMPUTING FROM SÃO PAULO (ERAD-SP), 9. , 2018, São José dos Campos.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2018
.
p. 29-32.
DOI: https://doi.org/10.5753/eradsp.2018.13595.
