Return to search

HPSM: uma API em linguagem c++ para programas com laços paralelos com suporte a multi-CPUs e Multi-GPUs / HPSM: a c++ API for parallel loops programs Supporting multi-CPUs and multi-GPUs

Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPES / Parallel architectures has been ubiquitous for some time now. However, the word ubiquitous
can’t be applied to parallel programs, because there is a greater complexity to code them comparing
to ordinary programs. This fact is aggravated when the programming also involves accelerators,
like GPUs, which demand the use of tools with scpecific resources. Considering this
setting, there are programming models that make easier the codification of parallel applications
to explore accelerators, nevertheless, we don’t know APIs that allow implementing programs
with parallel loops that can be processed simultaneously by multiple CPUs and multiple GPUs.
This works presents a high-level C++ API called HPSM aiming to make easier and more efficient
the codification of parallel programs intended to explore multi-CPU and multi-GPU
architectures. Following this idea, the desire is to improve performance through the sum of
resources. HPSM uses parallel loops and reductions implemented by three parallel back-ends,
being Serial, OpenMP and StarPU. Our hypothesis estimates that scientific applications can explore
heterogeneous processing in multi-CPU and multi-GPU to achieve a better performance
than exploring just accelerators. Comparisons with other parallel programming interfaces demonstrated
that HPSM can reduce a multi-CPU and multi-GPU code in more than 50%. The
use of the new API can introduce impact to program performance, where experiments showed
a variable overhead for each application, that can achieve a maximum value of 16,4%. The experimental
results confirmed the hypothesis, because the N-Body, Hotspot e CFD applications
achieved gains using just CPUs and just GPUs, as well as overcame the performance achieved
by just accelerators (GPUs) through the combination of multi-CPU and multi-GPU. / Arquiteturas paralelas são consideradas ubíquas atualmente. No entanto, o mesmo termo não
pode ser aplicado aos programas paralelos, pois existe uma complexidade maior para codificálos
em relação aos programas convencionais. Este fato é agravado quando a programação envolve
também aceleradores, como GPUs, que demandam o uso de ferramentas com recursos
muito específicos. Neste cenário, apesar de existirem modelos de programação que facilitam
a codificação de aplicações paralelas para explorar aceleradores, desconhece-se a existência de
APIs que permitam a construção de programas com laços paralelos que possam ser processados
simultaneamente em múltiplas CPUs e múltiplas GPUs. Este trabalho apresenta uma API C++
de alto nível, denominada HPSM, visando facilitar e tornar mais eficiente a codificação de programas
paralelos voltados a explorar arquiteturas com multi-CPU e multi-GPU. Seguindo esta
ideia, deseja-se ganhar desempenho através da soma dos recursos. A HPSM é baseada em laços
e reduções paralelas implementadas por meio de três diferentes back-ends paralelos, sendo Serial,
OpenMP e StarPU. A hipótese deste estudo é que aplicações científicas podem valer-se do
processamento heterogêneo em multi-CPU e multi-GPU para alcançar um desempenho superior
em relação ao uso de apenas aceleradores. Comparações com outras interfaces de programação
paralela demonstraram que o uso da HPSM pode reduzir em mais de 50% o tamanho de um
programa multi-CPU e multi-GPU. O uso da nova API pode trazer impacto no desempenho do
programa, sendo que experimentos demonstraram que seu sobrecusto é variável de acordo com
a aplicação, chegando até 16,4%. Os resultados experimentais confirmaram a hipótese, pois
as aplicações N-Body, Hotspot e CFD, além de alcançarem ganhos ao utilizar somente CPUs
e somente GPUs, também superaram o desempenho obtido por somente aceleradores (GPUs)
através da combinação de multi-CPU e multi-GPU.

Identiferoai:union.ndltd.org:IBICT/oai:repositorio.ufsm.br:1/12171
Date21 December 2016
CreatorsDi Domenico, Daniel
ContributorsLima, João Vicente Ferreira, Stein, Benhur de Oliveira, Schepke, Claudio
PublisherUniversidade Federal de Santa Maria, Centro de Tecnologia, Programa de Pós-Graduação em Informática, UFSM, Brasil, Ciência da Computação
Source SetsIBICT Brazilian ETDs
LanguagePortuguese
Detected LanguagePortuguese
Typeinfo:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis
Sourcereponame:Repositório Institucional da UFSM, instname:Universidade Federal de Santa Maria, instacron:UFSM
RightsAttribution-NonCommercial-NoDerivatives 4.0 International, http://creativecommons.org/licenses/by-nc-nd/4.0/, info:eu-repo/semantics/openAccess
Relation100300000007, 600, 600, bb0d8528-6835-4edc-8438-3ddd81225097, d4c1572b-6409-46d4-a2f9-306d9721e707, 2fa86ce3-f602-449c-b18d-476466841e8c, 5b8c7cf9-e267-45cf-b0e5-bda4129b5d30

Page generated in 0.0035 seconds