• Nenhum resultado encontrado

Influência da comunicação no rendimento de uma máquina paralela virtual baseada em Redes ATM

N/A
N/A
Protected

Academic year: 2021

Share "Influência da comunicação no rendimento de uma máquina paralela virtual baseada em Redes ATM"

Copied!
16
0
0

Texto

(1)

Influência da comunicação no rendimento de uma máquina paralela

virtual baseada em Redes ATM

Marcelo Souza *, Josemar Souza *, Milena Micheli **

( soares.souza@ig.com.br, josemar@ucsal.br, mmicheli@ufba.br)

* Universidade Católica do Salvador

Curso de Informática Salvador, Bahia, Brasil

* * Projeto REMAV – SALVADOR (REMA)

Salvador, Bahia – Brasil

Resumo: Este artigo apresenta a avaliação do desempenho de uma máquina paralela virtual

de baixo custo utilizando uma rede de comunicação de alta velocidade padrão ATM. O trabalho objetiva a criação e avaliação de uma máquina paralela virtual entre instituições ligadas ao projeto REMAV - SALVADOR. Foram utilizados a estrutura de Rede do projeto REMAV – SALVADOR, criando-se clusters de máquinas em diferente localidades a fim de avaliar o desempenho (performance) dessa máquina “rodando” em rede padrão ATM em comparação a uma máquina “rodando” em rede padrão Ethernet.

Palavras chave: ATM, REMA, Ethernet, PVM, NOW, SPMD, Redes de Computadores,

Sistemas Homogêneos, Computação Paralela, Linux.

1 - Introdução a Computação Paralela Virtual

Computação Paralela refere-se ao conceito de aumento de velocidade na execução de um programa através da divisão deste em pequenos fragmentos que são distribuídos e processados paralelamente, cada fragmento em um processador. Com isto obtemos um ganho de performance na execução de uma tarefa. A premissa é a de que se executando uma tarefa dividida entre vários processadores conseguiremos executa-la muito mais rápido. [DIETZ98]

(2)

Esses sistemas são compostos por vários processadores que operam concorrentemente, cooperando na execução de uma determinada tarefa. Nas chamadas arquiteturas paralelas o objetivo principal é o aumento da capacidade de processamento, utilizando o potencial oferecido por um grande número de processadores [STE99].

As máquinas paralelas de baixo custo, conhecidas como NOW1, utilizam as redes de computadores comerciais, locais e/ou remotas para paralelizar suas transações. Utiliza um software que permite que um conjunto heterogêneo ou homogêneo de computadores (série, paralelos ou vetoriais) seja visto como uma única máquina. Dentre outros softwares poderemos utilizar o PVM2 [ALG94] , que é um software que permite que um conjunto heterogêneo ou homogêneo de computadores seja visto como uma única máquina, sendo a portabilidade uma de suas características principais – as bibliotecas de rotinas de comunicação entre processos são “standard” de fato [DON-LUQ99]. A independência de plataforma que o PVM disponibiliza é indubitavelmente interessante; um software pode ser executado em ambientes diferentes, este fato gera segurança para desenvolvedores de software criarem aplicações paralelas, tendo em vista a portabilidade possível.

1.1 Necessidade de Computadores Paralelos

O alto custo de máquinas paralelas de qualidade voltada somente para este fim impede que muitas instituições que necessitem de grande poder de processamento adquiram uma. Com a chegada do limiar do aumento de capacidade de processamento das máquinas seqüenciais, o processamento paralelo se torna uma solução a ser considerada e estudada. Com a redução de custo e aumento de performance das Workstation, surgimento de Sistemas Operacionais robustos, gratuitos e de fácil obtenção (Linux, FreeBSD, etc...), a queda de preços em tecnologia de redes, obtém-se o cenário perfeito para a criação de máquinas paralelas virtuais. É importante salientar que cada Workstation não perde sua funcionalidade original ao ser utilizada dentro de um cluster de máquinas paralelas virtuais, podendo ser incluída e retirada a qualquer momento.

1 Network of Workstation 2 Parallel Virtual Machine

(3)

1.2. Objetivo do trabalho

