Aluno do curso de Ciência da Computação da Unijuí e Bolsista PIBIC/UNIJUÍ 3. Professor Orientador do Departamento de Ciências Exatas e Engenharias 4

Documentos relacionados
Aluno do curso de Ciência da Computação da Unijuí e Bolsista PIBIC/UNIJUÍ, 3. Professor Orientador do Departamento de Ciências Exatas e Engenharias 4

Aluno do Curso de Ciência da Computação UNIJUÍ, 3

Evento: XXV SEMINÁRIO DE INICIAÇÃO CIENTÍFICA

BALANCEAMENTO DE CARGA EM SISTEMAS MULTIPROCESSADORES UTILIZANDO O MODELO DE PROGRAMAÇÃO CHARM++ 1

ANÁLISE DE DESEMPENHO DA APLICAÇÃO DE BALANCEAMENTO DE CARGA EM BENCHMARK SINTÉTICOS 1. Bruna Schneider Padilha 2, Edson Luiz Padoin 3.

Monografia de Conclusão do Curso de Graduação em Ciência da Computação. 2

PROPOSTA DE UMA ESTRATÉGIA DE PROGRAMAÇÃO EXPLÍCITA COM ANOTAÇÃO EM CÓDIGO EM BUSCA DE EFICIÊNCIA ENERGÉTICA 1

Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante

ComprehensiveBench: Um Benchmark Flexível para Avaliação de Balanceadores de Carga no Ambiente de Programação Charm++

PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1

Aluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER

COMPARAÇÃO DE DESEMPENHO E EFICIÊNCIA ENERGÉTICA ENTRE MPSOC DE BAIXO CONSUMO E UM COMPUTADOR PESSOAL 1

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1

COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1

Uma Proposta para Migração de Páginas Linux

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core

Monitorando o Consumo Energético de Aplicações Concorrentes com Arduino

Um Calculador de Capacidade de Computação para Nós de Máquinas Virtuais LAM/MPI

UNIJUÍ UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL DCEEng DEPARTAMENTO DE CIÊNCIAS EXATAS E ENGENHARIAS

Escalonamento de Aplicações BoT em Ambiente de Nuvem

Suporte à Execução Eficiente de Aplicações em Plataformas com Paralelismo Multi-Nível

Cleber Cristiano Sartorio2, Pablo Jose Pavan3, Giovane Da Rosa Lizot4, Vinicius Ribas Samuel Dos Santos5, Edson Luiz Padoin6

XV ESCOLA REGIONAL DE ALTO DESEMPENHO ERAD 2015

Predição de Utilização de Recursos Computacionais Usando Séries Temporais

Página 1 of 5. Curriculum Vitae - CNPq. Dados Pessoais. Formação Acadêmica/Titulação. Atuação Profissional

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Avaliação do Tempo de Processamento e Comunicação via Rotinas MPI Assíncronas no Modelo OLAM

IMPLEMENTAÇÃO PARALELA DE UMA ARQUITETURA DE REDE NEURAL ARTIFICIAL DISTRIBUÍDA E REALIMENTADA 1

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

Árvore Binária de Busca Ótima - Uma Implementação Distribuída

USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO DE IMAGENS

Avaliação da Adequação da Plataforma Charm++ para Arquiteturas Multicore com Memória Hierárquica

Autor 1 Orientador: 1. dia de mês de ano

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

ARQUITETURA DE COMPUTADORES

Uma proposta para migração de páginas no Linux

Um Algoritmo de Escalonamento para Redução do Consumo de Energia em Computação em Nuvem

SSC0611 Arquitetura de Computadores

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

Estrutura do SO. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. RISC versus CISC

Administração de Serviços de Redes. Introdução a Clusters. Prof. Dayvidson Bezerra Contato:

Programação de Alto Desempenho - 2. Prof: Carla Osthoff

AVALIAÇÃO DE DESEMPENHO DE PROCESSAMENTO DISTRIBUÍDO EM LARGA ESCALA COM HADOOP

Tipos para uma Linguagem de Transformação

Análise empírica de algoritmos de ordenação

Universidade Federal de Ouro Preto

Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot

Computadores e Programação (DCC/UFRJ)

Análise de Utilização de Recursos Computacionais pelos Controladores SDN

Professora Orientadora do Departamento de Ciências Exatas e Engenharias. 4

Sobre a execução de workflows científicos sobre diferentes estrategias de dados de entrada - Uma Avaliação Experimental

Avaliação de Desempenho

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Desenvolvimento de Aplicações Paralelas

The future is parallel but it may not be easy

Load Balancing and Unbalancing for Power and Performance in Cluster-Based Systems

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela

ESTUDO E APLICAÇÃO DA LEI DE PEUKERT ESTENDIDA PARA A PREDIÇÃO DO TEMPO DE VIDA DE BATERIAS CONSIDERANDO CORRENTES VARIÁVEIS 1

CRIVO QUADRÁTICO: IMPLEMENTAÇÃO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES

SISTEMAS DISTRIBUÍDOS

Um mecanismo de monitoramento de serviços na plataforma OSGi

VERIFICAÇÃO DO DECAIMENTO DE INFORMAÇÃO EM REDES NEURAIS RECORRENTES APLICADAS AO PROBLEMA DO MUNDO DE WUMPUS 1

COMPUTAÇÃO PARALELA E DISTRIBUÍDA

SISTEMAS OPERACIONAIS

Análise de Características Comportamentais de Aplicações OpenMP para Redução do Consumo de Energia

Implementação da Especificação de Tempo Real Java para o EPOS

Usando o benchmark Rodinia para comparação de OpenCL e OpenMP em aplicações paralelas no coprocessador Intel Xeon Phi

Implementação de um escalonador de processos em GPU

Sistemas Distribuídos

Energy-Efficient Real-Time Heterogeneous Server Clusters

Autoescalonamento de máquinas virtuais baseado em séries temporais e thresholds.

Victor Emanuel F. Carvalho Sistemas de Tempo Real Prof. Julius

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 04: PROCESSAMENTO PARALELO: MULTICOMPUTADOR

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Introdução aos Conceitos de Computação Paralela através da estimativa de Pi

COMPUTAÇÃO PARALELA COM ACELERADORES GPGPU 1. Emilio Hoffmann De Oliveira 2, Edson Luiz Padoin 3.

ANÁLISE DO MOTOR DE EXECUÇÃO DA TECNOLOGIA GUARANÁ 1 ANALYSIS OF THE RUNTIME ENGINE OF GUARANÁ TECHNOLOGY

UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO

Sistemas Distribuídos

Uma introdução ao Apache Hama

Carlos Eduardo Batista Centro de Informática - UFPB

Proposta de Melhoria de uma Implementação Paralela para GPUs Usando CUDA - Estudo de Caso em Modelo Atmosférico

Computação Musical - Introdução slides do curso Computação Musical

Sistemas Distribuídos

Introdução na Computação Distribuída e Paralela

de petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de

Implementação do Conceito Big Data Utilizando Processamento Paralelo.

Os pontos mais fortes do MAS-School são: A técnica orientada a objetivos para a fase de requisitos utiliza o processo recursivo de decomposição de um

Estrutura da Apresentação. Introdução ao Processamento Paralelo e Distribuído. Conceitos em PPD. Conceitos em PPD 4/26/09.

Online Thread and Data Mapping Using the Memory Management Unit

Análise Comparativa de MPI e OpenMP em Implementações de Transposição de Matrizes para Arquitetura com Memória Compartilhada

Sistemas Distribuídos

Comparação dos algoritmos sequencial e paralelo para contagem de palavras e contexto

Escalonamento de Programas MPI-2: Divisão-e-Conquista com Work Pushing e Work Stealing

SSC PROGRAMAÇÃO CONCORRENTE. Aula 03 Terminologia Geral de Computação Paralela Prof. Jó Ueyama

SSC510 Arquitetura de Computadores. 6ª aula

Atol Fortin, Bruno da Hora, Lucas Piva, Marcela Ortega, Natan Lima, Pedro Raphael, Ricardo Sider, Rogério Papetti. 28 de novembro de 2008

Transcrição:

BALANCEADOR DE CARGA PARA DIMINUIÇÃO DO CONSUMO DE ENERGIA DE SISTEMAS PARALELOS COM O MODELO DE PROGRAMAÇÃO CHARM++ 1 PARALLEL SYSTEMS POWER SAVING ORIENTED LOAD BALANCEMENT WITH THE CHARM++ PROGRAMMING MODEL Giovane Da Rosa Lizot 2, Edson Luiz Padoin 3, Vinicius Mânica Mastella 4, Vinícius Ribas Samuel Dos Santos 5, Cleber Cristiano Sartorio 6 1 Trabalho parcialmente apoiado por UNIJUI e CNPq. Pesquisa realizada no contexto do Laboratório Internacional Associado LICIA e tem recebido recursos do edital da VRPGPE de bolsa e PIBIC/UNIJUI 2 Aluno do curso de Ciência da Computação da Unijuí e Bolsista PIBIC/UNIJUÍ 3 Professor Orientador do Departamento de Ciências Exatas e Engenharias 4 Aluno do curso de Ciência da Computação da Unijuí e Bolsista PIBIC/UNIJUÍ, 5 Aluno do Curso de Ciência da Computação UNIJUÍ 6 Egresso do curso de Ciência da Computação UNIJUÍ INTRODUÇÃO Com o crescimento do número de processador nos atuais sistemas paralelos a busca por formas eficientes de utilização de todo o seu potencial passa ser eminente. Um dos problemas enfrentados é o desbalanceamento de carga gerado pelas aplicações paralelas. Da mesma forma, muitas pesquisas buscam uma melhor eficiência energética destes sistemas computacionais. Assim, diferentes centros de pesquisa visam o desenvolvimento de técnicas de concessão de desempenho para aplicações cientıficas aprimorando processamento e eficiência energética, sendo este segundo um desafio para ser estudado e proposto neste trabalho. A nı vel de hardware, os processadores atuais permitem a redução da frequência por meio de estratégias de Dynamic Voltage and Frequency Scaling (DVFS). Já a nı vel de software, muitas estratégias de balanceamento de carga, como as implementadas com o modelo de programação Charm++, focam em reduzir o tempo de execução [ZHENG 2011]. O desbalanceamento de carga, um dos maiores culpados, ocasiona que as máquinas paralelas não consigam alcançar todo o aproveitamento desejado da estrutura que lhes é disponível. O crescimento exponencial do consumo de energia na execução de soluções HPC [DONG 2010], é proporcional ao resultado da saturação da frequência de clock do processador [LE SUEUR 2010], tornando-se uma preocupação [PINHEIRO 2001]. Assim, um dos maiores limitantes na escalabilidade de futuros sistemas de HPC se dá pelo aumento no consumo energético dos sistemas, principalmente em decorrência dos avanços tecnológicos [PADOIN 2013].

METODOLOGIA Para a implementação da proposta foram realizadas pesquisas bibliográficas sobre balanceadores de carga, aplicações paralelas e estratégias de DVFS. Dentre os balanceadores de carga pesquisados, selecionou-se os balanceadores de carga AverageLB [ARRUDA 2015] e EnergyLB [PADOIN 2014] para servirem de base para o desenvolvimento do novo balanceador. Adotou-se a plataforma de programação Charm++, extensão da linguagem C++ e propicia um ambiente de programação paralela orientada a objetos. Seu desenvolvimento foi feito pelo Laboratório de Programação Paralela da Universidade de Illinois, em 1993. O Charm++ oferece suporte a diversas plataformas, permitindo a execução de programas desenvolvidos neste modelo tanto em ambientes com memória compartilhada como também, distribuída. O primeiro balanceador selecionado, AverageLB [ARRUDA 2015], tem como estratégia de balanceamento uma abordagem do tipo centralizada, o qual toma decisões em um único processo. A estratégia do algoritmo leva em consideração a média aritmética de cada processador, calculando suas cargas com o intuito de reduzir o número de migrações, buscando um equilíbrio entre as cargas [FREYTAG 2015]. Já o segundo, EnergyLB, utiliza a estrutura de balanceamento já disponı vel no sistema em tempo de execução [PADOIN 2014]. Ele é subdividido em duas abordagens de balanceamento, conforme a plataforma da aplicação. O algoritmo do Fine-Grained EnergyLB habilita a aplicação de balanceamento de carga, visando uma melhor distribuição de tarefas entre núcleos. Mediante esses estudos, e com base nas informações adquiridas através da leitura sobre balanceadores de carga, uma proposta de um novo balanceador foi moldada, tendo o intuito de aprimorar a tomada de decisões do BC AverageLB. A ideia principal é aplicar técnicas de DVFS juntamente com migrações de tarefas e reduzir o tempo de execução e o consumo de energia. Utilizou-se um equipamento com processador modelo Intel Core i5-3230m com 4 cores físicos para a realização dos testes e validar a proposta. O equipamento tem instalado sistema operacional Linux Ubuntu 16.04 com kernel versão 4.4.33-1, Charm++ versão 6.5.1 e compilador g++ versão 6.2.1. Para a análise dos resultados alcançados com o balanceador proposto este foi comparado a outros dois balanceadores, estes disponibilizados pelo ambiente de programação do Charm++. Os quais são: RefineLB: Balanceador que possui abordagem centralizada e é baseado em refinamento. Esse BC move objetos dos core mais sobrecarregados para os menos carregados até atingir uma média, que é definida através de um método específico, limitando o número do objetos migrados [ARRUDA 2015]. GreedyLB: É um algoritmo de balanceamento de carga guloso. Esse BC remove todas as tarefas de seus núcleos e as mapeia em ordem decrescente de carga entre os núcleos com as menores cargas [FREITAS 2016]. Essa estratégia migra objetos mais pesados para o processador com a

