Rogério Aparecido Gonçalves é doutorando no Programa de Pós-Graduação em Ciência da Computação do Instituto de Matemática e Estatística (IME) da USP, também é professor do Ensino Básico, Técnico e Tecnológico na Universidade Tecnológica Federal do Paraná (UTFPR), campus de Campo Mourão. Gonçalves atua nas áreas de Arquitetura de Computadores e Computação Paralela.
NAP-SoL: O que são técnicas de Paralelização Automática?
Rogério Gonçalves: A ideia é utilizar transformações de código, principalmente transformações que possam ser aplicadas a laços de repetição, para gerar automaticamente uma versão paralela do código de aplicações. Atualmente duas abordagens tem se destacado neste contexto, uma delas usa diretivas de compilação e a outra abordagem aplica técnicas para paralelização automática. Na primeira abordagem o código é anotado com diretivas de pré-processamento que guiam a ferramenta de compilação no processo de paralelização. A ideia da abordagem automática é que o código original não seja modificado, nem anotado. A ferramenta de compilação deve ser capaz de identificar regiões paralelizáveis e gerar uma versão paralela do código sem a intervenção do programador.
NAP-SoL: Qual objetivo da sua pesquisa?
Rogério Gonçalves: O objetivo principal é desenvolver uma ferramenta de compilação e um ambiente de execução que seja capaz de aplicar técnicas para paralelização automática de código para a acelerar a execução de aplicações em plataformas heterogêneas. As plataformas que estamos considerando na pesquisa são as que apresentam elementos de processamentos como múltiplas GPUs e processadores multicore. Existem muitas aplicações de código legado que necessitam utilizar o poder de processamento fornecido por essas plataformas modernas. A ideia é não reescrever o código dessas aplicações, que a tradução de código seja feita automaticamente pela ferramenta/ambiente de execução.
NAP-SoL: Qual o foco do seu trabalho atualmente?
Rogério Gonçalves: Atualmente, estou fazendo experimentos para identificar padrões no uso dos recursos arquiteturais de GPUs. O objetivo nesta etapa é mapear o comportamento do código das aplicações para extrair regras que possam ser aplicadas ao código de aplicações com características semelhantes.
NAP-SoL: No que isso pode ajudar os desenvolvedores e usuários?
Rogério Gonçalves: Sendo possível gerar versões paralelas de aplicações. Isso permitirá que aplicações de código legado possam ter sua execução acelerada em dispositivos, tal como GPUs. A ideia é obter melhorias no desempenho, sem a necessidade dos usuários modificarem ou reescreverem o código de suas aplicações.
Por: Natalí Silva