Desempenho da Computac¸ao Paralela em Ambientes˜ …cortes/mo601/trabalho_mo601/rafael_lo… ·...

12
Desempenho da Computac ¸˜ ao Paralela em Ambientes Virtualizados Rafael Lopes Gomes 1 1 Instituto de Computac ¸˜ ao (IC) – Universidade Estadual de Campinas (UNICAMP) Campinas – SP – Brasil [email protected] 1. Introduc ¸˜ ao Virtualizac ¸˜ ao ´ e definida como um ambiente o qual m ´ ultiplos Sistemas Operacionais (Op- erational Systems - OS) executam em uma ´ unica m´ aquina f´ ısica. Cada OS executa em sua pr´ opria partic ¸˜ ao, ou M´ aquina Virtual (Virtual Machine - VM). Isso ´ e implemen- tado atrav´ es da inserc ¸˜ ao de uma camada adicional de software entre o hardware e o SO, chamada de Monitor de M´ aquina Virtual (Virtual Machine Monitor - VMM). O VMM escalona os SOs e gerencia os recursos de hardware da mesma forma que os OS geren- ciam a execuc ¸˜ ao das aplicac ¸˜ oes presentes neles. Nos dias de hoje, as tecnologias de virtualizac ¸˜ ao est˜ ao se tornando a principal soluc ¸˜ ao para a consolidac ¸˜ ao de recursos, reduc ¸˜ ao de consumo de energia, e para li- dar com o comportamento em rajada (alta variac ¸˜ ao na utilizac ¸˜ ao de recursos) de certas aplicac ¸˜ oes. Muitas empresas usam a virtualizac ¸˜ ao para oferecer recursos de datacenter para aplicac ¸˜ oes de diversos clientes, provendo v´ arios tipos de servic ¸o sobre um mesmo hardware [Ekanayake and Fox 2010]. Da mesma forma, tanto na ´ area de neg ´ ocios quanto na de Computac ¸˜ ao de Alto De- sempenho (High Performance Computing - HPC), com a popularidade dos processadores multi-core, a programac ¸˜ ao paralela aparece com um grande destaque. Assim, os desen- volvedores comec ¸aram a mudar a estrutura do c ´ odigo das aplicac ¸˜ oes para executarem em um modelo de programac ¸˜ ao paralelo [Kal´ e 2004]. Em geral, a programac ¸˜ ao paralela ´ e mais complexa que a sequencial dev- ido a adic ¸˜ ao de aspectos como [Kal´ e 2002]: determinismo, sincronizac ¸˜ ao, custo de comunicac ¸˜ ao e balanceamento de carga. Sendo que estes aspectos devem ser levados em considerac ¸˜ ao pelo programador, a fim de manter um bom desempenho do sistema como um todo. Dentro deste contexto, este trabalho analisa os aspectos relacionados ` a utilizac ¸˜ ao de programac ¸˜ ao paralela em ambientes virtualizados, apresentando os trabalhos desen- volvidos por Xu et al. [Xu et al. 2009] e Ekanayake et al. [Ekanayake and Fox 2010]. Ambos os trabalhos fazem uma an´ alise de desempenho de programas paralelos em am- bientes virtualizados. Entretanto, Xu et al. [Xu et al. 2009] efetuam seus experimentos em uma escala menor, executando os testes sobre uma ´ unica m´ aquina f´ ısica. Por outro lado, Ekanayake et al [Ekanayake and Fox 2010] realizam os experimentos em uma es- cala maior, efetuando os testes em uma ambiente de computac ¸˜ ao em nuvem, com um umero maior de m´ aquinas f´ ısicas. O restante deste trabalho ´ e organizado da seguinte forma: a Sec ¸˜ ao 2 mostra um vis˜ ao geral dos aspectos relacionados ` a virtualizac ¸˜ ao, a Sec ¸˜ ao 3 descreve a analise de

Transcript of Desempenho da Computac¸ao Paralela em Ambientes˜ …cortes/mo601/trabalho_mo601/rafael_lo… ·...

Desempenho da Computacao Paralela em AmbientesVirtualizados

Rafael Lopes Gomes 1

