Gustavo Rosa Corrêa

Tem experiência na área de Ciência da Computação. Efetua sua graduação na Universidade Regional Integrada do Alto Uruguai e das Missões (URI), campus Frederico Westphalen - RS. Atuou como bolsista de iniciação científica da URI, campus Frederico Westphalen - RS, no período de 03/2015 à 07/2017. O título do projeto de pesquisa denominou-se "Avaliação do desempenho das APIs OpenMP, CUDA, OpenCL e OpenACC em CPU e GPU e em ambientes híbridos".

Informações coletadas do Lattes em 25/11/2024

Acadêmico

Formação acadêmica

Graduação em andamento em Ciência da Computação

2015 - Atual

Universidade Regional Integrada do Alto Uruguai e das Missões

Idiomas

Bandeira representando o idioma Inglês

Compreende Razoavelmente, Fala Razoavelmente, Lê Razoavelmente, Escreve Razoavelmente.

Bandeira representando o idioma Espanhol

Compreende Razoavelmente, Fala Pouco, Lê Pouco, Escreve Pouco.

Bandeira representando o idioma Português

Compreende Bem, Fala Bem, Lê Bem, Escreve Bem.

Áreas de atuação

Grande área: Ciências Exatas e da Terra / Área: Ciência da Computação.

Produções bibliográficas

  • ROSA CORRÊA, GUSTAVO ; SULZBACH, Maurício . PROGRAMAÇÃO PARALELA EM CPU E GPU: UMA AVALIAÇÃO DO DESEMPENHO DAS APIS OPENMP, CUDA, OPENCL E OPENACC. RECeT - Revista de Engenharia, Computação e Tecnologia , v. 1, p. 1-6, 2017.

  • ROSA CORRÊA, GUSTAVO ; SULZBACH, Maurício . Programação paralela em CPU e GPU: Uma avaliação do desempenho das APIs OpenMP, CUDA, OpenCL e OpenACC. RECeT - Revista de Engenharia, Computação e Tecnologia, p. 1 - 6.

  • ROSA CORRÊA, GUSTAVO ; SULZBACH, Maurício . Avaliação do desempenho das APIs OpenMP, CUDA, OpenCL e OpenACC em CPU e GPU. In: XXII Seminário Institucional de Iniciação Científica, 2016, Frederico Westphalen. XXII Seminário Institucional de Iniciação Científica. Frederico Westphalen: URI, 2016. v. 1. p. 1-1.