menor carga, até que a carga de todos os processadores esteja próxima à carga média. Para analisar o desempenho do balanceador de carga proposto, testes foram realizados com o benchmark KNeighbor disponibilizado pelo ambiente do Charm++. O benchmark KNeighbor foi configurado com 150000 mensagens, 150 iterações por tarefa e sincronização a cada 10 iterações. Testes foram realizados com 50, 150 e 250 tarefas. Cada um dos testes realizados neste trabalho foi repetido 10 vezes, para se atingir um erro relativo menor que 5% e 95% de confiança estatística para uma Student s t-distribution. Entre cada um dos testes foi deixado o sistema em idle por, no mínimo, 20 segundos, de modo que a demanda de potência do sistema se estabilizasse. RESULTADOS Na Figura 1 são apresentados os resultados mensurados com o benchmark kneighbor. Observa-se que o algoritmo do NewEnergyLB conseguiu menores tempos de execução em relação aos outros dois BCs. Percebe-se que, quando realizados os testes com 50 processos, o NewEnergyLB apresentou um tempo de 5,7% menor que o algoritmo dos BC GreedyLB e 1% menor que o RefineLB. Figura 1. Resultado dos testes utilizando o benchmark Kneighbor. Fonte: O Autor.

Com base nos tempos totais de execução mensurados no benchmark Kneighbor, exibidos na Figura 1, observa-se que tanto com 50, 150 e 250 processos, o menor tempo de execução é alcançado com o novo BC. Com o aumento da quantidade de processos para 150, o algoritmo do NewEnergyLB obteve uma diferença de 10% em relação ao BC GreedyLB e 2,9% ao RefineLB. Com uma quantidade de 250 processos, a diferença foi de 6,3% e 0,6% em relação aos algoritmos do GreedyLB e RefineLB respectivamente, o que, consequentemente, otimiza o tempo de processamento equilibrando as cargas, ajustando a frequência e corrigindo a potência, o que reduz o consumo total de energia. CONSIDERAÇÕES FINAIS Neste artigo foi apresentado uma análise das melhorias aplicadas no algoritmo do BC NewEnergyLB que almeja reduzir o consumo de energia na execução de aplicações paralelas por meio do ajuste da frequência do clock de cada unidade de processamento em função de sua carga de trabalho. Analisando os resultados dos testes em comparação com o RefineLB e o GreedyLB, chegamos a conclusão que o BC proposto mostrou um melhor desempenho nos testes realizados com o benchmark Kneighbor. Como futuros trabalhos, pretende-se realizar testes em sistemas paralelos com um maior número de processadores, utilizando benchmarks e problemas reais de computação científica. Palavras-chave Charm++, Balanceamento de Carga, Consumo de Energia, Computação de Alto Desempenho. Keywords Charm++, Load Balance, Energy consumption, High Performance Computing. Agradecimentos Trabalho apoiado com recursos do programa do edital de bolsa PIBIC da UNIJUI. REFERÊNCIAS ARRUDA, G. H. S. (2015). Balanceamento de carga em sistemas multiprocessadores utilizando o modelo de programação Charm++. In Salão do Conhecimento. DONG, Y., Chen, J., and Tang, T. (2010). Power measurements and analyses of massive object storage system. In Computer and Information Technology (CIT), 2010 IEEE 10th International Conference on, pages 1317 1322. IEEE. FREITAS, V. M. C. T. de; PILLA, L. L (2016). Um protótipo de algoritmo de balanceamento de carga guiado pelos próprios núcleos. In ERAD-RS.

FREYTAG, G., Arruda, G., Martins, R. S. M., and Padoin, E. L. (2015). Análise de desempenho da paralelização do problema de caixeiro viajante. In XV Escola Regional de Alto Desempenho (ERAD), pages 1 4, Gramado, RS. SBC. LE SUEUR, E. and Heiser, G. (2010). Dynamic voltage and frequency scaling: The laws of diminishing returns. In Proceedings of the 2010 international conference on Power aware computing and systems. PADOIN, E., Castro, M., Pilla, L., Navaux, P., and Mehaut, J.-F. (2014). Saving energy by exploiting residual imbalances on iterative applications. In High Performance Computing (HiPC), 2014 21st International Conference on. PINHEIRO, E., Bianchini, R., Carrera, E. V., and Heath, T. (2001). Load balancing and unbalancing for power and performance in cluster-based systems. In Workshop on compilers and operating systems for low power, volume 180, pages 182 195. Barcelona, Spain. ZHENG, G. et al. (2011). Periodic hierarchical load balancing for large supercomputers. In International Journal of High Performance Computing Applications, SAGE Publications, v. 25, n. 4,p. 371 385.