• Nenhum resultado encontrado

Características adotadas para uso de hardware

O hardware é a ferramenta principal para que as funcionalidades do cluster possam ser colocadas em prática. Quando se adota máquinas acessíveis e de baixo custo, deve-se avaliar a capacidade de processamento ao máximo dos recursos disponíveis.

Para a implementação do cluster, a UFTM gentilmente cedeu 05 (cinco) computadores, o espaço físico (Sala do PMPIT) e demais equipamentos básicos como: Switch 8 portas e velocidade de 1Gbps, 5 monitores, teclado e mouse; 4 cabos de rede ethernet 1000Base-T; 2 No-breaks; equipamento para refrigeração (ar-condicionado); mesas para a acomodação das estações de trabalho. Segue a seguir algumas especificações de hardware consideradas na instalação do equipamento:

Especificação 01 (Switch de Comunicação):

Entre as funcionalidades que se esperam de um switch para implementação em um cluster, esse em específico (figura 6), é de que consiga aliar baixo custo e bom desempenho nas funções de movimentação de dados pela rede. Tecnologias energéticas eficientes e inovadoras economizam energia em até 80%; suporta o controle de fluxo IEEE 802.3x para modo Full Duplex e backpressure para o modo half duplex; Arquitetura de encaminhamento sem bloqueios que encaminha e filtra os pacotes em velocidade plena pelo cabo com uma vazão máxima: 16 Gbps de capacidade de comutação; Jumbo Frame de 15K melhora o desempenho de grandes transferências de dados; Auto-MDI/MDIX elimina a necessidade de cabos cruzados; Suporta auto-aprendizagem de MAC address e seu auto-envelhecimento; A Auto- negociação das portas proporcionam uma integração inteligente entre hardware de 10Mbps, 100Mbps e 1000Mbps; Design sem ventoinha garante operação silenciosa; Design de mesa ou de montagem em parede; Design Plug and Play simplifica a instalação. O switch exerce um papel fundamental na transferência de dados em rede.

Figura 6 - Switch de Comunicação de Rede

Fonte: TPLINK, 2014.

Segundo a Associação Brasileira de Usuários de Acesso Rápido (ABUSAR, 2015):

“Um Switch mapeia endereços Ethernet dos nós que residem em cada segmento da rede e permite apenas a passagem do tráfego necessário. Quando um Switch recebe um pacote, determina qual o destino e a origem deste, e encaminha-o para a direção certa. O Switch larga o pacote se a origem e o destino são no mesmo segmento de rede. Os Switches também previnem que pacotes danificados se

alastrarem por toda a rede, melhorando assim a eficiência da transmissão dessa rede.

Existem duas arquiteturas básicas de Switches de rede: "cut-through" e "store-and-forward". Os Switches "Cut-through" apenas examinam o endereço de destino antes de reencaminhar o pacote. Um Switch "store-and-forward" aceita e analisa o pacote inteiro antes de o reencaminhar. Este método permite detectar alguns erros, evitando a sua propagação pela rede. Hoje em dia, existem diversos tipos de Switches híbridos que misturam ambas as arquiteturas. Ao escolher um Switch, escolha Switches de 8, 16 ou 24 portas RJ45, com padrão de transferência Gigabit, dependendo do número de pontos de rede a serem conectados, e de preferência a fabricantes renomados.”

Especificação 02 (Componentes Internos):

Considerando os equipamentos adotados no projeto, a relação dos componentes internos, que foram especificados, estão no Quadro 1 a seguir. Nesse modelo considerado não existe nenhum hardware adicional que interfira no desempenho do ambiente construído.

Quadro 1 - Lista dos componentes integrados a placa mãe

CPU Socket: Intel Socket 775 Supports: Conroe L,

Conroe, Wolfdale Front Side Bus: 800/1066/1333MHz

Chipset MCH (North Bridge): Intel G31 ICH (South

Bridge): Intel ICH7

Graphic Integrated Graphics in North Bridge, DVI/TV-

OUT