Projetos de pesquisa

  • 2016 - 2017

    Avaliação do Desempenho das APIs OpenMP, CUDA, OpenCL e OpenACC em CPU, GPU e em ambientes híbridos, Descrição: O presente trabalho teve como objetivo avaliar o desempenho das principais APIs de programação paralela para CPU e GPU de forma híbrida, ou seja, parte do algoritmo sendo executado em CPU e parte sendo executado em GPU. A programação paralela híbrida tem como principal objetivo aproveitar as melhores características dos diferentes modelos de programação visando alcançar um melhor desempenho, se a divisão da carga de trabalho for feita corretamente, o ganho de desempenho pode ser viável. Sabendo disso, a primeira etapa deste trabalho baseou-se em avaliar a melhor forma de fazer a distribuição da carga de trabalho dos algoritmos entre CPU e GPU, onde as APIs CUDA, OpenCL e OpenACC foram utilizadas para executar instruções para GPU e a API OpenMP utilizada para a execução em CPU. Foram selecionados e adaptados de forma híbrida os algoritmos SRAD V1, HotSpot e PathFinder, que fazem parte do benchmark Rodinia, sendo suas compilações executadas parte em CPU e parte em GPU. Como resultados, os speedups dos testes mostraram que os algoritmos híbridos obtiveram um desempenho superior em relação à execução paralela somente em CPU ou GPU nos três algoritmos. Além disso, em todos os algoritmos a maior parte da carga de trabalho foi executada na GPU e o restante na CPU, pelo fato desse dispositivo possuir maior poder computacional, devido ao maior número de núcleos disponíveis. Através destes resultados, foi possível comprovar que a programação paralela híbrida pode ser um caminho para o aumento do desempenho de determinados algoritmos. Como aspectos negativos, cita-se a complexidade para programar instruções para duas APIs de programação paralela em um único código fonte, pois cada API possui seu próprio padrão de programação, muito diferente dos outros. Além disso, tiveram que ser adicionados vários parâmetros de compilação para que os compiladores reconhecessem os comandos paralelos para CPU e GPU ao mesmo tempo.. , Situação: Concluído; Natureza: Pesquisa. , Alunos envolvidos: Graduação: (1) / Mestrado acadêmico: (1) . , Integrantes: Gustavo Rosa Corrêa - Integrante / Maurício Sulzbach - Coordenador.Financiador(es): Universidade Regional Integrada do Alto Uruguai e das Missões - Outra.

  • 2015 - 2016

    Avaliação do desempenho das APIs OpenMP, CUDA, OpenCL e OpenACC em CPU e GPU, Projeto certificado pelo(a) coordenador(a) Maurício Sulzbach em 10/08/2016., Descrição: Como consequência do avanço das arquiteturas de CPU e GPU, nos últimos anos houve um aumento no número de APIs (Application Programming Interface) de programação paralela para os dois dispositivos. Atualmente tem-se Pthread e OpenMP para programação paralela em CPU e CUDA, OpenCL e mais recentemente OpenACC para GPU. A partir do surgimento dessas APIs, muitas aplicações foram reescritas para serem executadas de forma paralela em CPU ou GPU, trazendo em muitos casos, uma redução do tempo de execução. Porém, não há uma avaliação que confirme qual dessas APIs apresenta maior desempenho e em que situações isso acontece. Além disso, muitos problemas exigem um hardware mais robusto para sua execução e isso acaba envolvendo custos mais elevados para a sua aquisição. Atualmente com o surgimento e a popularização das GPUs, pode-se ter em um único computador uma capacidade grande de paralelismo, que unida a CPU possibilite a execução de tarefas em menor tempo, a um custo acessível. Sendo assim, o objetivo desse projeto foi avaliar o desempenho das principais APIs de programação paralela para CPU e GPU e verificar os principais motivos que ocasionaram ou não a obtenção do desempenho. Diante disso, na primeira etapa do projeto buscou-se avaliar o desempenho das principais APIs de programação paralela para CPU e GPU (OpenMP, CUDA, OpenCL e OpenACC). Para isso, essas APIs foram estudadas e instaladas, sendo inicialmente realizados testes para validar os estudos e analisar a metodologia dos testes. Na sequência, foram selecionados para execução em cada API os algoritmos SRAD V1, HotSpot e PathFinder, que fazem parte do benchmark Rodinia. Para avaliar o desempenho de cada API foram realizados trinta execuções de cada algoritmo. O tempo dessas trinta execuções foram computados, sendo a média o valor utilizado, e desse tempo de execução obteve-se o intervalo de confiança das amostras, e também o speedup que cada algoritmo obteve em relação a execução sequencial de cada API. Os speedups dos testes mostraram que a GPU obteve um desempenho superior em relação a CPU na maioria dos algoritmos. Acredita-se que esse resultado ocorreu pelo fato da GPU possuir mais núcleos se comparada a CPU, apesar da frequência dos núcleos ser inferior. A única exceção onde o speedup das amostras foi melhor na CPU do que na GPU foi no algoritmo HotSpot. Isso ocorreu devido a três fatores principais: a limitada configuração da GPU utilizada para os testes, o tempo necessário para a troca de informações entre CPU e GPU, que no caso dos algoritmos que utilizam apenas CPU não existe, e o pouco trecho de código paralelizável do algoritmo. , Situação: Concluído; Natureza: Pesquisa. , Alunos envolvidos: Graduação: (1) / Especialização: (0) / Mestrado acadêmico: (1) / Mestrado profissional: (0) / Doutorado: (0) . , Integrantes: Gustavo Rosa Corrêa - Integrante / Maurício Sulzbach - Coordenador.Financiador(es): Universidade Regional Integrada do Alto Uruguai e das Missões - Outra.

Histórico profissional

Experiência profissional

2015 - 2017

Programa Institucional de Iniciação Científica

Vínculo: Bolsista, Enquadramento Funcional: Bolsista de Iniciação Científica, Carga horária: 20

Outras informações:
Execução do projeto intitulado: Avaliação do desempenho das APIs OpenMP, CUDA, OpenCL e OpenACC em CPU, GPU e em ambientes híbridos

Atividades

  • 03/2016 - 07/2017

    Pesquisa e desenvolvimento , Universidade Regional Integrada do Alto Uruguai e das Missões, URI - Frederico Westphalen.,Linhas de pesquisa

  • 03/2015 - 07/2016

    Pesquisa e desenvolvimento , Universidade Regional Integrada do Alto Uruguai e das Missões, URI - Frederico Westphalen.,Linhas de pesquisa