Mosix - Instalação e configuração de um cluster de balanceamento de carga
Artigo que demonstra alguns conceitos sobre clusters, os procedimentos e resultados obtidos na instalação, configuração e testes de um cluster do tipo balanceamento de carga utilizando o Mosix. Também relaciona com este cluster os conceitos de sistemas distribuídos (feito para meu TCC em 2008).
Parte 5: Testes computacionais
Assim que toda configuração foi concluída, foram aplicados vários testes para a comprovação do funcionamento do cluster. Os principais foram:
Um dos principais aplicativos do Mosix é o monitor dos nodos, que fornece muitas informações importantes sobre os nodos, como a carga de cada CPU: E também a memória em uso para cada nodo: O próprio Mosix fornece um aplicativo chamado testload que promove uma grande quantidade de carga no CPU para testes, podendo monitorar a distribuição de carga entre os nodos do cluster comprovando seu funcionamento. Esse teste não permite fazer comparação de tempo quanto a execução local ou distribuída, pois ele é orientado a tempo de execução e não a volume de dados.
Para fazer o teste com o MatLab foi utilizado um algoritmo da rede neural Adaline e um script de teste que realiza vários cálculos numéricos. Em cada um houve diferença no tempo de termino quando executado localmente e quando utilizado o processamento distribuído.
O arquivo Adaline eu não colocarei devido ao seu tamanho.
Arquivo teste.m:
Tempo para execução do algoritmo localmente e distribuído (em minutos):
O teste com processos simultâneos se deu com um shell script (linguagem de programação de alto nível interpretada pelo Shell do Linux) ilustrado na figura a seguir, que gerou vários processos simultâneos. A execução local desse shell script teve um tempo bem elevado, e distribuidamente esse tempo foi bem reduzido, foi o teste que melhor demonstrou a eficiência do cluster Mosix. Tempo para execução do shell script de teste (em minutos):
Teste de processos locais e remotos:
- Módulo de teste "testload";
- Teste com o MatLab;
- Teste com processos simultâneos;
- Teste com processos locais e remotos.
Um dos principais aplicativos do Mosix é o monitor dos nodos, que fornece muitas informações importantes sobre os nodos, como a carga de cada CPU: E também a memória em uso para cada nodo: O próprio Mosix fornece um aplicativo chamado testload que promove uma grande quantidade de carga no CPU para testes, podendo monitorar a distribuição de carga entre os nodos do cluster comprovando seu funcionamento. Esse teste não permite fazer comparação de tempo quanto a execução local ou distribuída, pois ele é orientado a tempo de execução e não a volume de dados.
Para fazer o teste com o MatLab foi utilizado um algoritmo da rede neural Adaline e um script de teste que realiza vários cálculos numéricos. Em cada um houve diferença no tempo de termino quando executado localmente e quando utilizado o processamento distribuído.
O arquivo Adaline eu não colocarei devido ao seu tamanho.
Arquivo teste.m:
a = randn(3000);
b = svd(a);
fim=1
b = svd(a);
fim=1
Tempo para execução do algoritmo localmente e distribuído (em minutos):
Algoritmo Localmente Distribuído Adaline.m 3.55 3.46 Teste.m 1.40 1.36Como os testes feitos são relativamente algoritmos pequenos, a diferença de tempo entre processamento local e distribuído é pequena, porem notável. Em algoritmos menores se notou que o tempo de execução distribuída era maior que localmente, a ocorrência desse fato deve-se ao grande uso da rede para comunicação entre os nodos, tornando inviável o uso do processamento distribuído para processos pequenos, causando queda de performance.
O teste com processos simultâneos se deu com um shell script (linguagem de programação de alto nível interpretada pelo Shell do Linux) ilustrado na figura a seguir, que gerou vários processos simultâneos. A execução local desse shell script teve um tempo bem elevado, e distribuidamente esse tempo foi bem reduzido, foi o teste que melhor demonstrou a eficiência do cluster Mosix. Tempo para execução do shell script de teste (em minutos):
Execução Tempo Local 89,35 Distribuída 60,22O teste de processos locais e remotos consistiu e executar programas locais, tais como openoffice etc, juntamente com as rotinas de testes citadas anteriormente. O teste principal foi feito com o editor de texto do openoffice, e o browser Firefox. Todos os testes anteriores foram executados novamente (somente distribuidamente), porem com os processos locais rodando em cada um dos nodos. Notou-se uma leve diferença nos tempos de termino dos processos. O teste feito através do testload não pode ser avaliado por ser orientado a tempo de execução e não a volume de dados.
Teste de processos locais e remotos:
Teste Sem processos locais Com processos locais Adaline.m 3,46 3,49 Teste.m 1,36 1,38 Shell Script 60,22 61,35
Que dizer do seu artigo?
Expetacular é a definição mais próxima.
Grande abraço!
André A. Ferreira