Memory Dual channel, 2 slots, Non-ECC, 240-pin DDR2,

Un-buffered Types: 667/PC2-5300, 800/PC2- 6400

Audio Realtek ALC662 CODEC (6 Channels)

Formfactor microATX: 9.6 in. x 8.0 in.

Expansion slots 1x PCI Express Graphic slt (x16) 1x PCI

Express slot (x1) 2x PCI slot

LAN Realtek RTL8111C PCIe

1394 (none)

USB 8x USB 2.0 ports (4 onboard headers, 4 on rear

panel) 12Mbps/480Mbps

Storage 4x SATA ports (4 onboad headers) SATA300,

ATA100

BIOS AMI 4Mb SPI

Rearpanelports 1x PS2 Mouse port + 1x PS2 Keyboard port 1x

Parallel (printer) port + 1x Serial (com) port + 1x VGA (display) port 2x USB ports 1x LAN port + 2x USB ports 3x Audio ports

Selectors USB power, Keyboard power, clear RTC

Onboardconnectors 1x Front panel connector 1x Front panel audio

connector 1x SPDIF output connectorr 1x Audio (CD) input connector 2x USB 2.0 dual port connectors 1x Serial (COM) port connector 4x SATA connectors 1x Primary IDE connector 1x Internal TPM connector

Power connectors 1x 24-pin EATX (+12V EPS power connector) 1x

4-pin ATX (+12V power connector) 1x CPU FAN connector 1x Chassis FAN connector

3 METODOLOGIA PRÁTICA DO TRABALHO

Uma vez implantada todas as possibilidades do cluster, a fase de avaliação do mesmo por meio de modelos seria iniciada e continuada por testes de desempenho e de carga de dados e processamento dos aplicativos instalados. O principal diferencial está em submeter situações problemas específicos da instituição a baixo custo e com a iniciativa própria, principalmente por ser desenvolvido com recursos já existentes. Abaixo (figura 7) imagem do cluster em funcionamento.

Figura 7 - Estrutura física formada pelo cluster

Fonte: Dos autores, 2015.

De acordo com determinadas características, o ambiente paralelo possibilita melhorar o desempenho de muitas aplicações. Cada nó existente no cluster pode ser submetido a atividades diferentes. Não é necessário que uma tarefa utilize todos os componentes do cluster. Pode-se, logicamente, configurar quais nós de computação irão cooperar em um mesmo serviço. O cluster pode estar agrupado para atender diferentes serviços que o usuário queira avaliar.

A arquitetura desenvolvida deve ser vista pelos usuários como uma imagem única do sistema-SSI e as requisições feitas devem ser redirecionadas automaticamente para um equipamento que esteja disponível. Será necessário aproveitar os equipamentos existentes, sem a aquisição ou substituição destes. Apenas em certos casos, adicionar determinados nós na rede que já pertençam à instituição.

Dentre os padrões comuns considera-se: transferência de arquivos, mensagens e sessão remota SSH (COMER, 2007); Configuração de páginas web, de banco de dados e configuração de terminal gráfico (FERREIRA, 2003); Configuração da biblioteca MPI (PITANGA, 2008) para desenvolvimento de aplicações baseadas em troca de mensagens.

Conforme cada função dentro do cluster, cada nó receberá uma configuração específica e uma diversidade de pacotes de aplicações a serem executadas. Deve-se também ressaltar que no desenvolvimento do projeto é muito importante considerar a falha do cluster. A aplicação que está sendo utilizada deve ser capaz de se redistribuir e garantir o funcionamento correto do algoritmo.

4 PROJETO, ESTRUTURA E RESULTADOS DO FUNCIONAMENTO DO CLUSTER

De acordo com os requisitos do capítulo anterior, pode-se construir um cluster do tipo misto, combinando Balanceamento de Carga e Alta Performance utilizando-se as características disponibilizadas pelo Sistema Operacional Linux, pois o mesmo atende as necessidades apontadas, além de toda uma abordagem de software livre.

