CLUSTERS: Avaliação de Desempenho, Vantagens e Desvantagens

agosto 11, 2019
É imprescindível dentro de qualquer infraestrutura de rede a avaliação de desempenho para saber se determinada solução têm sido viável e efetiva no cumprimento do processamento e transmissão de dados. Para tal, devemos analisar basicamente três fatores, e levantar suas curvas para diferentes números de nós. Esses fatores são: speed up, eficiência e overhead
O speed up ou Aceleração (Sp) é uma métrica usada para medir o desempenho de uma aplicação paralela. É definida pela razão do tempo gasto para a execução sequencial e o tempo gasto da execução paralela em p processadores idênticos.
A eficiência é uma medida que mostra quanto da potência computacional disponível que foi utilizada no processamento. É apresentada como a razão entre a Aceleração e o número de processadores é dada em porcentagem e é muito útil para se perceber o quanto foi perdido em tráfego de rede. Ela indica qual foi a melhora alcançada ao se acrescentar um determinado número de nós.
O overhead é um parâmetro que indica uma melhora de performance do cluster como se fosse uma só máquina. Com o overhead também podemos entender o quanto de tempo está sendo perdido com o tráfego de rede. 

Além disso, para avaliar a real necessidade de uma clusterização computacional, é necessário rever suas vantagens e desvantagens para concluir a viabilidade da implementação de um modelo de computação distribuída como o clustering.
A utilização de clusters de computadores tem diversas vantagens, segue as principais consideradas: 
- EXPANSIBILIDADE
A implementação de clusters torna o sistema facilmente expansível, dado que, para expandir o poder de processamento, basta apenas incluir um novo nó ao cluster. 
- BAIXO CUSTO
Haja vista os clusters podem ser implementados com computadores convencionais até mesmo de diferentes especificações, o custo não fica limitado a apenas um único fornecedor, dessa forma clusters de computadores são bem mais econômicos que supercomputadores, por exemplo.
- ALTA DISPONIBILIDADE
Um nó que está desativado não prejudica o sistema como um todo, levando em consideração que também, para a manutenção não é necessário tirar cluster inteiro de funcionamento, apenas o nó com problemas.
- TOLERÂNCIA A FALHAS
Como os clusters de computadores funcionam de maneira paralela e distribuída, caso uma nó venha a falhar, é possível que os dados das operações não se percam totalmente, pois há a possibilidade de redirecionamento da carga de processamento para outro nó que esteja ativo.
- BALANCEAMENTO DE CARGA
Cluster de computadores também podem ser formados de forma heterogêneas (com máquinas de configurações diferentes), sendo assim é possível realizar o balanceamento de carga para as máquinas com maior e menor processamento para executar tarefas distintas.

Como toda tecnologia, clusters de computadores também possuem desvantagens e cabe ao pesquisador ou projetista fazer o levantamento de prós e contras na hora de implementar um sistema desse tipo, segue as principais desvantagens:
- MANUTENÇÃO
Por o cluster ser facilmente expansível, o sistema computacional pode se tornar muito grande, e a manutenção do sistema pode se tornar uma tarefa imensamente grande pois cada máquina em um clusters devem ter todos os seus componentes em perfeito estado de funcionamento. 
- MONITORAMENTO
Monitorar as informações trocadas em cada nó pode ser um problema dependendo como foi configurado o cluster, levando em consideração a expansibilidade do cluster. 
- GARGALOS
Como a comunicação de clusters de computadores ocorrerem por uma tecnologia de rede, a troca de informação se transforma no principal gargalo, uma vez que a transmissão de rede é bem lenta se comparada à troca de informação com um barramento de um sistema de memória compartilhada, entretanto, é possível realizar ajustes de granulosidade para diminuir esse problema.  

Por fim, a implementação de clusters pode baratear significativamente a execução de um projeto, contudo deve-se escolher a infraestrutura de rede mais adequada para evitar a sobrecarga no sistema. Contudo, também é importante destacar que os cluster de computadores não são bons para resolver problemas que exijam constante troca de informações, pois o tempo, limita-se pela tecnologia de rede, entretanto, o programador pode aumentar a carga e assim diminuir a troca de informação entre os nós, diminuindo assim necessidade de troca de informações reduzindo o tempo de espera.  

REFERÊNCIAS BIBLIOGRÁFICAS
http://www.ic.unicamp.br/~ducatte/mo401/1s2010/T2/107077-t2.pdf
http://www.biocristalografia.df.ibilce.unesp.br/publications/pdf/a39_cluster_first.pdf

Nenhum comentário:

Tecnologia do Blogger.