62ª Reunião Anual da SBPC
A. Ciências Exatas e da Terra - 2. Ciência da Computação - 8. Processamento Paralelo e Distribuído
MEDIDA DE DESEMPENHO DE CLUSTER BEOWULF NA EXECUÇÃO DE UM ALGORITMO PARALELO
David Willians dos Santos Cavalcanti Beserra 1
Emanoel Carlos Gomes Ferraz Silva 2
Samuel Carlos Romeiro de Azevedo Souto 2
Mariel José Pimentel de Andrade 2
Alberto Einstein Pereira de Araújo 3
1. Bacharelado em Ciência da Computação, UAG - UFRPE, Garanhuns, PE.
2. Unidade Acadêmica de Garanhuns, UAG - UFRPE, Garanhuns, PE.
3. Prof. Dr. /Orientador - Unidade Acadêmica de Garanhuns, UAG - UFRPE, Garanhuns,
INTRODUÇÃO:
O principal objetivo da computação paralela é aumentar o desempenho no processamento de informações, portanto, formas de medição de desempenho são necessárias. Uma forma largamente utilizada para medir o desempenho de um algoritmo paralelo em um sistema Cluster é através do Speedup, que mede o fator de redução do tempo de execução de um programa paralelizado em P processadores, sendo obtido como a razão do tempo de processamento do programa em um único processador denominado Ts pelo tempo de execução em um computador com P processadores, denominado Tp. O Speedup é dito relativo quando Ts é igual ao tempo de execução do programa paralelo em 1 processador e absoluto quanto é igual ao tempo de execução do "melhor" programa seqüencial. A Eficiência de um programa paralelo é determinada pela relação entre o Speedup obtido e o número de processadores necessários para obtê-lo. Ela é a fração do tempo que os processadores gastam fazendo trabalho útil. É usada para medir a qualidade de um algoritmo paralelo. Ela caracteriza como um algoritmo utiliza os recursos de um computador paralelo independentemente do tamanho do problema. Utilizando essas métricas foi determinado o desempenho de um Cluster Beowulf montado na Unidade Acadêmica de Garanhuns, na execução de um algoritmo paralelo.
METODOLOGIA:
Foi utilizado um Cluster Beowulf, construído com o uso de três maquinas de processador de dois núcleos, com 2.0 GHz de freqüência por núcleo, interligadas por uma rede do padrão Fast-Ethernet de 100 Mbps e utilizando o Linux Rocks Cluster como sistema operacional. O Algoritmo utilizado nos testes realiza o somatório dos N primeiros números naturais, onde N é um parâmetro definido pelo usuário. O programa utiliza um arquivo que contem todos os números que se deseja somar e realiza a soma de maneira seqüencial. Para que fosse permitida sua execução em clusters Beowulf, o algoritmo foi escrito em C com o uso de uma biblioteca do tipo Interface de Passagem de Mensagens (MPI), com a implementação especifica Openmpi. O programa foi posto para realizar o somatório de 100, 300 e 500 milhões de números respectivamente, variando o número de maquinas utilizadas em 1, 2 e 3 e o número de processos MPI criados em 2,4,6,8,16 e 32. Foram coletados os tempos de processamento em segundos após cada execução e organizados os dados em tabelas referenciando os tempos de execução com a quantidade de maquinas utilizada e a quantidade de processos criados. Depois dessa coleta foram elaboradas as tabelas com os Speedups alcançados e com a Eficiência do sistema Cluster para a execução deste algoritmo.
RESULTADOS:
Foram realizadas medidas do tempo de processamento para 100, 300 e 500 milhões de números, dividindo em 4,6,8,16 e 32 processos. Os tempos obtidos variam de 11 segundos para 1 nó com 2 processos a 396 segundos com 3 nós 3 32 processos. Ficou evidenciado que, para somar 100 milhões de números, 2 e 3 nós demoram muito mais do que um nó isolado. Para 300 milhões também não se tem bom desempenho, mas a diferença de tempo diminui de maneira notável. Para 500 milhões com 3 nós foram constatadas reduções significativas de tempo de processamento, sendo impossível a resolução do problema com um único nó. Na maioria das situações os Speedups ficaram abaixo de 1, o que era esperado tendo em vista que os tempos de execução, na maioria dos casos, piorava ao invés de melhorar. Os únicos casos em que a maioria dos Speedups passou de 1 foram com a soma de 500 milhões de números. Quanto a Eficiência, os melhores resultados foram para 300 milhões e 2 nós, havendo queda com o uso de 3 nós, resultado semelhante com 500 milhões e 3 nós, o que indica uma tendência a saturação com o uso de muitos nós. Também ficou claro que o aumento da quantidade de processos criados não causa grandes oscilações no desempenho do sistema.
CONCLUSÃO:
Com esse trabalho pretendemos estudar o desempenho de um cluster Beowulf utilizando rede ethernet 100 Mbps. Foi observada uma diminuição no desempenho do cluster quando comparado com um único computador para soma de 100 e 300 milhões de números, enquanto que para 500 milhões ele superou uma única máquina. Esse desempenho do cluster pode ser justificado pela característica de processamentos em paralelo que são mais eficazes para grandes quantidades de operações, bem como pela rede utilizada, que é de alta latência, que faz com que o custo de comunicação entre os processos é os nós seja muito alto. Com esse trabalho foi possível estudar a implantação e medida de desempenho em cluster com poucas máquinas.
Instituição de Fomento: Conselho Nacional de Desenvolvimento Científico e Tecnológico - CNPq
Palavras-chave: Cluster Beowulf, Algoritmos paralelos, Medida de desempenho em programação paralela..