Um dos principais fatores, senão o principal, de desempenho de um algoritmo baseado em troca de mensagens é a quantidade de mensagens geradas durante a sua execução, além do número de mensagens, o custo de comunicação é muito importante. [SOU2000]

Muitas pesquisas e trabalhos foram feitos utilizando redes de baixo custo, principalmente fazendo uso de redes padrão Ethernet, largamente aceita e de baixo custo na obtenção e manutenção. Trabalhos que envolvam tecnologias mais complexas e caras como ATM são quase escassos, devido ao alto custo de aquisição deste equipamentos e da falta de drivers e utilitários para a utilização de tal rede em sua forma nativa o que possibilitaria um ganho de performance nas passagem de mensagens em aplicações paralelas. O sistema operacional mais utilizado para a criação de máquinas paralelas virtuais é o Linux, onde todos os drivers e ferramentas para redes ATM ainda estão em desenvolvimento precisando ainda serem analisados e testados.

1.3 Descrição do problema

O paradigma de programação utilizado foi o SPMD3 implementado com o esquema Mestre Trabalhador (MT) ou Master Work (MW). No esquema Mestre Trabalhador, um processo será o mestre, e os restantes trabalhadores. O processo mestre centraliza o controle, inicia os trabalhadores, distribui o trabalho, sincroniza a comunicação e executa operações de I/O. Para analisar comparativamente o rendimento em um ambiente de computação paralela que se utiliza de comunicação pôr passagem de mensagem, principalmente nos aspectos relacionados a cômputo e comunicação podemos utilizar:

• aplicações reais;

• programas sintéticos ou; • benchmark.

Em nosso caso, para poder analisar os diferentes aspectos de um sistema heterogêneo em relação ao desempenho nos interessa escolher como benchmark uma aplicação escalável tanto em cômputo quanto em comunicação.

(4)

Para que um programa possa ser executado por um computador paralelo com memória distribuída e passagem de mensagem uma das opções é distribuir a mesma cópia do seu código entre os processadores, e os distintos conjuntos de dados a processar serão distribuídos entre as diversas máquinas. [SOU-REX00]

Como algoritmo bem conhecido que apresenta estas características de escalabilidade escolhemos os algoritmos de multiplicação de matrizes, que tem princípio básico de funcionamento iguais, porém, com algumas modificações na estrutura de envio e recebimento de dados para os nós da máquina paralela. O fator principal enquanto cômputo e comunicação do ponto de vista de escalabilidade, e distribuição de carga, é o tamanho dos blocos enviados para cada processo trabalhador, seguido da aplicação de comandos e funções específicos da biblioteca PVM.

O algoritmo nos permite a fazer diferentes distribuições de trabalhos em cômputo, comunicação e sobreposição de cômputo e comunicação. Também poderemos fazer distribuição de carga simétrica ou distribuição de carga balanceada tendo em conta o grau de heterogeneidade ou a potência específica de cada máquina.

O grau de heterogeneidade, que é a relação entre os índices de desempenho das distintas máquinas que constituem o cluster heterogêneo, necessário para fazer a distribuição de carga em sistemas heterogêneos, pode ser conseguido:

• executando programa cálculo de matrizes em cada máquina de maneira serial, tomando o tempo de execução de cada uma delas e dividindo o tempo de execução da máquina mais rápida pelo tempo de execução das máquinas mais lentas ou;

• executando um algoritmo que distribua carga dinamicamente, de maneira proporcional ao desempenho de cada computador (modelo MW dinâmico) extraindo daí o trabalho resultante que foi atribuído a cada processador, a medida de capacidade de cada máquina.

2 – Necessidade de uma Rede de Alta Velocidade

A rede numa máquina paralela virtual serve como barramento para a comunicação entre as máquinas pertencentes ao cluster, a depender da aplicação que está sendo rodada e de como ela foi desenvolvida tem-se a necessidade de uma grande largura banda e de grande disponibilidade da rede.

(5)

Ligando-se algumas dezenas de máquinas num cluster, a quantidade de mensagens passadas entre elas podem ser um empecilho no aumento de processos, não pode-se perder tempo na transmissão de mensagens entres as máquinas do cluster, o processador ficaria ocioso neste tempo, perdendo assim parte da força da máquina paralela.