1Instituto de Computacao (IC) – Universidade Estadual de Campinas (UNICAMP)Campinas – SP – Brasil

[email protected]

1. IntroducaoVirtualizacao e definida como um ambiente o qual multiplos Sistemas Operacionais (Op-erational Systems - OS) executam em uma unica maquina fısica. Cada OS executa emsua propria particao, ou Maquina Virtual (Virtual Machine - VM). Isso e implemen-tado atraves da insercao de uma camada adicional de software entre o hardware e o SO,chamada de Monitor de Maquina Virtual (Virtual Machine Monitor - VMM). O VMMescalona os SOs e gerencia os recursos de hardware da mesma forma que os OS geren-ciam a execucao das aplicacoes presentes neles.

Nos dias de hoje, as tecnologias de virtualizacao estao se tornando a principalsolucao para a consolidacao de recursos, reducao de consumo de energia, e para li-dar com o comportamento em rajada (alta variacao na utilizacao de recursos) de certasaplicacoes. Muitas empresas usam a virtualizacao para oferecer recursos de datacenterpara aplicacoes de diversos clientes, provendo varios tipos de servico sobre um mesmohardware [Ekanayake and Fox 2010].

Da mesma forma, tanto na area de negocios quanto na de Computacao de Alto De-sempenho (High Performance Computing - HPC), com a popularidade dos processadoresmulti-core, a programacao paralela aparece com um grande destaque. Assim, os desen-volvedores comecaram a mudar a estrutura do codigo das aplicacoes para executarem emum modelo de programacao paralelo [Kale 2004].

Em geral, a programacao paralela e mais complexa que a sequencial dev-ido a adicao de aspectos como [Kale 2002]: determinismo, sincronizacao, custo decomunicacao e balanceamento de carga. Sendo que estes aspectos devem ser levadosem consideracao pelo programador, a fim de manter um bom desempenho do sistemacomo um todo.

Dentro deste contexto, este trabalho analisa os aspectos relacionados a utilizacaode programacao paralela em ambientes virtualizados, apresentando os trabalhos desen-volvidos por Xu et al. [Xu et al. 2009] e Ekanayake et al. [Ekanayake and Fox 2010].Ambos os trabalhos fazem uma analise de desempenho de programas paralelos em am-bientes virtualizados. Entretanto, Xu et al. [Xu et al. 2009] efetuam seus experimentosem uma escala menor, executando os testes sobre uma unica maquina fısica. Por outrolado, Ekanayake et al [Ekanayake and Fox 2010] realizam os experimentos em uma es-cala maior, efetuando os testes em uma ambiente de computacao em nuvem, com umnumero maior de maquinas fısicas.

O restante deste trabalho e organizado da seguinte forma: a Secao 2 mostra umvisao geral dos aspectos relacionados a virtualizacao, a Secao 3 descreve a analise de

desempenho realizada por Xu et al. [Xu et al. 2009], a Secao 4 mostra os experimentosrealizados por Ekanayake et al. [Ekanayake and Fox 2010] em ambientes de computacaoem nuvem, e a Secao 5 conclui o trabalho, fazendo uma analise geral do trabalho comoum todo.

2. Virtualizacao

A Virtualizacao e normalmente definida como uma tecnologia que introduz uma camadade abstracao entre o hardware e o OS (e consequentemente as aplicacoes que executam so-bre ele). Essa camada de abstracao e chamada VMM, ou hypervisor, e basicamente ocultaos recursos fısicos dos OSs. Devido ao fato dos recursos de hardware serem diretamentecontrolados pelo VMM e nao pelo OS, e possıvel executar diversos (e possivelmente dis-tintos) SOs em paralelo sobre o mesmo hardware, onde cada unidade logica dessas echamada de VM [Sahoo et al. 2010].

2.1. Classificacao

A virtualizacao permite a abstracao e isolamento de funcionalidades de baixo nıvel edo hardware subjacente. Isso permite a portabilidade de funcoes de nıvel superior e decompartilhamento e/ou agregacao dos recursos fısicos. As abordagens de virtualizacaopodem ser categorizadas em: completa, de OS ou de hardware (Paravirtualizacao). Aseguir serao descritas cada uma delas.

2.1.1. Virtualizacao Completa