Esta estrutura física permite a integração de equipamentos heterogêneos quanto à usabilidade dos aplicativos e sua integração. Considera-se na figura 8 as etapas como norteadoras do desenvolvimento desse trabalho:

Figura 8 - Etapas da implantação do cluster

Fonte: Elaborado pelos autores, 2015.

A instalação física foi realizada pela combinação de equipamentos que foram aproveitados do próprio ICTE, por meio de cabos elétricos e de rede, utilização de ar condicionado próprio da sala, nobreaks e especialmente os computadores reaproveitados do antigo laboratório. A configuração da rede, a princípio usando um padrão de enumeração de IPs, depois de acordo com o DSIM, influenciou na adoção de padrões diferentes para uma nova e atual classe de endereços, sendo definida uma faixa específica para o projeto. Para a presente data desse projeto foi considerada a configuração de software sob a plataforma do sistema operacional Linux Debian Wheezy, 64 bits.

Nesse documento pode-se considerar outras distribuições levantando em princípio características afins ao cluster. A principal dificuldade encontrada esta vinculada aos ajustes

da biblioteca MPI em relação ao sistema operacional e aos seus arquivos. A existência de atribuições a vários módulos da biblioteca dificultou a configuração entre as máquinas. A etapa de simulação de testes, para verificar a comunicação entre as máquinas e a execução dos algoritmos, foi a que se apresentou mais distinta em relação ao cluster, por se tratar efetivamente da obtenção dos valores das simulações dos problemas. Observar o cluster funcionando de acordo com o que foi proposto é verificar e constatar, de fato, o mecanismo teórico visualizado na prática. A possibilidade da obtenção de resultados de problemas das áreas mais distintas do conhecimento humano, a partir do paralelismo, e saber que podem ser extraídos, por meio das etapas do diagrama anterior (figura 8), é reconhecer as suas diferentes interfaces na resolução de problemas.

Considera-se o cluster, projetado e construído no ICTE, dentro das características de multiprocessamento. Está funcionalmente operando por meio de troca de mensagens usando a biblioteca MPI. Algoritmos básicos da computação foram inseridos de forma concorrente, simulados e extraídos os resultados de suas execuções.

Durante “as tentativas” de construir um computador de alto desempenho, várias métricas foram analisadas. Problemas de infraestrutura ocorreram em momentos muito inusitados. Todos superados.

A realização do projeto com máquinas básicas conectadas entre si e seu funcionamento possibilitou um meio de ampliação para futuros estudos sobre desempenho. Com o cluster já pronto, foi percebido também que o esforço para fazer trabalhar em conjunto X máquinas em busca de uma solução para um problema complexo, torna-se mais objetivo, quanto maior for o número de equipamentos, pois a quantidade de repetições de ajustes para uma máquina podem ser facilmente replicados a outras estações.

Fator importante é considerar o cluster sempre como um projeto facilmente expansível em relação ao hardware. Observa-se a facilidade de uso com máquinas padrão notebooks que foram acrescidas ao mesmo para simulações. De toda forma, etapas de extensão de equipamentos, inclusive com ambientes operacionalmente distintos como uma possível rede sem fio, podem ser realizadas.

As telas, exibidas a seguir, foram retiradas tanto do sistema operacional, como as telas dos arquivos de configuração e suas principais características quanto ao uso no sistema Debian.

4.1 Resultados de instalação e configuração

a) Tela com exibição da configuração de rede de uma das máquinas (figura 9). Foram configuradas com endereços classe A (10.1.1.30 a 10.1.1.36) usando a máscara padrão de rede. Os números de gateway e DNS foram fornecidos pelo DSIM.

Figura 9 - Tela de configuração da placa de rede

Fonte: Dos autores, 2015.

b) As figuras 10, 11, 12, 13 e 14 representam, mediante o teste de comunicação via linha de comando (comando ping), o funcionamento físico das máquinas. Esse fato é constatado e validado a partir da comunicação do servidor para as máquinas e o processo inverso também ocorre.

Figura 10 - Tela de comunicação com o servidor