Foi utilizada para testes a rede de alta velocidade do Projeto REMA, padrão ATM [ATMFORUM] uma tecnologia baseada na segmentação e transmissão (comutação) da informação em pequenos pacotes de tamanho fixo chamados de “célula”, tendo uma comutação rápida de pacotes.

A Rede ATM do Projeto REMA possibilita não só uma alta largura de banda mais parâmetros de QoS (Qualidade de Serviço), que podem melhorar a transmissão de pacotes dentro do cluster.

Uma das grandes vantagens da Rede ATM é a de poder interligar pontos distantes a grande velocidade. O projeto em sua fase final, pretende a criação de uma máquina paralela entre instituições parceiras. Testes foram e estão sendo feitos utilizando máquinas de duas instituições (Universidade Católica do Salvador – UCSal e Universidade Federal da Bahia – UFBa) parceiras, que estão interligadas através de Rede de Fibra Ótica a 155 Mbps do Projeto REMAV-SALVADOR (Fig. 1)

(6)

3. Experimentos realizados

Foram realizados testes com programas de multiplicação de matrizes devido o seu alto poder de escalabidade. Foi criado um cluster de duas máquinas homogêneas e executado em cada uma destas um programa de multiplicação de matrizes seqüencial afim de avaliar a capacidade de cada máquina incluída no cluster, este teste foram feitos em cada máquina pertencente ao cluster. Em seguida foram executados dois programas de multiplicação de matrizes modificados a partir do seqüencial, para fazer uso dos conceitos de paralelismo utilizando-se do paradigma SPMD adotado. Primeiramente foi utilizado uma rede Padrão Ethernet de 10Mbps. Logo depois foi utilizado uma Rede Padrão ATM (com placas de 25Mbps em cada máquina). Neste teste utilizou-se uma máquina localizada na Universidade Católica do Salvador (UCSal) e outra na Universidade Federal da Bahia (UFBa), parceiras no projeto REMA ligadas através de Fibra Ótica a uma velocidade de 155Mbps. As matrizes utilizadas para multiplicação tiveram dimensão 400 linhas x 400 colunas e 800 linhas x 800 colunas. Os programas utilizados para os testes são descritos a seguir.

3.1 Programa Serial

O programa “serial.c” será utilizado para caracterizar a potência das máquinas. Esse programa será executado em todas as máquinas que comporão a máquina paralela virtual . “serial.c” , é o algoritmo que calcula serialmente a multiplicação de matrizes. Este algoritmo Inicializa três matrizes. As matrizes “A” e “B” são usadas para o cálculo da multiplicação, e a matriz “C” recebe o resultado. O algoritmo “serial.c”, executa os seguintes passos:

As máquinas utilizadas só tem capacidade de executar o algoritmo com alocação dinâmica de memória, matrizes de até 800 x 800.

Algoritmo Serial - “serial.c”

Passo 1. O programa Inicializa as matrizes Passo 2. Captura o tempo inicial

(7)

Passo 3. Realiza a multiplicação Passo 4. Captura o tempo final

Passo 5. Diminui o tempo final do tempo inicial

Passo 6. Mostra o tempo de processamento em milisegundos

3.2. Programa Paralelo Mestre (Empacotamento Bloco a Bloco) – Assíncrono (Mestre e Trabalhador)

Utiliza o empacotamento de dados bloco a bloco “assíncrono” - divide a matriz a ser calculada pelo número de trabalhadores igualmente e envia as linhas a serem calculadas. “blbalM.c” e “blbalE.c”, são os algoritmos que calculam paralelamente de maneira assíncrona a multiplicação de matrizes.

Algoritmo Mestre - “blbalM.c ”

Passo 1. Mapa máquinas que serão utilizadas Passo 2. Identifica task no PVM

Passo 3. Obtém informações sobre a Máquina Virtual

Passo 4. Imprime na tela o numero de trabalhadores na Máquina Virtual Passo 5. Retorna e informa o numero de tasks criadas com sucesso Passo 6. Inicializa ,matrizes

Passo 7. Inicializa o buffer de envio

Passo 8. Empacotam dados no buffer de envio Passo 9. Inicia posição. na matriz