Nessa abordagem, o VMM executa sobre um SO, geralmente como uma aplicacao dousuario, com isso ocorre a virtualizacao de todos os recursos. Neste tipo de configuracaoos dispositivos de I/O sao alocados imitando dispositivos fısicos, interagindo diretamentecom os dispositivos fısicos atraves de uma driver do SO.

A principal vantagem desta abordagem e o facil de uso. Um usuario comum podeinstalar um software, como por exemplo o VMware Workstation. A principal desvan-tagem e o baixo desempenho, que pode ser de ate 30% menor do que quando executadodiretamente no hardware [Sahoo et al. 2010].

2.1.2. Virtualizacao de SO

Esta abordagem de virtualizacao executa mais instancias do mesmo SO em paralelo. Istosignifica que nao o hardware, mas sim o SO e o que esta sendo virtualizado. As VMsresultantes todos usam a mesma imagem de SO.

Esta arquitetura facilita a administracao do sistema, permitindo que os admin-istradores do sistema atribuam recursos tanto ao criar uma VM bem como dinamica-mente em tempo de execucao. Quando comparada com outras solucoes de virtualizacao,a virtualizacao de SO tende a ser mais eficiente. No entanto, esta abordagem tem umgrande inconveniente: as VMs so podem usar o mesmo kernel de SO (portanto, nao epossıvel rodar o Windows por exemplo, sobre Linux).

2.1.3. Virtualizacao de Hardware ou Paravirtualizacao

Esta abordagem e comumente usada no mercado de servidores devido ao seu alto nıvelde isolamento e de desempenho. Aqui, o VMM e executado diretamente no hardware,controlando e sincronizando o acesso dos SOs aos recursos de hardware.

Ao contrario de virtualizacao completa, na Paravirtualizacao, o SO deve ser mod-ificado, a fim de ser operado no ambiente virtual. A Paravirtualizacao fornece uma in-terface de software entre o hardware e os SOs modificados. Um fato interessante nessatecnologia e que as maquinas de hospedeiras estao cientes do fato de estarem sendo exe-cutadas em um ambiente virtualizado.

Uma das principais caracterısticas do Paravirtualizacao e a simplicidade do VMM,que permite obter um desempenho mais proximo ao hardware nao-virtualizado. Ainteracao entre os dispositivos e muito semelhante a da interacao em ambiente virtualcompleto: os dispositivos virtuais no ambiente Para virtualizado depende de controladoresde dispositivos fısicos.

2.2. Vantagens e DesvantagensAs vantagens existentes ao se utilizar solucoes baseadas em virtualizacao sao:

1. Flexibilidade: pode-se executar mais de uma instancia de um SO em um unicocomputador, sendo possıvel migrar uma VM de um computador fısico para outro.Em alguns casos, pode-se alterar as especificacoes das VMs, enquanto eles estaoexecutando.

2. Disponibilidade: em caso de manutencao de hardware, as VMs podem sermigradas para outras maquinas fısicas temporariamente, mantendo os servicosativos.

3. Escalabilidade: se tem grande facilidade para adicionar e remover VMs, portantoconsegue-se atender as variacoes de demanda mais facilmente.

4. Seguranca: pode-se ter uma maior separacao dos servicos, onde cada maquinavirtual executa um servico especıfico. Sendo assim, se um certo servico (em umaVM) e comprometido, os demais nao sao afetados.

5. Custo: e possıvel se reduzir custo atraves da implantacao de um datacenter comum numero menor de maquinas de maior poder computacional, ao inves de se terdiversas maquinas com menor capacidade para cada certo tipo de servico.

6. Adaptabilidade: as mudancas na intensidade da carga de trabalho podem ser aten-didas pela transferencia de recursos entre as VMs, para isso pode-se usar tecnicasde alocacao dinamica de recursos.

7. Balanceamento de Carga: e relativamente facil para migrar VMs para outrasmaquinas fısicas, a fim de melhorar o desempenho do sistema como um todoatraves de um melhor balanceamento de carga, ou ate economia de energia.

A virtualizacao obviamente tem muitas vantagens, entretanto a utilizacao dastecnicas de virtualizacao acarretam certas desvantagens tambem:

1. Diminuicao do desempenho: O desempenho e muitas vezes e comprometido dev-ido a flexibilidade.

2. Ponto Unico de Falha (Single Point Of Failure - SPOF): Ainda que a VM sejadesacoplada do equipamento, esta ainda e dependente do funcionamento do hard-ware.

3. Desempenho da Computacao Paralela em Ambientes VirtualizadosUm dos grandes desafios de se utilizar virtualizacao e manter o nıvel de desempenho dasaplicacoes que executam nas VMs, principalmente quando se tem um ambiente baseadoem computacao paralela.

A fim de avaliar o desempenho das aplicacoes paralelas em ambientes virtualiza-dos, principalmente em quando se tem uma maquina fısica com um processador multi-core, Xu et al [Xu et al. 2009] desenvolveram um trabalho que visa encontrar a sobre-carga do uso de VMs sobre o desempenho da programacao paralela em uma plataformamulti-core.

O trabalho desenvolvido por Xu et al. realiza medicoes para melhor compreen-der os efeitos da partilha de recursos sobre o desempenho da programacao paralela uti-lizando o hypervisor Xen [Barham et al. 2003]. Especificamente, para uma ou variasmaquinas virtuais rodando em uma plataforma multi-core. O trabalho avaliou o de-sempenho de dois principais paradigmas de programacao paralela: Open Multiprocess-ing (OpenMP) [Chapman et al. 2007] [Chandra et al. 2001] e Message Passing Interface(MPI) [Snir et al. 1998] [Pacheco 1996].

OpenMP e uma API que prove suporte a programacao multi-plataforma de Mul-tiprocessamento de Memoria Compartilhada (Shared Memory Multiprocessing) em C,C++, e Fortran. O OpenMP e um conjunto de diretivas de compilador, bibliotecas evariaveis de ambiente que influenciam o comportamento em tempo de execucao.

MPI e um sistema padronizado de transmissao de mensagens projetado para fun-cionar em uma ampla variedade de computadores paralelos. A norma define a sintaxe ea semantica das rotinas para que os usuarios escrevam os programas de transmissao demensagens em Fortran ou C.

O objetivo do trabalho desenvolvido por Xu et al.: e (1) entender o impacto nodesempenho de se ter varias VMs em uma plataforma multi-core, e (2) explorar o impactoda virtualizacao sobre os diferentes modelos de programacao paralela.

3.1. Visao Geral do XenXen e um VMM popular de alto desempenho que utiliza paravirtualizacao, portanto exigeque os SOs do host sejam adaptados para a arquitetura Xen. No entanto, o Xen naorequer alteracoes na interface binaria de aplicativo. Sendo assim, as aplicacoes podem serexecutadas sem qualquer modificacao.

No Xen, o hypervisor e executado a um nıvel mais privilegiado. Acima do hy-pervisor ficam os domınios Xen (no caso as VMs). Os SOs que ficam nos domıniosconvidados (UserDomais, DomU ou DomainU) sao impedidos de executar diretamenteas instrucoes privilegiadas. Um domınio especial, chamado Domınio 0 (ou Dom0), tempermissao para acessar a interface de controle fornecida pelo hypervisor e executar astarefas para criar, destruir ou migrar outros domınios. A estrutura do Hypervisor Xenpode ser visualizada na Figura 1.

No Xen, os domınios se comunicam uns com os outros atraves de paginas com-partilhadas e canais de eventos, os quais provem mecanismos de notificacoes assıncronasentre os domınios. Um operacao “send” em um dos lados ira causar um evento a ser rece-bido pelo domınio de destino, o qual por sua vez pode provocar uma interrupcao. Se um

Figura 1. Estrutura do Hypervisor Xen [Barham et al. 2003].

domınio quer enviar dados para outro, o esquema tıpico e de o domınio de origem con-ceder acesso a paginas de memoria locais para o domınio de destino e, em seguida, enviarum evento de notificacao. Em seguida, a pagina compartilhada e usada para transferir osdados.

Devido ao mecanismo de I/O especial do Xen, com o aumento da taxa decomunicacao total, a carga no domınio 0 e cada vez mais pesada. Sendo este um dosprincipais problemas do Xen para programas paralelos, especialmente para os programasque sao sensıveis aos aspectos de comunicacao.