c) Tela de comunicação das estações para o servidor (PMPIT02->SRVCLUSTER)

Figura 11 - Tela de comunicação da estação 2 com o servidor

Fonte: Dos autores, 2015.

d) Tela de comunicação das estações para o servidor (PMPIT03- >SRVCLUSTER)

Figura 12 - Tela de comunicação da estação 3 com o servidor

e) Tela de comunicação das estações para o servidor (PMPIT04- >SRVCLUSTER)

Figura 13 - Tela de comunicação da estação 4 com o servidor

Fonte: Dos autores, 2015.

Testes de comunicação são realizados devido ao fato de que no cálculo da execução de um algoritmo tem-se de considerar o fator tempo de execução do mesmo, e em muitos casos, o TTL (COMER, 2007) das transmissões de dados via rede.

Essa medida é importante para que se tenha uma referência de como está o atraso (delay) da rede. Tempos de comunicação em rede, mais o tempo de processamento dos nós, são somados e interferem no tempo final da execução do algoritmo. Como os tempos considerados estão no padrão de comunicação de uma rede interna, então foi possível dar continuidade ao projeto físico do cluster e sua construção.

O atraso de rede, que é medido em segundos, especifica quanto tempo um único bit permanece em trânsito em uma rede. O throughput (vazão) de rede, que é medido em bits por segundo, especifica quantos bits podem entrar na rede por unidade de tempo. O throughput é uma medida de capacidade de rede (COMER, 2007).

f) Teste de comunicação do servidor com as estações

Figura 14 - Comunicação do servidor com as estações

Fonte: Dos autores, 2015.

A seguir são exibidas as telas de configurações dos arquivos. As figuras 15, 16, 17, 18 e 19 representam a edição e configuração dos principais arquivos de configuração do cluster. Esse procedimento é essencial para que o ambiente do paralelismo tenha suas funcionalidades ativadas.

• Configuração do arquivo .bashrc

Figura 15 - Conteúdo do arquivo .bashrc no servidor

Fonte: Dos autores, 2015.

• Configuração do arquivo hosts

Figura 16 - Configuração do arquivos hosts em todas as máquinas

Fonte: Dos autores, 2015.

• Cópia do arquivo de chave pública para as estações

Figura 17 - Tela Cópia da chave pública para as estações

• Compartilhamento da pasta /home entre as estações do cluster Figura 18 - Configuração do arquivo exports no servidor

Fonte: Dos autores, 2015.

• Instalação do ssh nas máquinas

Figura 19 - Instalação do SSH em todas as máquinas

Fonte: Dos autores, 2015.

As figuras 20 e 21 representam a execução do código paralelo, que é executado via linha de comando do Shell do Linux, e do código fonte .

• Compilação e execução do arquivo exemplo pela biblioteca paralelizada Figura 20 - Execução do arquivo em uma estação e no servidor

Fonte: Dos autores, 2015

• Exemplo do código fonte do arquivo exemplo: CPI.c

Figura 21 - Código Paralelo da execução de PI distribuído

Fonte: Biblioteca MPI (../mpich-3.1/examples).

As figuras 22, 23 e 24 representam o teste de comunicação do servidor e as máquinas que estão envolvidas na execução dos algoritmos do cluster. Esse procedimento é necessário como forma de realização da calibragem do sistema, ou seja, existe a comunicação entre os módulos que foram instalados.

• Execução do arquivo exemplo CPI usando 10, 20 e 40 processos criados:

Processos: 10

Figura 22 - Execução de PI paralelo em 10 processos e 2 máquinas

Fonte: Biblioteca MPI (../mpich-3.1/examples).

Processos: 20

Figura 23 - Execução de PI paralelo em 20 processos e 2 máquinas

Processos: 40

Figura 24 - Execução de PI paralelo em 40 processos e 2 máquinas

Fonte: Biblioteca MPI (../mpich-3.1/examples).

A seção seguinte aborda sobre a implementação prática do trabalho e a simulação de algoritmos.

Documentos relacionados