Passo 10. Envia o conteúdo do buffer de envio para a task escravo Passo 11. Imprime mensagens diversas informando situação de envio Passo 12. Espera pôr resultados das tasks trabalhador

Passo 13. Informa o tipo de mensagem Passo 14. Recebe mensagem do trabalhador Passo 15. Desempacota linhas

Passo 16. Imprime resultados em milisegundos e segundos Passo 17. Grava o resultado do tempo decorrido em arquivo

(8)

Algoritmo Trabalhador - “blbalE.c”

Passo 1. Informa task id do escravo Passo 2. Recebe mensagem do mestre

Passo 3. Informa tipo de mensagem, pega task id do processo mestre Passo 4. Espera p/ receber mensagem do mestre

Passo 5. Inicia posição nas matrizes Passo 6. Recebe linhas

Passo 7. Realiza multiplicação da matriz

Passo 8. Empacota dados do resultado para o mestre. Passo 9. Informa tipo de mensagem

Passo 10. Inicializa buffer de envio Passo 11. Envia

3.3 Programa Paralelo Mestre (Empacotamento Linha a Linha) - Semi-Síncrono (Mestre e Trabalhador)

linhamwM.c e linhamwE.c

Utiliza empacotamento de dados linha a linha “semi-sincrono” - envia uma linha da matriz a ser calculada para cada um dos trabalhadores que compõe a máquina virtual e recebe os resultados à medida que elas calculem, tornando a lhes enviar novas linhas.

“linhamwM.c” e “linhamwE.c”, são os algoritmos que calculam paralelamente de maneira Semi-sincrona a multiplicação de matrizes.

Algoritmo Mestre - “linhamwM.c”

Passo 1. Define linhas a serem enviadas

Passo 2. Faz mapeamento para máquinas estáticas (homogênea) Passo 3. Identifica task no PVM

Passo 4. Obtêm informações sobre a Máquina Virtual

(9)

Passo 6. Imprime na tela o numero de trabalhadores na Máquina Virtual Passo 7. Informa o numero de tasks criadas com sucesso

Passo 8. Inicialização das matrizes

Passo 9. Envia o conteúdo do buffer de envio para a task escravo Passo 10. Espera pôr resultados das tasks trabalhadoras

Passo 11. Informa o tipo de mensagem Passo 12. Identifica o buffer do trabalhador Passo 13. Recebe dados

Passo 14. Inicia posição. na matriz Passo 15. Recebe linhas

Passo 16. Desempacota dados

Passo 17. Envia o conteúdo do buffer de envio para a task escravo Passo 18. Envia FIM TRABALHO ao processo

Passo 20. Imprime resultados em milisegundos e segundos Passo 21. Grava o tempo decorrido em arquivo

Algoritmo Trabalhador - “linhamwE.c”

Passo 1. Informa task id do escravo Passo 2. Recebe mensagem do mestre Passo 3. Pega task id do processo mestre Passo 4. Informa tipo de mensagem

Passo 5. Espera p/ receber mensagem do mestre Passo 6. Realiza multiplicação da matriz

Passo 7. Informa tipo de mensagem Passo 8. Recebe dados

Passo 9. Espera p/ receber mensagem do mestre Passo 10. Empacota dados do resultado para o mestre Passo 11. Informa tipo de mensagem

Passo 12. Envia dados

Passo 13. Inicializa buffer de envio Passo 14. Envia

(10)

3.4. Implementação

Para a implementação da máquina paralela virtual, utilizou-se como sistema operacional o Linux (Kernel 2.2.9), utilitários para rede ATM (ATM on Linux v0.59), bibliotecas PVM (PVM v3.4.3) e para implementação dos algoritmos paralelos a linguagem de programação C, utilizando o compilador GCC4 incluso no Linux e protocolos Tcp/Ip (Tab.1) (Fig.2 ). Na utilização da Rede ATM optou-se pelo uso de LANE (Lan Emulation) que simula uma rede Ethernet em cima da rede ATM. Ás máquinas utilizadas para os testes foram.

- Trabalhadores (PVM)

Host: icaro (UFBa) IP: 200.123.59.15 Net Mask: 255.255.255.0 CPU: Intel Pentium 166 Mhz Memória: 16 Mb