3.2. Ambiente de Teste

Os experimentos realizados por Xu et al. ocorreram e uma servidor Dell OPTIPLEX 755,com processador Intel quad-core de 2.4GHz. Cada nucleo possui 32KB de dados privadose instrucoes de cache L1, e a cada dois nucleos sao compartilhados 4MB de cache L2. Oservidor tem 4GB de memoria RAM e 250GB de disco rıgido com Direct Memory Access(DMA) habilitado.

O Servidor executava o OpenSUSE-11.0 (kernel 2.6.25 paravirtualizado) noDom0 com o hypervisor Xen 3.2. O SO no DomU tambem foram OpenSUSE-11.0 (ker-nel 2.6.25), com todos os servicos nao necessarios para o experimento desabilitados. Paracada DomU sao alocados 2 processadores virtuais (VCPU), 256MB de memoria RAM,8GB de disco rıgido e utilizou-se interfaces de rede no modo bridge para interligar oDom0 e com os DomUs.

3.3. Resultados

Nesta secao, sao mostrados os resultados obtidos por Xu et al., os experimentos visamexplorar o overhead gerado pela virtualizacao, avaliar o desempenho do paralelismo eanalisa a eficiencia do OpenMP e do MPI em um ambiente Xen.

3.3.1. Teste com OpenMP

Primeiramente, foi comparado o desempenho de um programa paralelo simples, escritoem linguagem C, a partir do Argonne National Laboratory1, tanto no ambiente virtualquanto diretamente no hardware. Este teste teve como objetivo avaliar o desempenhode um programa paralelo com pouca comunicacao e sincronizacao entre as threads ouprocessos.

Figura 2. Tempo de Execucao com OpenMP.

O grafico da Figura 2 mostra que o desempenho do OpenMP, tanto no ambientevirtual quanto na maquina fısica, sao muito proximos. Para se analisar o desempenho foiutilizado o programa Oprofile2, uma ferramenta presente nos sistemas Linux, para analisaros Ciclos por Instrucao (Cycles per instruction - CPI). Utilizou-se uma proporcao menorque 0.01% de execucao serial, seguindo a lei de Amdahl’s, de acordo com a Equacao 1.

Speedup =1

S + (1−S)P

, S < 0.0001 , P = 4 (1)

Figura 3. Speedup com OpenMP.

A Figura 3 mostra que o CPI do programa usando OpenMP obtem um speedupideal tanto na maquina fısica quanto no DomU. Entretanto, o valor do speedup no DomU

1http://www.anl.gov/2http://oprofile.sourceforge.net/about/

e um pouco menor do que na maquina fısica. Percebe-se que o valor speedup continuaaumentando quando o numero de threads e superior ao numero de CPU da maquina fısica,embora a especificacao de Xen afirmar que se tem uma perda de desempenho nesse tipode cenario.

3.3.2. Teste com MPI

No trabalho feito por Xu et al. tambem foi avaliado o CPI no modelo MPI. O ambienteMPI usado foi o MPICH23, que e uma implementacao portatil do MPI do Argonne Na-tional Laboratory. Foram realizados testes com: uma unica VM, um cluster virtual emum no fısico (comunicando-se atraves de SSH uns com os outros) e a maquina fısica.

Figura 4 mostra que o tempo de execucao do programa, em unica VM, no clus-ter virtual, e de maquina fısica, obtem um desempenho quase sem nenhuma diferenca.Quando o numero de processos e superior a 4, que e o numero CPUs reais, o tempo deexecucao do programa nao tem alteracao em nenhum dos tres ambientes.

Figura 4. Tempo de Execucao com MPI.

Semelhante ao CPI com implementacao no OpenMP, a proporcao de codigo quenao pode ser feita em paralelo e inferior a 0,01%. O valor do speedup ideal para CPIcom MPI esta em torno de 4. A Figura 5 mostra que a execucao em uma VM e eficiente,obtendo valores proximos ao da maquina fısica.

