Desempenho da Computação Paralela em Ambientes Virtualizados Rafael Lopes Gomes.
Transcript of Desempenho da Computação Paralela em Ambientes Virtualizados Rafael Lopes Gomes.
Desempenho da Desempenho da Computação Paralela em Computação Paralela em Ambientes VirtualizadosAmbientes VirtualizadosRafael Lopes Gomes
AgendaAgendaIntroduçãoVirtualizaçãoDesempenho 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 ?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 Por que utilizar virtualização ?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 ParalelaComputação ParalelaUtilizada 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 multi-core: mudar a estrutura do código das aplicações.
ObjetivosObjetivosAná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 Categorias de VirtualizaçãoVirtualizaçãoVirtualizaçã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 Categorias de VirtualizaçãoVirtualizaçãoVirtualizaçã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çãoAspectos 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 Desempenho em Um Único Ambiente VirtualizadoAmbiente VirtualizadoDescrever o trabalho de Xu et alObjetivos:
◦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).
HypervisorHypervisor Xen XenUtiliza 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.
HypervisorHypervisor Xen Xen
ExperimentosExperimentosServidor 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 OpenMPTeste com OpenMP
Teste com MPITeste com MPI
Visão Geral dos Visão Geral dos ResultadosResultadosPouco 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 Desempenho da Computação Paralela na Computação Paralela na Computação em NuvemComputação em NuvemDescrever 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).
ExperimentosExperimentos16 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 MatrizesMultiplicação de Matrizes
Multiplicação de MatrizesMultiplicação de Matrizes
Agrupamento por KmeansAgrupamento por Kmeans
Agrupamento por KmeansAgrupamento por Kmeans
Visão Geral dos Visão Geral dos ResultadosResultadosOs 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ãoConclusãoImpacto 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.