Desempenho da Computação Paralela em Ambientes Virtualizados Rafael Lopes Gomes Agenda Introdução Virtualização Desempenho da Computação Paralela em Um Único Ambiente Virtualizado Desempenho da Computação Paralela na Computação em Nuvem Conclusão O que virtualização ? Virtualização: um ambiente o qual múltiplos OSs executam é uma única máquina física. Virtual Machine (VM): partição a qual cada OS executa isoladamente. Virtual Machine Monitor (VMM ou Hypervisor): camada adicional de software entre o hardware e o SO. Por que utilizar virtualização ? Solução para a consolidação de recursos, redução de consumo de energia, e para lidar com o comportamento em rajada. Empresas: virtualização para oferecer recursos de datacenter para aplicações de diversos clientes. Computação Paralela Utilizada tanto na área de negócios quanto na de HPC. Mais complexa: determinismo, sincronização, custo de comunicação e balanceamento de carga. Popularidade dos processadores multicore: mudar a estrutura do código das aplicações. Objetivos Análise do desempenho da utilização de programação paralela em ambientes virtualizados: ◦ Pequena escala: única máquina física ◦ Larga escala: computação em nuvem. Categorias de Virtualização Virtualização Completa: ◦ VMM executa sobre um SO (aplicação do usuário); ◦ dispositivos de I/O são alocados imitando dispositivos físicos (comunicação via driver); ◦ Vantagem: fácil de uso; ◦ Desvantagem: baixo desempenho (até 30% menor). Virtualização de OS : ◦ executa mais instâncias do mesmo SO em paralelo; ◦ Vantagem: facilita a administração do sistema (gerenciamento de recursos); ◦ Desvantagem:VMs só podem usar o mesmo SO. Categorias de Virtualização Virtualização de hardware (Paravirtualização): ◦ VMM é executado diretamente no hardware, controlando e sincronizando o acesso dos SOs aos recursos de hardware; ◦ Interface de software entre o hardware e os SOs modificados ◦ Vantagem: simplicidade do VMM (desempenho próximo ao hardware); ◦ Desvantagem: o SO deve ser modificado. Aspectos da Virtualização • Vantagens: – Flexibilidade; – Disponibilidade; – Escalabilidade; – Segurança; – Custo; – Adaptabilidade; – Balanceamento de Carga. • Desvantagens: – Diminuição do desempenho; – Ponto Único de Falha. Desempenho em Um Único Ambiente Virtualizado Descrever o trabalho de Xu et al Objetivos: ◦ Encontrar a sobrecarga do uso de VMs sobre o desempenho da programação paralela em uma plataforma multi-core; ◦ Compreender os efeitos da partilha de recursos sobre o desempenho da programação paralela usando o Xen. Avaliou o Open Multiprocessing (OpenMP) e o Message Passing Interface (MPI). Hypervisor Xen Utiliza paravirtualização; Os SOs que ficam nos domínios convidados (DomainU) são impedidos de executar diretamente as instruções privilegiadas; Um domínio especial (Dom0), tem permissão para acessar a interface de controle fornecida pelo hypervisor e executar as tarefas; Os domínios se comunicam uns com os outros através de páginas compartilhadas e canais de eventos. Hypervisor Xen Experimentos Servidor Dell OPTIPLEX 755, com processador Intel quad-core de 2.4GHz: Para cada DomU são alocados 2 processadores virtuais (VCPU); Teste com OpenMP: avaliar o desempenho de um programa paralelo com pouca comunicação e sincronização entre as threads ou processos; Teste com MPI: realizados testes com uma única VM, um cluster virtual em um nó físico e a máquina física. Teste com OpenMP Teste com MPI Visão Geral dos Resultados Pouco impacto sobre a aplicações paralelas simples com pouca comunicação entre as threads ou processos; Uso do Xen: executar um programa paralelo em mais VCPU do que CPU, é eficaz sem uma degradação de desempenho notável. Desempenho da Computação Paralela na Computação em Nuvem Descrever o trabalho de Ekanayake et al.: avaliação do desempenho de aplicações MPI em ambientes de nuvem; Nuvem privada Eucalyptus; Aplicações: ◦ Multiplicação de Matrizes: comunicação O(n) e C/C O( 1/√n) ; ◦ Agrupamento com Kmeans: comunicação O(1) e C/C O( 1/n). Experimentos 16 nós em um cluster iDataPlex, cada um possui um processador 2 Quad Core Intel Xeon (para um total de 8 núcleos de CPU) ; Multiplicação de Matrizes Multiplicação de Matrizes Agrupamento por Kmeans Agrupamento por Kmeans Visão Geral dos Resultados Os overheads gerados são elevados para aplicações paralelas que exigem padrões de comunicação complexos; As aplicações MPI que são sensíveis à latência obtêm um maior overhead em ambiente de computação em nuvem, e esses overheads aumentam à medida que o número de VMs por hardware aumenta. Conclusão Impacto de se executar aplicações paralelas em ambientes virtualizados: uma única máquina física e em computação em nuvem. Melhor desempenho: ◦ melhor suporte para as operações de I/O; ◦ uso de algoritmos menos sensíveis a latência.