De maneira geral, ambiente de maquina virtual gera pouco impacto sobre aaplicacoes paralelas simples com pouca comunicacao entre as threads ou processos. Istoocorre principalmente devido ao uso do Xen. Com paravirtualizacao, executar um pro-grama paralelo em mais VCPU do que CPU, e eficaz sem uma degradacao de desempenhonotavel, apesar do fato de que VCPU precisa de algum trabalho extra para mapear CPUdurante a execucao de uma thread ou processo.

3.3.3. Visao Geral dos Resultados

Os experimentos realizados por Xu et al mostraram que nao procede a ideia de que quandose tem mais VCPUs do que CPUs sempre ha um impacto negativo significante sobre os

3http://www.mcs.anl.gov/research/projects/mpich2/

Figura 5. Speedup com MPI.

programas paralelos, especialmente quando a comunicacao e sincronizacao entre threadsou processos e baixa.

Com relacao ao paradigma MPI, este acabou sendo mais eficiente para os progra-mas paralelos que nao sao sensıveis ao atraso de comunicacao, independente se o numerode VCPU e maior do que o numero CPU ou nao. Mas, para algumas aplicacoes sensıveisao atraso de comunicacao, o desempenho de OpenMP apresentou uma degradacao maissignificante.

4. Desempenho da Computacao Paralela na Computacao em Nuvem

A introducao de servicos de computacao em nuvem, como a Amazon EC2/S34 e GoGrid5,permitem aos usuarios utilizarem grandes unidades de processamento de maneira facil erapida, atraves do pagamento de um valor monetario apenas durante o uso dos recursos.A utilizacao dos recursos virtualizados permite ao usuario personalizar VM e usa-las comprivilegios administrativos, que e outra caracterıstica que e difıcil de conseguir com asinfra-estruturas tradicionais.

A disponibilidade da infra-estrutura de nuvem open source, como Nimbus6 e Eu-calyptus7, e as tecnologias de virtualizacao como o Xen [Barham et al. 2003], permitemque as organizacoes possam construir nuvens privadas a fim de melhorar a utilizacaodos recursos computacionais de suas instalacoes. A possibilidade de provisionamentodinamico de recursos atraves da locacao de infra-estruturas comerciais de nuvem torna ouso de nuvens privadas mais promissor.

Com todas as caracterısticas citadas, pode-se dizer que a acessibilidade ao poderde computacao nao e mais uma barreira para os usuarios que precisam executar dadosem grande escala [Ekanayake and Fox 2010]. No entanto, para realizar esses calculos,existem duas importantes pre-condicoes a serem satisfeitas: (i) a aplicacao deve ser par-alelizavel para que se possa utilizar todos os recursos disponıveis, e (ii) deve haver umsuporte de execucao paralela [Kale 2004].

4http://aws.amazon.com/pt/ec2/5http://www.gogrid.com/6http://www.nimbusproject.org/7http://www.eucalyptus.com/eucalyptus-cloud

A fim de compreender o impacto no desempenho quando se usa virtualizacao derecursos para as aplicacoes MPI, foi realizada uma analise utilizando infraestrutura denuvem privada Eucalyptus. Para esta analise, foram utilizados dois aplicativos MPI comdiferentes de caracterısticas, um de Multiplicacao de Matrizes e um de Agrupamento comKmeans. Em vez de medir caracterısticas individuais, como largura de banda e latencia,foram usadas aplicacoes reais para entender o efeito da virtualizacao dos recursos emtais aplicacoes. Tabela 1 destaca as principais caracterısticas das aplicacoes utilizadas em[Ekanayake and Fox 2010].

Tabela 1. Descricao das aplicacoes MPI utilizadas [Ekanayake and Fox 2010]Aplicacao Multiplicacao de Matrizes Agrupamento com KmeansDescricao Implementa o algoritmo de

Cannon (assume uma graderetangular).

Implementa o algoritmo deagrupamento Kmeans.

Granularidade Numero de pontos em umbloco da matriz controladopor cada processo MPI.

Numero de pontos de da-dos controlados por um unicoprocesso MPI.

Comunicacao Cada processo MPIcomunica-se com os viz-inhos (tanto coluna quantolinha).

Todos os processos MPI en-viam um agrupamento parcialpara um processo MPI, o qualdistribui os novos centros degrupos para todos os nos.

