UNIVERSIDADE FEDERAL DO PARÁ PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO DIRETORIA DE PESQUISA PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA RELATÓRIO TÉCNICO CIENTÍFICO Período: Outubro/2015 a Fevereiro/2016 ( X ) PARCIAL IDENTIFICAÇÃO DO PROJETO Título do Projeto de Pesquisa: O Uso de Aceleradores Gráficos na Construção de Ambientes Heterogêneos: Uma Proposta para Obter Paralelismo na Nuvem Utilizando Arquiteturas Compostas de CPU e GPU. Nome do Orientador: Josivaldo de Souza Araújo Titulação do Orientador: Doutor Faculdade: Faculdade de Computação Unidade: Instituto de Ciências Exatas e Naturais - ICEN Laboratório: GERCOM / LEMAG Título do Plano de Trabalho: Construindo Ambientes de Computação Paralela Heterogênea Composta de CPU e GPU. Nome do Bolsista: Danilo Figueiredo Costa Tipo de Bolsa: PIBIC/UFPA-AF
1. INTRODUÇÃO A computação paralela tem sido amplamente adotada para a resolução de problemas complexos que necessitam de uma grande quantidade de recursos computacionais. Muitos desses problemas necessitam de uma grande quantidade de memória principal e de uma alta taxa de frequência para que os processadores possam executar essas aplicações, o que acaba por consumir um alto índice de energia. Uma maneia de se utilizar esses recursos de forma inteligente e que tenha, com isso, um menor consumo de energia é interligá-los de forma paralela, o que possibilita avançar em pesquisas científicas que exigem robustez nos cálculos dos dados necessários à produção de resultados. Nesse contexto são desenvolvidas as atividades no Laboratório de Magnetismo (LEMAG), e no recém-criado Laboratório de Bioinformática e Computação de Alto Desempenho (LABIOCAD) que estão voltadas para o desenvolvimento de modelos e programas para análise e síntese de problemas em eletromagnetismo aplicado; assim como, a montagem de genoma. Esses programas são executados de forma paralela em computadores comuns, encontrados em qualquer loja de produtos de informática. Vale ressaltar que, em conjunto com a ideia de cluster de computadores, os aceleradores gráficos, também chamados de GPU, são, também, uma alternativa de baixo custo que já pode ser utilizada em conjunto com as CPUs para realizar computação heterogênea. Possuem a vantagem de melhorar o desempenho de uma série de aplicações altamente iterativas e que possuem um tipo de paralelismo denominado trivial, onde a dependência de dados não existe ou é mínima. Assim surge o modelo de computação heterogênea onde as tarefas são distribuídas ao hardware mais adequado presente na máquina. O principal objetivo deste trabalho é realizar o desenvolvimento de um ambiente onde se possa executar aplicações paralelas em arquiteturas heterogêneas compostas de CPU e GPU nos laboratórios da Universidade Federal do Pará, um no Instituto de Ciências Exatas e Naturais (LABIOCAD - Faculdade de Computação) e outro no Instituto de Tecnologia (LEMAG - Faculdade de Engenharia de Computação). 2. JUSTIFICATIVA Com o aumento significativo das atividades de pesquisas no LEMAG e no recém-criado LABIOCAD, surgiu a necessidade de se ampliar a capacidade computacional e aumentar a disponibilidade de equipamentos, como processadores e placas gráficas, por exemplo. Para isto, os pesquisadores associados aos referidos laboratórios estão investindo em programação paralela de baixo custo, além de atualizar a configuração de sua rede de computadores.
Diante disso, há urgência em formar recursos humanos nas áreas de gerencia de redes de pequeno porte para gerenciar o funcionamento dos clusters utilizados; bem como na área de computação paralela, no intuito de disseminar a cultura da programação paralela entre a comunidade acadêmica. 3. OBJETIVOS Este trabalho objetiva contribuir com a formação de recursos humanos no gerenciamento de rede computacional de clusters Beowulf, bem como, na disseminação da programação paralela utilizando o conceito de CPUs e GPUs. Entretanto, seu principal objetivo é a configuração de um ambiente heterogêneo, constando de CPUs e GPUs, onde se possa executar de forma paralela os programas desenvolvidos por ambos os laboratórios. 4. MATERIAIS E MÉTODOS Os problemas que requisitam a utilização de cluster exigem uma considerável capacidade computacional, dificultando ou mesmo inviabilizando o uso de computadores pessoais de pequeno porte e estações de trabalho, visto que se busca simular um comportamento complexo condicionado de maneiras diversas. Uma vez que seja possível utilizar uma máquina de grandes recursos as soluções tornam-se possíveis em tempo hábil para análises mais precisas e rápidas. No entanto, o poder aquisitivo pode se tornar um entrave a essa solução, contudo é possível contornar esse problema através da utilização de computação paralela através da utilização de clusters de computadores, mas precisamente os do tipo Beowulf, desenvolvidos nos laboratórios da NASA a partir de 1994. Estes clusters são formados por máquinas não especializadas de baixo custo. Durante o processamento as tarefas são divididas e distribuídas às máquinas pela rede, desse modo, todas se encarregam de uma parte do processamento total. Para realizar a comunicação entre essas partes, utilizam-se bibliotecas de comunicação específicas, a fim de dar uma continuidade a programação. De posse dessas arquiteturas será possível desenvolver estudos e estruturas que possam ser aplicadas conjuntamente com a computação de alto desempenho, como o estudo dos clusters (CPUs) e aceleradores gráficos (GPUs), algoritmos que possam auxiliar a paralelização automática de aplicações específicas e/ou gerais, desenvolvimento de sistemas de passagem de mensagem entre as partes que compõe a aplicação, realizar estudos sobre as principais bibliotecas de passagem de mensagem, bem como, dos principais compiladores paralelizadores, utilizados na computação de
alto desempenho e desenvolver funções que possam melhorar o desempenho dessas bibliotecas 5. RESULTADOS Um dos principais resultados parciais é quanto algumas definições iniciais que se pode apresentar, tais como: Definição do sistema operacional que será utilizado, neste caso, optou-se por se utilizar o Linux Ubuntu; Inicialmente, serão realizados testes com as linguagens de programação C/C++, no entanto, pretende-se futuramente analisar o desempenho da linguagem Python; Para a utilização das placas gráficas (GPUs) será utilizada a linguagem de programação CUDA, da Nvidia. Instalação e configuração dos pacotes para utilizar as GPUs, bem como, a montagem e configuração do cluster Beowulf. Outro resultado importante foi o aprendizado na montagem e configuração das estações de trabalho nos laboratórios envolvidos (LABIOCAD e LEMAG), pois para isso, teve-se que aperfeiçoar os estudos quanto ao sistema operacional Linux e a biblioteca de passagem de mensagem MPI, bem como, de todos os pacotes da linguagem CUDA, que descreve a configuração necessária das máquinas envolvidas no projeto. Somando-se a isso, foi definir outras biblioteca que pudessem ser utilizadas no ambiente, ou seja, que pudessem ser utilizadas na comunicação entre as tarefas, e optouse pelas bibliotecas OpenMP e OpenACC. 6. PUBLICAÇÕES Sem publicações no momento. 7. ATIVIDADES A SEREM DESENVOLVIDAS NOS PRÓXIMOS MESES 1. Transcrever os códigos que estão na linguagem Java para C/C++ para que possam ser aplicados os comandos da GPU (em CUDA); 2. Utilizar aceleradores gráficos para testar ambientes de programação paralela como CUDA, OpenMP e OpenACC; 3. Realizar testes de ferramentas de programação heterogênea que utilizem CPU e GPU;
4. Realizar testes de desempenho com as ferramentas e ambientes propostos nas arquiteturas heterogêneas; 5. Desenvolver estudos sobre melhorias na comunicação remota (rcuda) entre os aplicativos e os ambientes de programação paralela. 8. CONCLUSÃO: A utilização de ambientes heterogêneos (CPU e GPU) para solucionar problemas de grande porte está sendo a solução encontrada por várias instituições de ensino e empresas de todo o país, até porque não dizer do mundo, pois possui um baixo custo e proporciona excelentes resultados. A proposta deste trabalho é de tornar esse tipo de processamento ainda mais popular nos Institutos envolvidos no projeto e futuramente, em toda a Universidade Federal do Pará. Os primeiros passos já estão sendo dados no sentindo de envolver alunos neste processo, que com a experiência adquirida na montagem, configuração e posterior manutenção do sistema, acabam por difundir essa cultura de paralelização das aplicações no sentido de conseguirem agilizar as tarefas e aplicações que desenvolvem. 9. REFERÊNCIAS BIBLIOGRÁFICAS [ARAÚJO, 2006] ARAÚJO, J. S., OLIVEIRA, R. M. S., SOBRINHO, C. L. S. S., FRANCES, C. R. L., Estudo Comparativo de Códigos Paralelos em Fortran, C e Java na Análise de uma Antena Monopolo Utilizando Técnica Numérica de FDTD, Revista Principia, n o 13, Maio 2006. [BUYYA, 1999] BUYYA, Rajkumar; High Performance Cluster Computing: Architectures and Systems, Vol. 2; Prentice Hall, 1999. [DONGARRA, 2009] DONGARRA, J.; LASTOVETSKY, A. High Performance Heterogeneous Computing. Wiley-Interscience, 1 Edition, 2009. [CHAPMAN, 2008] CHAPMAN, B; JOST, G.; PAS, R.; Using OpenMP: Portable Shared Memory Parallel Programming (2008). Scientific and Engineering Computation. [S.J.]: The MIT Press, 2008. [DONGARRA, 2009] DONGARRA, J.; LASTOVETSKY, A. High Performance Heterogeneous Computing. Wiley-Interscience, 1 Edition, 2009. [MAUCH, 2012] MAUCH, V., et al. High Performance Cloud Computing. Future Generation Computer Systems, Elsevier. March, 2012.
10. DIFICULDADES Dentre as dificuldades encontradas estão: os problemas na configuração dos hardwares com as bibliotecas CUDA, bem como na montagem do cluster Beowulf. Também, no entendimento dos comandos em CUDA para a execução e compartilhamento dos problemas entre a CPU e a GPU; 11. PARECER DO ORIENTADOR: O aluno vinha desenvolvendo um trabalho bastante eficiente, pois em cinco meses de orientação de IC ele demonstrou uma evolução visível nas principais áreas trabalhadas, entre elas a área de redes de computadores e programação. Também teve conhecimentos aperfeiçoados com o sistema operacional Linux, além da programação em CUDA. Era bastante esforçado nas tarefas que lhe eram passadas, pois cumpria com os prazos com bastante rigor, justificando os que, por algum motivo, deixava de cumprir. É assíduo e também justifica eventuais faltas, tendo um excelente relacionamento com os colegas e professores, além de ser um excelente aluno em sala de aula. É lamentável que tenha desistido do projeto em virtude de ter sido aprovado em outro curso nesta mesma Instituição. Belém, 08 de Março de 2016.