HD: IDE – 2.1 GB Ethernet: 10 Mbps ATM: 25Mbps

Host: pandora (UFBa) IP: 200.128.59.17 Net Mask: 255.255.255.0 CPU): Pentium 166 Mhz Memória: 16 Mb HD: IDE - 2.1 GB Ethernet: 10 Mbps ATM: 25 Mbps

Host: perseu (UCSal) IP: 192.168.103.10 Net Mask: 255.255.255.0 CPU: Intel Pentium 166 Mhz Memória: 16 Mb

HD: IDE – 2.1 GB Ethernet: 10Mbps ATM: 25 Mbps

- Mestre (Não envolvido no trabalho, apenas administrar o cluster)

Host: gandalf (UFBa) IP: 200.128.59.12 Net Mask: 255.255.255.0 CPU: Intel Celeron 466 Mhz Memória: 64 Mb

HD: IDE – 5.1 GB Ethernet: 10 Mbps ATM: 25Mbps

Tab.1 – Especificação das máquinas

(11)

Fig.2 Ambiente de teste

4. Resultados obtidos

Os seguintes resultados foram obtidos:

Tab.2 - Programa “serial.c”, Multiplicação de Matrizes seqüencial . Executado em cada máquina do cluster. Matriz (tamanho) Algoritmo Máquina 200 400 800 Serial Pandora 5329 51508 - Serial Icaro 5346 50868 - Serial Perseu 4986 48197 - Serial Gandalf - 8361 111749 Tempo de execução (Mseg)

(12)

Algoritmo Serial 0 10000 20000 30000 40000 50000 60000

Pandora Icaro Perseu

Máquina

Mseg

Matriz 200 X 200 Matriz 400 X 400

O cluster da máquina paralela virtuais nos testes foram formado por dois trabalhadores. Tab. 3 - Programa “blbal” sobre ATM. Paralelo Bloco a Bloco. Executado no mestre(gandalf) que distribui a tarefa para os trabalhadores, ao termino do processo os trabalhadores retornam a resposta. Cluster formado pelas máquinas perseu e icaro.

Matriz (tamanho)

Algoritmo Máquina 400 800

Paralelo Bloco a Bloco PVM 28589 248591 Tempo de execução (Mseg)

Tab. 4 - Programa “blbal” sobre Ethernet. Paralelo Bloco a Bloco. Executado no mestre(gandalf) que distribui a tarefa para os trabalhadores, ao termino do processo os trabalhadores retornam a resposta. Cluster formado pelas máquinas pandora e icaro.

Matriz (tamanho)

Algoritmo Máquina 400 800

(13)

Algoritmo Bloco Balanceado 0 50000 100000 150000 200000 250000 300000 400 800 Tam. Matriz Mseg

blbal sobre ATM blbal sobre Ethernet

Tab. 5 - Programa “linhamw” sobre ATM, Paralelo Linha a Linha. Executado no mestre(gandalf) que distribui a tarefa para os trabalhadores, ao termino do processo os trabalhadores retornam a resposta. Cluster formado pelas máquinas perseu e icaro.

Matriz (tamanho)

Algoritmo Máquina 400 800

Paralelo Linha a Linha PVM 27633 236204 Tempo de execução (Mseg)

Tab. 6 - Programa “linhamw” sobre Ethernet, Paralelo Linha a Linha. Executado no mestre(gandalf) que distribui a tarefa para os trabalhadores, ao termino do processo os trabalhadores retornam a resposta. Cluster formado pelas máquinas pandora e icaro.

Matriz (tamanho)

Algoritmo Máquina 400 800

(14)

Algoritmo Linha a Linha Balanceado 0 50000 100000 150000 200000 250000 300000 400 800 Tam Matriz Mseg

linhamw sobre ATM linhame sobre Ethernet

5. Conclusões

Notou-se um sensível ganho de performance quando utilizando a Rede Padrão ATM nos casos de matrizes de tamanho 800 x 800. Nenhuma diferença considerável se notou em matrizes de tamanho 400 x 400 ou utilizando a transmissão de Linha a Linha. Mais testes são necessários, com uma quantidade maior de máquinas no cluster, para melhor ser avaliado a eficiência em uma redes ATM. Implementações de tecnologias para melhora de transmissão das redes ATM precisam ser testadas e avaliadas.