Comunicacao porprocesso MPI

O(n)

O(1)

Communication-to-Computation(C/C)

O(

1√n

)O(1n

)

A infra-estrutura do Eucalyptus (versao 1.4) foi implantada em 16 nos de umcluster iDataPlex, cada um possui um processador 2 Quad Core Intel Xeon (para umtotal de 8 nucleos de CPU) e 32 GB de memoria. Nos casos em que o testes foramfeitos na maquina fısica, tambem chamada de Bare-Metal (BM), cada no executa umsistema operacional Red Hat Enterprise Linux Server release 5.2. Nos testes foi utilizadoo OpenMPI versao 1.3.2.

Quando as VMs sao implantadas usando Eucalyptus, pode-se configurar o numerode nucleos de CPU atribuıdos a cada VM. Na versao do Eucalyptus utilizada, o numeromınimo de nucleos que podemos ser atribuıdos a uma VM e 1. Portanto, foram seleciona-dos cinco configuracoes de alocacao de nucleos, listadas na Tabela 2.

Os testes foram executados em todas as 5 configuracoes e mediu-se o desempenhoatraves do calculo do speedup e do tempo de execucao ate a realizacao das tarefas dasrespectivas aplicacoes. Os tempos medios mostrados nas figuras sao obtidos utilizando60 execucoes para cada uma das configuracoes.

Para a aplicacao de Multiplicacao de Matrizes, os graficos, na Figura 6, mostramque o desempenho de todas as configuracoes foram muito proximos. Como esperado,as execucoes feitas diretamente na maquina fısica obtiveram um melhor desempenho e

Tabela 2. Descricao das Configuracoes de Hardware/VMReferencia Descricao No de Nucleos de

CPU disponıveisNo de NosMPI

BM No Bare-Metal 8 161-VM-8-Core 1 VM por no 8 162-VM-4-Core 2 VM por no 4 324-VM-2-Core 4 VM por no 2 648-VM-1-Core 8 VM por no 1 128

(a) Tempo de Execucao (b) Speedup

Figura 6. Resultados referentes a Aplicacao de Multiplicacao de Matrizes.

melhores valores de speedup, quando comparado as as configuracoes com VMs. Aposa execucao na maquina fısica, o melhor desempenho foi o de 1 VM por no, onde adiferenca de desempenho ocorre principalmente devido ao overhead gerado pelo processode virtualizacao.

Nos testes com a aplicacao de Agrupamento com o Kmeans, o efeito davirtualizacao de recursos e muito mais claro do que no caso da Multiplicacao de Matrizes.Todas as configuracoes utilizando VM mostram um desempenho inferior a configuracaoutilizando apenas as maquinas fısicas.

Nesta aplicacao, a quantidade de dados transferidos entre processos MPI e ex-tremamente baixo quando comparado com a quantidade de dados processados por cadaprocesso MPI. Os graficos da Figura 7 mostram o overhead para a aplicacao de Agrupa-mento com o Kmeans nas diferentes configuracoes usando VM e das maquinas fısicas.

A partir dos resultados, pode-se ver que as aplicacoes com menores taxas darelacao comunicacao por calculo (Communication-to-Computation – C/C) obtem um piordesempenho com recursos virtualizados. Quando a quantidade de dados transferidos en-tre processos MPI for grande, tal como na multiplicacao de matrizes, a aplicacao e maissusceptıvel para a largura de banda do que a latencia. Portanto, pode-se perceber que avirtualizacao dos recursos nao afetou a largura de banda consideravelmente. No entanto,os outros resultados mostram que a virtualizacao causou problema de latencia para asaplicacoes, o efeito sobre a latencia aumenta a medida que utiliza-se mais mais VMs emuma mesma maquina fısica.

(a) Tempo de Execucao (b) Speedup

Figura 7. Resultados referentes a Aplicacao de Agrupamento por Kmeans.

Como mostrado anteriormente na Secao 3.1, o DomUs nao sao capazes de realizaroperacoes I/O. Em vez disso, eles se comunicam com Dom0, o qual executa as operacoesde I/O em nome dos DomUs. Entao, como todas as operacoes de I/O sao dependentes darede, isso gera um maior dano ao desempenho das VMs.

