@MastersThesis{Miranda:2022:CoMPHP,
author = "Miranda, Eduardo Furlan",
title = "Common MPI-based HPC approaches in Python evaluated for selected
test cases",
school = "Instituto Nacional de Pesquisas Espaciais (INPE)",
year = "2022",
address = "S{\~a}o Jos{\'e} dos Campos",
month = "2022-02-17",
keywords = "high performance computing, Python programming environment,
parallel computing, processamento de alto desempenho, ambiente de
programa{\c{c}}{\~a}o Python, computa{\c{c}}{\~a}o paralela.",
abstract = "A number of the most common MPI-based high-performance computing
approaches available in the Python programming environment of the
LNCC Santos Dumont supercomputer are compared using three selected
test cases. Python includes specific libraries, development tools,
implementations, documentation and optimization or parallelization
resources. It provides a straightforward way to allow programs to
be written with a high level of abstraction, but the
parallelization features to exploit multiple cores, processors or
accelerators such as GPUs are diverse and may not be easily
selectable by the programmer. This work compares common approaches
in Python to increase computing performance for three test cases:
a 2D heat transfer problem solved by the finite difference method,
a 3D fast Fourier transform applied to synthetic data, and
asteroid classification using a random forest. The corresponding
serial and parallel implementations in Fortran 90 were taken as
references to compare the computational performance. In addition
to the performance results, a discussion of the trade-off between
easiness of programming and computational performance is included.
This work is intended as a primer for using parallel HPC resources
in Python. RESUMO: Algumas das abordagens de
computa{\c{c}}{\~a}o de alto desempenho mais comuns baseadas em
MPI dispon{\'{\i}}veis no ambiente de programa{\c{c}}{\~a}o
Python do supercomputador LNCC Santos Dumont s{\~a}o comparadas
usando tr{\^e}s casos de teste selecionados. Python inclui
bibliotecas espec{\'{\i}}ficas, ferramentas de desenvolvimento,
implementa{\c{c}}{\~o}es, documenta{\c{c}}{\~a}o e recursos de
otimiza{\c{c}}{\~a}o ou paraleliza{\c{c}}{\~a}o. Ele fornece
uma maneira direta de permitir que programas sejam escritos com um
alto n{\'{\i}}vel de abstra{\c{c}}{\~a}o, mas os recursos de
paraleliza{\c{c}}{\~a}o para explorar v{\'a}rios n{\'u}cleos,
processadores ou aceleradores, como GPUs, s{\~a}o diversos e
podem n{\~a}o ser facilmente selecion{\'a}veis pelo programador.
Este trabalho compara abordagens comuns em Python para se obter
processamento de alto desempenho desempenho utilizando tr{\^e}s
casos de teste: um problema de transmiss{\~a}o de calor
bidimensional resolvido por diferen{\c{c}}as finitas, uma
transformada r{\'a}pida de Fourier tridimensional aplicada a
dados sint{\'e}ticos e uma classifica{\c{c}}{\~a}o de
aster{\'o}ides por floresta aleat{\'o}ria. As correspondentes
implementa{\c{c}}{\~o}es seriais e paralelas em Fortran 90 foram
tomadas como refer{\^e}ncia para compara{\c{c}}{\~a}o de
desempenho nesses casos de teste. Al{\'e}m dos resultados de
desempenho, inclui-se uma discuss{\~a}o sobre o compromisso entre
facilidade de programa{\c{c}}{\~a}o e desempenho de
processamento. Este trabalho pretende ser uma
introdu{\c{c}}{\~a}o para o uso de recursos de processamento de
alto desempenho baseados em MPI para Python.",
committee = "Mendes, Celso Luiz (presidente) and Stephany, Stephan (orientador)
and Santiago J{\'u}nior, Valdivino Alexandre de and Fazenda,
{\'A}lvaro Luiz",
englishtitle = "Solu{\c{c}}{\~o}es comuns baseadas em MPI para processamento de
alto desempenho em Python avaliadas em casos de teste
selecionados",
language = "en",
pages = "195",
ibi = "QABCDSTQQW/46C4U9H",
url = "http://urlib.net/ibi/QABCDSTQQW/46C4U9H",
targetfile = "publicacao.pdf",
urlaccessdate = "14 jun. 2024"
}