6. Trabalho futuro

Muitos experimentos ainda são necessários para se avaliar as vantagens de uma Rede ATM na criação de uma máquina paralela virtual. Novos testes devem serem feitos considerando diferentes configurações de redes:

• “Classical IP”: Com o protocolo IP “rodando” diretamente sobre a AAL5.

• LANE com MPOA: Com conexões ATM fim-a-fim podendo ser estabelecidas entre máquinas de um cluster pertencentes a ELANS diferentes.

• Nativa ATM: Com eliminação de overhead causado pelo encapsulamento de pacotes IP em células ATM.

(15)

Tais testes são fundamentais para possibilitar a criação de clusters entre instituições filiadas ao projeto REMA a fim de se obter uma maior quantidade de máquinas na criação de poderosas Máquinas Paralelas Virtuais. Essas máquinas são necessárias a grandes instituições que buscam um alto poder de processamento de dados em menor espaço de tempo mas que não dispõem de recursos para obter uma máquina paralela convencional. Estando ainda em desenvolvimento os drivers e utilitários para redes ATM em plataforma Linux – o sistema operacional adotado na criação dessa máquina paralela virtual, ainda não se tem dados concretos sobre sua eficiência. Serão feitos testes utilizando matrizes muito grande (acima de 800 x 800) e aplicações reais existentes como por exemplo Pvmpovray que serve para renderização de gráficos e outras em desenvolvimento.

(16)

6. Referências Bibliografia

[ALG94] Geist, Al. Beguelin, Adam. Dongarra, Jack. Wicheng, Jiang. Mancheck, Robert. Sunderam, Vaidy. PVM 3 User’s Guide and Reference Manual. Prepared by the Oak Ridge National Laboratory. 1994

[DON-LUQ99] Jack Dongarra, Emilio Luque, Tomàs Margalef (Eds.). Recent Advances in Parallel Virtual Machine and Message Passing Interface. 6th European PVM/MPI User’s Group Meeting.

Barcelona, Spain, September 1999. Proceeding.

[SOU2000] Souza, Josemar R. de. Influencia de la comunicación en el rendimimiento de un sistema de computación paralela, basado en redes de estaciones de trabajo. Tese de Mestrado, Arquitetura de Computadores e Processamento Paralelo. Universidade Autônoma de Barcelona, - UAB. 2000 [SOU-REX00] Souza, Josemar. Luque, Emilio. Rexachs, Dolores . Análise da distribuição de carga em um cluster heterogêneo. VI Congresso Argentino de Ciencias de la Computación – CACIC 2000, Universidad Nacional de la Patagonia San Juan Bosco – UNP, Ushuaia, Tierra del Fuego, Argentina. 2000. Anais.

[STE99] Sterling, Thomas L. Salmon, John. Becker, Donald J. e Savaresse, Daniel F. How to build a Beowulf: a guide to the implementation and aplication of PC clusters. Massachusetts Institute of Technology. 1999

[DIETZ98] Dietz, Hank Linux Parallel Processing How To. 5 January 1998. http://www.ldp.org. 2000.

Referências

Documentos relacionados

Segundo o mesmo autor, a animação sociocultural, na faixa etária dos adultos, apresenta linhas de intervenção que não se esgotam no tempo livre, devendo-se estender,

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Considera-se que a interdisciplinaridade contribui para uma visão mais ampla do fenômeno a ser pesquisado. Esse diálogo entre diferentes áreas do conhecimento sobre

Código Descrição Atributo Saldo Anterior D/C Débito Crédito Saldo Final D/C. Este demonstrativo apresenta os dados consolidados da(s)

Also due to the political relevance of the problem of repressing misguided employment relationships, during the centre-left Prodi Government (2006-2008) and the

No código abaixo, foi atribuída a string “power” à variável do tipo string my_probe, que será usada como sonda para busca na string atribuída à variável my_string.. O

Para analisar as Componentes de Gestão foram utilizadas questões referentes à forma como o visitante considera as condições da ilha no momento da realização do

[r]