4.1. Visao Geral dos Resultados

Embora as tecnologias de nuvem proporcionem uma melhor qualidade de servico comotolerancia a falhas e monitoramento, os overheads gerados sao elevados para aplicacoesparalelas que exigem padroes de comunicacao complexos, fato que limita o uso de tec-nologias da nuvem para aplicacoes que nao possuam este aspecto.

Percebeu-se que as aplicacoes MPI que sao sensıveis a latencia obtem um maioroverhead em ambiente de computacao em nuvem, e esses overheads aumentam a medidaque o numero de VMs por hardware aumenta. Por exemplo, na aplicacao de Agrupamentocom o Kmenas, uma VM por no apresenta no mınimo de 8% a mais de sobrecarga total,enquanto 8 VMs por no mostra sobrecarga de pelo menos 22%.

5. Conclusao

Este trabalhou apresentou os aspectos relacionados ao desempenho da computacao par-alela em ambientes virtualizados, apresentando os trabalhos realizados por Xu et al.[Xu et al. 2009] e por Ekanayake et al. [Ekanayake and Fox 2010]. Estes trabalhosmostraram o impacto de se executar aplicacoes paralelas em ambientes virtualizados emuma unica maquina fısica e em computacao em nuvem, respectivamente.

A partir dos resultados mostrados, percebe-se que as arquiteturas de virtualizacaoque dao um melhor suporte para as operacoes de I/O, e o uso de algoritmos menossensıveis a latencia, seriam caracterısticas chave para melhorar os overheads que os am-bientes virtualizados geram em algumas das aplicacoes paralelas. O primeiro aspecto e omais importante, pois e natural que se execute muitas VMs em ambientes virtualizados.

Aplicacoes que nao sao suscetıveis a latencias, como aplicativos que realizamgrandes transferencias de dados e/ou uma maior taxa de C/C, mostram um overheadmınimo.

ReferenciasBarham, P., Dragovic, B., Fraser, K., Hand, S., Harris, T., Ho, A., Neugebauer, R., Pratt,

I., and Warfield, A. (2003). Xen and the art of virtualization. In Proceedings of thenineteenth ACM symposium on Operating systems principles, pages 164–177.

Chandra, R., Dagum, L., Kohr, D., Maydan, D., McDonald, J., and Menon, R. (2001).Parallel programming in OpenMP. Morgan Kaufmann Publishers Inc., San Francisco,CA, USA.

Chapman, B., Jost, G., and Pas, R. v. d. (2007). Using OpenMP: Portable Shared MemoryParallel Programming (Scientific and Engineering Computation). The MIT Press.

Ekanayake, J. and Fox, G. (2010). High performance parallel computing with cloudsand cloud technologies. In Avresky, D., Diaz, M., Bode, A., Ciciani, B., and Dekel,E., editors, Cloud Computing, volume 34 of Lecture Notes of the Institute for Com-puter Sciences, Social-Informatics and Telecommunications Engineering, pages 20–38. Springer Berlin Heidelberg.

Kale, L. V. (2002). The virtualization model of parallel programming : Runtime opti-mizations and the state of art. In Los Alamos Computer Science Institute (LACSI).

Kale, L. V. (2004). Performance and productivity in parallel programming via processorvirtualization. In Proc. of the First Intl. Workshop on Productivity and Performance inHigh-End Computing (at HPCA 10).

Pacheco, P. S. (1996). Parallel programming with MPI. Morgan Kaufmann PublishersInc., San Francisco, CA, USA.

Sahoo, J., Mohapatra, S., and Lath, R. (2010). Virtualization: A survey on concepts, tax-onomy and associated security issues. In Second International Conference on Com-puter and Network Technology (ICCNT), pages 222 –226.

Snir, M., Otto, S., Huss-Lederman, S., Walker, D., and Dongarra, J. (1998). MPI-TheComplete Reference, Volume 1: The MPI Core. MIT Press, Cambridge, MA, USA,2nd. (revised) edition.

Xu, C., Bai, Y., and Luo, C. (2009). Performance evaluation of parallel programming invirtual machine environment. In Sixth IFIP International Conference on Network andParallel Computing (NPC 2009), pages 140 –147.