45
Redes em Cluster de Computadores 1 Luiz Arthur Tecnologias de Redes de Computadores para Clusters de Alta Performance A escolha de uma melhor solução de interconexão para um cluster é muito importante, e pode ser muito difícil construir uma rede que atenda todas as necessidades dos inúmeros problemas a serem resolvidos pelo cluster, já que esses problemas podem ter necessidades particulares quanto ao uso da rede. Desta forma, se não houver um bom balanceamento entre os nós de processamento e a comunicação entre eles, tais nós poderão desperdiçar recursos enquanto estiverem aguardando por dados dos outros nós. Ou seja, devido a rede de interconexão alguns nós podem ficar ociosos. Por outro lado, dependendo do tipo de rede escolhida, tal rede pode se tornar financeiramente inviável devido ao seu alto custo e o projeto do cluster pode então não ser concluido para algumas empresas e corporações, assim é preciso fazer um bom estudo de qual tipo de rede atende a demanda de processamento do cluster, sem torná-la uma parte dispendiosa no custo final do cluster. Nos últimos anos, tem havido um grande esforço quanto a pesquisas e desenvolvimento, tanto por parte da indústria quanto pela comunidade acadêmica, para o aumento da performance das redes no que se refere à redução da latência, ao aumento da largura de banda e à redução dos custos para a utilização da computação de alta performance.

Tópicos - Redes para Cluster de Alta Performance

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores1 Luiz Arthur

Tecnologias de Redes de Computadores para Clusters de Alta Performance

A escolha de uma melhor solução de interconexão para um cluster é muito importante, e pode ser muito difícil construir uma rede que atenda todas as necessidades dos inúmeros problemas a serem resolvidos pelo cluster, já que esses problemas podem ter necessidades particulares quanto ao uso da rede.

Desta forma, se não houver um bom balanceamento entre os nós de processamento e a comunicação entre eles, tais nós poderão desperdiçar recursos enquanto estiverem aguardando por dados dos outros nós. Ou seja, devido a rede de interconexão alguns nós podem ficar ociosos.

Por outro lado, dependendo do tipo de rede escolhida, tal rede pode se tornar financeiramente inviável devido ao seu alto custo e o projeto do cluster pode então não ser concluido para algumas empresas e corporações, assim é preciso fazer um bom estudo de qual tipo de rede atende a demanda de processamento do cluster, sem torná-la uma parte dispendiosa no custo final do cluster.

Nos últimos anos, tem havido um grande esforço quanto a pesquisas e desenvolvimento, tanto por parte da indústria quanto pela comunidade acadêmica, para o aumento da performance das redes no que se refere à redução da latência, ao aumento da largura de banda e à redução dos custos para a utilização da computação de alta performance.

Page 2: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores2 Luiz Arthur

A grande vantagem evidenciada pelos clusters é o seu baixo custo, em relação aos supercomputadores, o que os torna uma opção mais viável para alguns projetos.

Além, disso incessantes aprimoramentos na tecnologia empregadas na redes de interconexão conferem uma ótima relação custo/desempenho. Já que o ponto crítico para a performance de um cluster, é a intercomunicação dos nós (tempo de transferência de mensagens), já que a performance das LANs tradicionais não acompanham a dos processadores.

Atualmente, dentre as tecnologias de interconexão de alto desempenho que estão em evidência no contexto de cluster encontram-se:

Fast-Ethernet; Gigabit Ethernet;

10 Gigabit Ethernet; Myrinet;

SCI.

Metas a serem alcançadas em redes para cluster de alta performance

Como as redes são um dos principais vilões na performance de um cluster, faz-se necessário uma análise de alguns conceitos primordiais para um melhor entendimento sobre a tecnologia de redes de alta performance.

Page 3: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores3 Luiz Arthur

Para um melhor desenvolvimento da estrutura da rede que será acoplada ao cluster, alguns itens devem ser muito bem estudados e analisados, esses itens são:

Largura de Banda: é a capacidade de transporte de dados em uma rede, normalmente medido em bits por segundo (bps), em um cluster quanto maior a largura de banda melhor deve ser a performance alcançada. Com isso, é possível enviar uma quantidade de dados maior entre os nós que compõem o cluster.

Vasão: é o termo utilizado para definir a quantidade de pacotes de dados livres de erros que trafegam por uma rede em unidade de tempo (Mbits/s, MB/s, GB/s). Outro tópico relacionado é a precisão com que os dados são transmitidos entre os nós.

Eficiência da rede: é a medida da quantidade de esforço utilizado para que os dados fluam com uma boa vasão de dados. A eficiência depende muito da tecnologia da camada de enlace utilizada. O tamanho máximo do seu problema (granularidade dos dados) deve ser encaixado dentro do frame correspondente de acordo com a topologia lógica escolhida. Estruturas de dados menores tendem a ser menos eficientes que estruturas de dados maiores, mas é preciso em equilíbrio para um bom funcionamento de sua rede de alto desempenho.

Page 4: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores4 Luiz Arthur

Latência: é outro fator de grande importância na comunicação entre os nós dentro do cluster, a latência é definida como o intervalo de tempo que um nó transmite seu pacote de dados pela rede até o momento da recepção pela outra extremidade (ns, µs, ms). Fatores como o meio físico empregado na transmissão, comutação dos pacotes e protocolos de acesso ao meio tendem a aumentar o atraso na comunicação. A latência depende muito da velocidade dos circuitos internos, da CPU, do tipo de switch, da pilha de protocolos e até mesmo do Sistema Operacional. E com isso, a latência gera uma influência negativa em outro termo muito utilizado em redes de alto desempenho, o tempo de resposta.

Sobrecarga da CPU: Se todo o processamento de uma rede etá acontecendo na CPU de um host, então esta carga competirá com o conjunto de instruções dentro da própria aplicação. Muitas placas de rede inteligentes podem controlar vários pedaços de processamento de rede, o que alivia o trabalho da CPU. Para uma rede altamente ocupada, como é o caso de uma rede para cluster, isso pode ser um critério crítico na busca de performance. Por isso algumas placas de rede possuem um processador dedicado na sua estrutura, de tal forma que diminua a sobrecarga da CPU e cuide da passagem de mensagem entre os nós do cluster.

Page 5: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores5 Luiz Arthur

Outra significante otimização da sobrecarga da CPU é a utilização de “protocolos leves” (light-weight protocols).

Estes protocolos são projetados para especificamente transportar mensagens relativamente pequenas por uma topologia de rede controlada, como no caso dos clusters.

Tradicionalmente, protocolos como TCP/IP, são projetados para executar em um ambiente de rede muito generalizado e conseqüentemente tem que cuidar de muitas exceções e erros que não são pertinente para a computação em cluster.

A implementação de tais protocolos geralmente requer algum nível de inteligência sobre a interface de rede. Isso pode vir em forma de um processador dedicado, como o processador Lanai na interface de rede Myrinet, ou também na forma de um firmware especial na placa de rede.

Multithreading: referencia a capacidade de uma rede transmitir múltiplas mensagens concorrentemente e também na habilidade de um nó usar os dispositivos da rede sobre diferentes contextos. Certas placas de rede e seus drivers correspondentes são capazes de falar com múltiplos processos de alto nível para troca de mensagens, considerando que algumas placas de rede ficam presas a um processo até que tal processo tenha completado sua comunicação e libere a placa de rede.

Page 6: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores6 Luiz Arthur

Então a Largura de Banda, Vasão, Eficiência da rede, Latência, Sobrecarga da CPU e Multithreading são os principais itens para avaliação de um projeto em rede de alta performance para clusters, e que devem ser tratados com muito cuidado, para que a rede de interconexão do cluster atenda perfeitamente os requisitos de alto desempenho.

Topologia de redes em cluster

A interconexão direta de todos os processadores, entre si, não é viável quando o número dos nós aumenta. Como regra geral é utilizado um padrão para definir as ligações entre os nós do cluster. Este padrão é denominado de topologia da rede de interconexões.

Três parâmetros podem ser utilizados para caracterizar o possível desempenho de uma topologia. Os mesmos são: a largura da bisseção, o diâmetro e o grau.

Largura da bisseção: Indica quantas mensagens simultâneas podem ser trocadas entre duas metades da rede de interconexão. Número mínimo de linhas de conexão que precisam ser removidas para que a rede seja dividida pela metade. Também pode ser chamada de número de ligações.

Page 7: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores7 Luiz Arthur

Diâmetro: Distância máxima entre dois nós quaisquer. Indica qual o menor número de nós intermediários que precisam ser envolvidos, para que dois processadores, o mais distantes possível, se comuniquem. Ou seja, maior distância entre dois componentes (quanto menor, melhor para o cluster).

Grau: Número de ligações de rede de cada componente, pode ser visto como o número de rotas possíveis entre qualquer par de nós do cluster. Pode indicar o número máximo de mensagens que podem ser manipuladas simultaneamente por cada um dos processadores, também pode ser chamado de conectividade.

Topologia em Barramento

Nesta topologia, todos os processadores estão conectados em um único barramento compartilhado. Quando um processador necessita comunicar-se com outro, ele aguarda que o barramento esteja livre e propaga no mesmo a mensagem; o destinatário, por sua vez, identifica que a mensagem é para si e a recebe.

No caso de duas transmissões simultâneas, o software detector de colisões interrompe as transmissões e os processadores voltam a tentar novamente após um período de tempo determinado aleatoriamente.

Assim sendo, a sua largura da bisseção é 1. Isto significa que esta topologia não permite mais do que um par de processadores em comunicação simultaneamente.

Page 8: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores8 Luiz Arthur

A topologia barramento também é denominada Array Linear e não possui caminhos alternativos em caso de falha.

Tal topologia linear, consistem em organizar os nós em seqüência, ligando cada nó ao seus vizinhos. As vantagens da topologia linear são o baixo custo e a simplicidade.

Entretanto, como há sempre apenas uma rota para cada mensagem, o centro da rede tende a ser um gargalo e comunicações entre os nós distantes tem grande latência.

Então temos que o número de nós é N e o número de ligações (L) é N-1, neste caso como temos 4 nós o número de ligações entre os nós é 3 (L=N-1).

Nesta rede o diâmetro é N/2, o grau é 1e a largura de bisseção é 1.

Page 9: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores9 Luiz Arthur

Topologia circular ou em anel

A topologia circular é semelhante a topologia linear, mas tem uma linha de conexão entre o primeiro e o último processo, gerando um anel. Desta forma, há sempre duas rotas para cada nó, diminuindo os problemas da topologia linear. Porém, o custo da rede é ligeiramente superior.

A rede circular é adequada para pequenas redes, mas em redes maiores a baixa largura da bisseção torna-se um problema.

O diâmetro na topologia circular é N/2, o grau é 2 e a Largura da Bissecão é igual a 2. Ou seja, temos duas rotas para qualquer nó em caso de falha de uma rota outra pode ser utilizada.

Page 10: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores10 Luiz Arthur

Topologia em Malha

A topologia em malha ou mesh consiste em dividir uma rede linear de tamanho N em diversas sub-redes de tamanho K, tal que N=K² e conectar os nós correspondentes gerando uma grade.

A topologia mesh tem o diâmetro inferior e a largura da bisseção superior às topologias linear e circular, e portanto menos gargalos.

Entretanto, a topologia é assimétrica e a conectividade da rede é baixa. Os processadores nesta topologia tem um canal de comunicação direto com o seu vizinho.

O hardware para este tipo de tecnologia é de simples construção e expansão. A malha se adapta bem a algoritmos utilizados em cálculos científicos, os quais se destacam a manipulação de matrizes.

Neste tipo de rede o diâmetro é 2(k − 1), o grau é igual a 2 e a Largura da Bisseção é K.

Page 11: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores11 Luiz Arthur

Topologia Torus

Assim como a topologia mesh consiste em dividir uma rede em sub-redes lineares, a topologia torus consiste em dividir uma rede em sub-redes circulares e conectar os nós correspondentes.

No caso de redes com muito nós, pode-se utilizar uma topologia torus multidimensional. Neste caso a rede é complexa, mas a conectividade e a largura de bisseção são maiores, evitando gargalos. O diâmetro diminui com o número de dimensões, reduzindo a latência.

Na topologia Torus 0 diâmetro é k a, conectividade é 4 e a Largura da Bissecao é 2k.

Page 12: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores12 Luiz Arthur

Topologia Hipercubo

A topologia hipercubo consiste em organizar os nós em forma de um cubo de dimensão d tal que N=2^d, todos os nós são conectados a outros d nós. Assim, os tamanhos de hipercubos são definidos por potências de 2 onde d é a dimensão do hipercubo e N é o número de processadores.

Toda rede de interconexão hipercúbica está alicerçada sobre uma estrutura multidimensional baseada em endereços binários. Em função disto, todos os nós podem ser identificados por um número binário. Cada nó é conectado a todos os seus vizinhos; isto faz com que o hipercubo tenha grau variável e de valor D.

d=3

d=4

Page 13: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores13 Luiz Arthur

A topologia hipercúbica confere boas propriedades à rede de interconexão do cluster; a largura da bisseção é N/2, e o diâmetro é log2N.

Apesar de apresentar bom desempenho para muitos padrões de comunicação, sua eficiência se mostra bastante dependente do algoritmo de roteamento a ser empregado.

Um aspecto inconveniente do hipercubo é sua escalabilidade, o número de processadores sempre deve crescer em potência de 2.

Além disso, com o grau de cada nó é em função do tamanho do cubo, toda expansão no número de processadores implica em adicionar mais um canal de comunicação a todos os nós. Para cubos maiores, estas características podem trazer inconvenientes para a administração de custo/beneficio quando da expansão da arquitetura.

Um equipamento que emprega esta topologia é o Ncube2.

Page 14: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores14 Luiz Arthur

Topologia em Árvore

Na topologia em árvore, um nó raiz divide em duas subárvores, que por sua vez também tem uma raiz que a subdivide em duas, e assim sucessivamente. Os nós mais abaixo na árvore são conhecidos como nós folha.

A topologia em árvore é adequada a aplicações regulares com comunicação local, e aplicações com esta topologia são comuns.

Em uma árvore larga, a largura de ramos (canal) cresce a medida em que se sobe das folhas em direção à raiz. A largura da bisseção a árvore é normalmente N e o seu diâmetro proporcional a 2(logN). A arquitetura da CM-5 da Thinking Machines utiliza uma versão modificada da árvore larga.

A topologia em árvore é uma boa opção de topologia para arquiteturas paralelas. Pois o diâmetro cresce de forma linear com a altura h, o grau de nó máximo é igual à 3, mas não existem caminhos alternativos e o nó raiz é um gargalo.

Page 15: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores15 Luiz Arthur

Tecnologias e dispositivos de interconexão

Atualmente já estão disponíveis comercialmente dispositivos de interconexão que propiciam a criação de ambientes similares aos antigos supercomputadores, mas utilizando computadores convencionais.

Existem atualmente duas grandes classes de dispositivos de interconexão para alto desempenho.

Uma primeira classe é formada por dispositivos cuja solução é baseada em programação por troca de mensagens entre processadores no nível de placa de rede, esta solução permite a criação de multicomputadores.

Exemplos de equipamentos desta classe são as tecnologias: Myrinet, Gigabyte System Network e Giganet, sistemas que utilizam rede Gigabit ethernet também são encontradas, mas com desempenho de rede mais baixo.

A segunda classe é formada por interconexões e tem como peculiaridade uma solução que cria a abstração de uma memória virtual única (multiprocessador) entre todos os computadores interligadso no dispositivo. Exemplo desta são o Quadrics Network (QSNET) e Dolphin SCI.

Page 16: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores16 Luiz Arthur

Ethernet e Fast-Ethernet

O padrão Ethernet foi bastante utilizado nas primeiras construções de clusters. Seu funcionamento consiste basicamente de um meio compartilhado, com banda passante de 10 Mbps, onde os computadores conectados competem entre si para ter acesso ao mesmo.

Os dados somente eram enviados caso o meio estivesse livre. No entanto, poderia ocorrer o problemas de colisão de dados, a qual acontece quando duas máquinas tentam transmitir ao mesmo tempo os seus dados. Para evitar que tal situação ocorra, foi então criado um protocolo próprio no para o controle de aceso ao meio (MAC), denominado de CSMA/CD (Carrier Sense Multiple Access/Collision Detect).

Uma versão melhorada do mesmo padrão, conhecida como Fast-Ethernet, fornece uma largura de banda de 100 Mbps sobre cabos par trançado UTP ou fibra óptica. Assim, a substituição do padrão Ethernet para o Fast-Ethernet, aumentou consideravelmente. Atualmente, esta é a tecnologia mais utilizada em termos de redes locais de alta velocidade, pois o custo de implantação é relativamente baixo.

Apesar do aumento da largura de banda do Fast-Ethernet, para alguns sistemas em clusters, ainda não é grande o suficiente para um cada de comunicação entre os nós de um cluster de alta performance.

Page 17: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores17 Luiz Arthur

Assim, para aumentar ainda mais a largura de banda, é possível utilizar uma técnica especial chamada de channel Bonding.

Em termos bem simples, a técnica de channel bonding (união de canais) consiste em se agregar múltiplas redes e transformá-las em uma única rede com mais largura de banda. O uso da banda resultante é totalmente transparente para o cluster, exceto pelo ganho de velocidade como resultado positivo.

A implementação física é bem simples também, consiste em unir os canais através de caminhos alternativos para cada placa de rede. Significa que cada máquina do cluster deverá possuir duas placas de rede e também duas redes diferentes, criadas através de dois switches, ou um único switch que possua recursos de VLANS.

O uso do channel bonding aumenta a performance da rede em 75% quando duas redes são utilizadas. Três redes ou mais não provêem uma melhoria de desempenho pois acabam sendo saturadas por aplicação de comunicação intensiva e desta forma não são tão interessantes de se implementar.

Page 18: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores18 Luiz Arthur

A performance do bonding channel pode ser observada e comparada (com Gigabit Ethernet e uma rede Fast-Ethernet comum) no gráfico a seguir:

Page 19: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores19 Luiz Arthur

A primeira interconexão usando duas redes Ethernet em paralelo, foi chamada de bonded dual net ou multi-bus.

O objetivo deste arranjo é distribuir o tráfego entre as redes (inicialmente duas e posteriormente três).

Para seja possível, foi alterado o Kernel do sistema operacional Linux, de modo que fosse feito um balanceamento de carga, distribuindo os pacotes entre as filas de transmissão disponíveis dos dispositivos, formando um barramento virtual.

Page 20: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores20 Luiz Arthur

Malha chaveada (Switched Routed Mesh)

Esta é uma rede malha porém com o uso da técnica de channel bonding, tal rede tem acrescenta comutadores Ethernet (switchs) de alta velocidade em substituição ao roteamento entre os segmentos (que são empregados na rede em malha tradicional). Esta topologia, além de ser totalmente conectada ainda provê sempre dois caminhos entre dois nós quaisquer.

Switch 1

Switch

2

Page 21: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores21 Luiz Arthur

Entendendo melhor o channel bonding

Então quando uma única placa de rede Ethernet não basta é necessário unir diversas placas em uma única interface. A documentação de referência sobre o assunto esta contido no arquivo bonding.txt, da documentação do kernel em uso, por exemplo: /usr/src/linux-2.6.21.4/Documentation/networking/bonding.txt

Depois da configuração de uma interface mestre virtual (começando por bond0) e o mapeamento das interfaces físicas (como eth0 e eth1) nessa interface mestre, deve-se iniciar o módulo de bonding com os parâmetros apropriados. Os modos 0 e 2 são responsáveis pelo balanceamento de carga do link, e o modo 1 oferece um backup ativo deste link. O modo 0 divide a carga com um processo Round-Robin, enquanto o modo 2 aplica um algoritmo XOR.

Então o bonding possui os seguintes módulos:

Mode 0 ou balance-rr – Utiliza política Round-Robin para tolerância a falhas e balanceamento de carga. Os pacotes são recebidos e enviados sequencialmente em cada interface bonded iniciando pela primeira disponível.

Mode 1 ou active-backup – Utiliza uma política de backup ativo para tolerância a falhas. Neste modo apenas um link é utilizado, o outro só será ativo caso este primeiro falhar.

Page 22: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores22 Luiz Arthur

Mode 2 ou balance-xor - Utiliza a política de XOR (exclusive-or) para tolerância a falhas e balanceamento de carga.

Mode 3 ou broadcast – Transmite todos os pacotes em todas as interfaces de rede. Esse modo fornece tolerância a falhas.

Modo 4 ou 802.3ad – O IEEE 802.3ad Dynamic link aggregation. Cria grupos de placas de rede que compartilham a mesma velocidade e configurações. Transmite utilizando uma politica de hash XOR via xmit_hash_policy.

Modo 5 ou balance-tlb – Transmissão adaptativa para balanceamento de carga (transmit load balancing). O channel bonding não requer qualquer configuração especial no switch. O tráfego de saída é distribuído de acordo com a carga atual (calculado através da velocidade) de cada interface de rede. O tráfego de entrada é recebido pela interface atual, se essa interface falhar outra interface pode receber estes pacotes.

Modo 6 ou balance-alb – Modo Adaptive load balancing inclui o balance-tlb mais recebe balanceamento de carga (rlb) para tráfegos IPv4 e não requer nenhuma função especial dos switches. O driver bonding intercepta requerimentos ARP pela sistema local e reescreve o endereço de hardware para um endereço de hardware de uma interface escrava.

Page 23: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores23 Luiz Arthur

O modo 0 realmente distribui os pacotes igualmente para todos os links, mas existe a possibilidade de pacotes posteriores chegarem antes de seus antecessores, devido ao fato de cada um ter saído por uma placa de rede diferente, isto pode causar alguns problemas para algumas aplicações, principalmente as que utilizam UDP.

O XOR constrói um hash dos MACs de origem e destino para decidir qual link disponível deve ser usado para a conexão. Deste que os MACs de origem e de destino não se alterem, a escolha da placa de saída permanece inalterada, o que significa que todos os pacotes de uma mesma sessão utilizarão o mesmo caminho.

Gibabit Ethernet

O padrão Gigabit Ethernet é uma extensão dos padrões 10 Mbps e 100 Mbps Fast Ethernet para interconexão em redes. Esse padrão surgiu da necessidade criada pelo aumento da largura de banda nas “pontas” das redes e também pela redução constante dos custos entre as tecnologias compartilhadas e comutadas, juntamente com as demandas das aplicações atuais.

Page 24: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores24 Luiz Arthur

O padrão Gigabit Ethernet tem como principais vantagens a popularidade da tecnologia Ethernet e o seu baixo custo. Trata-se de uma tecnologia padrão, protegendo o invertimento feito em recursos humanos em equipamentos. Não há nenhuma nova camada de protocolo para ser estudada, conseqüentemente, há uma pequena curva de tempo de aprendizagem em relação à atualização dos profissionais. Graças às vantagens trazidas por essa tecnologia, ela torna-se também outra possibilidade para a interconexão em clusters.

O padrão do Gigabit Ethernet ou IEEE 802.3z fornece uma largura de banda mínima de 1 Gbps, tanto em modo full-duplex, como em half-duplex, sendo que, neste último, é necessário o uso de CSMA/CD para a detecção de colisões. Outro detalhe que não se pode esquecer é que, no modo full-duplex, a largura de banda é de até 2Gbps, pois os equipamentos conectados podem transmitir e receber dados simultaneamente.

O Gigabit Ethernet tem como principais vantagens a popularidade da tecnologia Ethernet e o seu custo. Mas existem outras vantagens:

●Facilidade de Migração: O Gigabit Ethernet mantém o mesmo formato de quadro, método de acesso, operação Full-duplex e controle de fluxo, dispondo dos mesmos objetivos de gerência de rede dos protocolos predecessores.

Page 25: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores25 Luiz Arthur

●Operação Full e Half-duplex: Quase todos os dispositivos Gigabit Ethernet no mercado suportam o modo Full-duplex.

●Controle de Fluxo: Mesmo controle de fluxo da Ethernet para evitar congestionamento e sobrecarga da rede. A técnica de retransmissão é a mesma (algoritmo de recuo binário exponencial). O CSMA/CD foi modificado para se manter o diâmetro de colisão a 200 metros, com exceção da operação no modo Full-duplex, em que o método de acesso não sofreu modificações.

Assim, todas as velocidades de Ethernet, 10, 100 e 1000Mbps, utilizam o mesmo formato de encapsulamento, métodos de controle de fluxo e operações full-duplex, não havendo necessidade de tradução entre formatos de encapsulamento, o que reduz a complexidade e aumenta o desempenho da comutação de pacotes.

Apesar da alta velocidade, o padrão Gigabit Ethernet não garante o fornecimento de QoS (Qualidade de Serviço), que é um dos pontos mais fortes da tecnologia ATM. Desta forma, o padrão Gigabit Ethernet não pode garantir o cumprimento das exigências de aplicações, como a videoconferência com grande número de participantes, ou mesmo uma transmissão de vídeo em tempo-real de um ponto para muitos outros. Mas com o uso de switches é possível criar redes ponto-a-ponto sem colisão e com a ajuda de alguns protocolos das camadas superiores tal como protocolos de reserva de recurso (RSVP), novos padrões tal como 802.1Q (redes virtuais) e 802.1p (prioridades de serviço).

Page 26: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores26 Luiz Arthur

10 Gigabit Ethernet

Mesmo com o advento da tecnologia Gigabit Ethernet em cobre (1000 Base -T ou 1G Base -T), a demanda ainda continua crescente, exigindo taxas de bits ainda maiores.

Nos backbones, edifícios e grandes anéis metropolitanos (MAN - Metropolitan Area Network) já existem conexões a esta taxa (10 Gbit/s) utilizando fibra óptica.

No entanto, nos Data Centers, escritórios e redes locais bem capilarizadas, a utilização dos pares metálicos de cobre ainda é a mais difundida (legado), e por isso se faz necessário o estudo e a padronização do 10G Base -T para estes casos, o que viabilizará o uso deste tipo de rede em clusters de pequeno e médio porte.

No entanto, o problema e/ou solução a ser discutido com as redes 10Gb é “como” esta velocidade será possível no cabeamento estruturado legado atual. As dificuldades do 10Gb existem, por vários motivos: adaptações, compatibilidade eletromagnética (alien crosstalk), interfaces e equipamentos da rede (switchs), entre outros.

Page 27: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores27 Luiz Arthur

No padrão 10 Gigabit Ethernet, definido pela recomendação IEEE 802.3an, a largura de banda pode ser escalada de 1 até 10 Gbit/s sem sacrificar nenhum dos serviços inteligentes de rede, tais como o Multiprotocol Label Switching (switching de camada 3), o ajuste de qualidade de serviço (QoS - Quality of Service), o balanceamento de carga de servidores e qualquer outra política prévia que altera o roteamento desta rede.

Esses serviços podem ser entregues a uma taxa de 10 Gbit/s em uma rede Ethernet e podem suportar quase todas as infra-estruturas e tecnologias de rede física em LANs, MANs e WANs.

A recomendação IEEE 802.3an define também o controle de acesso ao meio (MAC – Media Access Control) e o formato e tamanho do quadro. O novo padrão 10 Gigabit Ethernet suporta somente o modo de operação full duplex, diferente neste sentido dos modos Gigabit e Fast Ethernet que suportam os dois modos (half – CSMA/CD – e full-duplex). O grande trunfo desse padrão é poder implementar LAN, MAN e WAN (internetworking) e, além disso, suportar a tecnologia legada.

Para suportar distâncias entre 50 e 100 m, os projetistas do padrão 802.3an desenvolveram uma nova entidade, na camada física (PHY), que faz a interface entre as já existentes camadas de controle de acesso ao meio (MAC) e a Gigabit Media Independente Interface (XGMII) do modelo IEEE. Essa nova entidade possui a funcionalidade de transmitir, receber e gerenciar sinais codificados que são retirados e injetados na infra-estrutura de cabeamento.

Page 28: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores28 Luiz Arthur

Para o padrão 802.3an ainda não existe uma definição sobre a utilização da codificação do sinal. Os padrões PAM8 e PAM12 estão sendo discutidos, porém ainda não existe um consenso em relação ao método a ser utilizado.

O objetivo principal no desenvolvimento do padrão 10 Gigabit Ethernet é o de utilizar o mesmo quadro MAC especificado em outros padrões Ethernet (802.3u, 802.3z, 802.3ab, e outros). Isso possibilita a integração dessas redes com as redes Ethernet existentes.

Não há a necessidade de fragmentação, remontagem e tradução de endereços, o que implica em um switching de pacotes rápido. Como a operação é só em modo full duplex, portanto a distância do link não afeta o tamanho do quadro MAC (pois não há necessidade em detectar colisões). O tamanho mínimo para o quadro MAC é o mesmo especificado para os outros padrões Ethernet, ou seja, 64 Bytes.

O Gigabit Ethernet (tanto o 1G como o 10G), quando utiliza o cabeamento de cobre (CAT-5, ou CAT-5e , CAT-6 ou seus predecessores), é a melhor escolha se o quesito for custo.

Entretanto, o legado de CAT-5 ficará sujeito a distâncias menores que os 100 m desejados para os cabos estruturados melhores (CAT-5e, CAT-6).

Page 29: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores29 Luiz Arthur

Tecnologia Myrinet

A Myrinet é uma tecnologia de rele local de alta performance, que utiliza comunicação de pacotes e tecnologia de comutação, usada largamente para interconexão de clusters de computadores, workstations e servidores.

A Myrinet é uma rede local comutada, baseada nos conceitos utilizados em redes de interconexão de multiprocessadores. Desenvolvida a partir de dois projetos de pesquisa patrocinados pela US-ARPA: o multicomputador Caltech 7 Mosaic e a rede local USC/ISI 8 Atomic. A rede Atomic (ATM over Mosaic) foi construída com o uso de componentes do Mosaic e a experiência adquirida no seu projeto serviu de base para o desenvolvimento da rede Myrinet.

As redes de alta velocidade devem disponibilizar para cluster as seguintes características:

● Alta performance - distribuindo toda a computação existente entre os hosts da rede com uma interconexão de alta velocidade para os dados e baixa latência na comunicação entre os processos.

● Alta disponibilidade - a interconexão deverá ser capaz de detectar e isolar falhas e utilizar um caminho alternativo para a comunicação.

Page 30: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores30 Luiz Arthur

Redes convencionais como Fast Ethernet podem ser utilizadas para a construção de clusters, mas não provêem características necessárias para uma rede de alta performance e alta disponibilidade.

Algumas características que distinguem a Myrinet de outras redes são descritas a seguir:

● Full-duplex 2+2 Gbp/s de velocidade, portas de switch e portas de interfaces;

● Controle de fluxo, controle de erros e “heartbeat” para monitoramento contínuo de cada link;

● Baixa latência, switches cut-through (atalho) e crossbar, com monitoramento de aplicações que necessitam alta disponibilidade;

● Os switches de rede podem ser escaláveis de 10 a uma centena de hosts, e também possibilita caminhos alternativos entre os hosts;

As interfaces de rede Myrinet executam um programa de controle que interage diretamente com os processos do host, o que faz “ultrapassar” o sistema operacional, fazendo com que exista a baixa latência de comunicação e que “converse” diretamente com a rede para transmitir, receber e fazer buffers de pacotes.

Page 31: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores31 Luiz Arthur

Componentes de uma rede Myrinet

A interface de rede baseia-se no chip VLSI denominado LANai, projetado especificamente para Myrinet. O LANai inclui um processador RISC local para a execução do programa de controle da Myrinet (MCP – Myrinet Control Program) e um controlador DMA para acesso direto à memoria do nó de processamento. O cartão de interface possui ainda uma memória local de 128 Kbytes para armazenamento de pacotes e do software MCP de uma memória de SRAM de 512Kb até 1Mbytes.

Os dados devem ser primeiramente escritos na SRAM da placa de rede para depois serem colocados na rede.

O programa executa na interface a transferência do pacote de dados entre a memória do host e a rede, através de device drivers ou bibliotecas, no espaço de usuário, por meio de filas de tarefas residente na SRAM. Esse programa disponibiliza outras funções de gerenciamento da rede, incluindo translação entre os endereços do host e os roteadores Myrinet e mapeando e monitorando a rede.

Essas interfaces PCI possuem barramento de 32 ou 64 bits e trabalham com freqüências de 33 e 66 MHz. A interface alcança uma taxa de acesso à memória local de 1GB/s. A memória local pode ser de 2 ou 4 MB e opera no dobro da freqüência do relógio do processador RISC.

Page 32: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores32 Luiz Arthur

Quanto ao custo de uma interface de rede Myrinet, o valor fica em torno de US$ 495 a 595 mas existem interfaces com duas portas que custam em torno de 795 US$. Já os switchs de 8 portas custam aproximadamente de US$ 4.000,00 a 5.000,00, switches de 16 portas custam algo em torno de 6,600 US$. Mas existem switches de 32, 64 e 128 portas que custam respectivamente 3.200, 6.400 e 12.800 US$.

Page 33: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores33 Luiz Arthur

A estratégia de controle de fluxo utilizada na Myrinet é a slack buffer. O buffer é dividido em três regiões: inferior, central e superior, com capacidades de 32, 16 e 32 bytes, respectivamente.

A região central é separada das demais regiões por duas marcas de níveis. Sempre que o nível de buffer ultrapassar a marca superior, um comando Stop é enviado ao transmissor para solicitar a interrupção de fluxo. Por outro lado, quando o nível diminui abaixo da marca inferior, um comando Go é enviado para solicitar o restabelecimento do fluxo.

Os comutadores Myrinet são componentes de múltiplas portas, responsáveis por rotear pacotes que chegam pelas portas de entrada para as portas de saída especificadas no cabeçalho dos pacotes.

Os switches Myrinet usam roteamento baseado em atalhos (cut-through). No momento em que um pacote é recebido pelo switch, seu cabeçalho é decodificado de modo a descobrir a porta de saída. Se esta se encontra livre, o cabeçalho do pacote é reduzido de forma a conter apenas os próximos passos, e o pacote é enviado para a porta de saída determinada. Caso a porta se encontre ocupada por outro pacote ou bloqueada, o pacote recebido é armazenado até a liberação da porta, ou o final do prazo de espera.

Page 34: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores34 Luiz Arthur

O roteamento dos pacotes ao longo de uma rede Myrinet é feito através do seu cabeçalho. Quando um pacote é injetado na rede por uma interface, este contém um cabeçalho de um ou mais bytes.

O cabeçalho tem apenas um byte no caso de uma rede composta apenas de duas interfaces e nenhum switch.

Para redes com três ou mais nós, para as quais é necessária a presença de um switch, o cabeçalho deve possuir dois ou mais bytes.

Somente o primeiro byte do cabeçalho é examinado quando um pacote é recebido por um switch ou uma interface. Uma vez que esse byte é utilizado para selecionar uma porta do switch, ele é descartado e retirado do cabeçalho antes do envio do pacote pela porta selecionada.

A marcação contida no último byte do cabeçalho é utilizada pelo programa de controle para distinguir entre diferentes tipos de pacotes, tais como pacotes de usuário e pacotes utilizados pelo protocolo de mapeamento da rede. Ela é lida pelo programa e controle quando o pacote é recebido e utilizado para selecionar a rotina de tratamento do tipo de pacote indicado.

Page 35: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores35 Luiz Arthur

Todos os bytes que indicam a rota a ser seguida possuem seu bit mais significativo marcado em um (1). Sendo que o último byte, a marcação (tag), possui esse bit em zero (0). Quando um comutador encontra um pacote com esse bit em 0, indica que o pacote não alcançou o seu destino final por algum problema na criação do cabeçalho, por exemplo. Neste caso o pacote é descartado e é informado um erro.

Os pacotes de uma rede Myrinet podem ser de tamanhos variados; desta forma, podem encapsular outros tipos de pacotes, incluindo pacotes IP, sem precisar de nenhuma camada de adaptação. Cada pacote é identificado por um tipo, de tal forma que a Myrinet, assim como Ethernet, pode carregar pacotes de vários tipos de protocolos concorrentemente, suportando desta forma, vários tipos de interfaces de software.

Assim sendo, vários tipos de softwares são utilizados, como o próprio TCP/IP (ou UDP/IP), os quais conseguem taxas de transmissão, aproximadamente, de 250 a 1147 Mbits/s. Entretanto, implementações mais específicas para Myrinet conseguem desempenhos melhores, tais como MPI e VIA desenvolvida pela própria Myricom.

O software desenvolvido pela própria Myricom baseado em troca de mensagens está disponível, com código aberto para uma série de plataformas diferentes (Linux, Windows, etc).

Page 36: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores36 Luiz Arthur

Tecnologia Scalable Coherent Interface – SCI

O SCI é uma tecnologia de comunicação de alto desempenho, especificada pelo padrão ANSI/IEEE iniciado em 1989 e finalizado em 1992. É uma estrutura de rede rápida, muito flexível, com protocolo de link baseado em comunicações de pacotes ponto a ponto. O SCI foi desenvolvido para fornecer uma comunicação de dados com altíssima eficiência e compartilhar a memória entre processadores, placas de sistema, etc.

Essa é uma das principais tecnologias utilizadas para a construção de sistemas de multiprocessadores escaláveis. Ela evita os tradicionais gargalos existentes entre os barramentos e as tecnologias de rede. O SCI é muito utilizado na atualidade em multiprocessamento na área militar e em aplicações aeroespaciais, e também extensivamente utilizado em aplicações massivamente paralelas.

A grande vantagem nesta plataforma consiste na programação com memória compartilhada ao invés de troca de mensagens, o que facilita um pouco a programação.

Ao invés da tradicional troca explícita de mensagens entre os nós do cluster, o SCI permite que um processo tenha mapeado em seu espaço de endereçamento um segmento de memória fisicamente alocado em outro nó.

Page 37: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores37 Luiz Arthur

Um cluster utilizando a tecnologia SCI torna-se um sistema de coerência global compartilhada entre seus nós, permitindo o uso do modelo de memória compartilhada, a mesma filosofia encontrada em arquiteturas SMP.

O controle de caches e acesso ao barramento interno de um nó é feito diretamente pelo hardware de comunicação, diferente dos modelos que emulam memória compartilhada distribuída, o que proporciona melhorias no desempenho e diminui a complexidade no desenvolvimento ao nível de software.

O SCI pode ser implementada como uma ligação paralela de 16 bits usando uma topologia em anel ou comutada em estrela, dependendo da performance requerida.

Cada interface de rede possui dois canais de comunicação, um de entrada e o outro de saída, com uma performance de 200 Mbytes/s até 1000 Mbytes/s, cobrindo uma distância de 10 metros para cabos elétricos e alguns quilômetros para fibra óptica. Mas podem chegar a 1.333Gbytes/s.

Page 38: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores38 Luiz Arthur

Essa placas são fabricadas pelas empresas Dolphin e Scali.

Além dos beneficios do desempenho e do baixo custo, uma das características principais é a alta escalabilidade, na ordem de centenas de nós, bem como a garantia da entrega de dados, o que permite soluções robustas e seguras.

Page 39: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores39 Luiz Arthur

O protocolo SCI é executado diretamente na memória do sistema, contudo as exigências para ciclos de processador para remapeamento são minímas possíveis. O consumo de ciclos de processador para transmissão são também minimizados, porque a placa faz o trabalho sem o uso das pilhas de protocolo de software, o que economiza processamento da CPU.

Enquanto as pequenas mensagens são tratadas com as instruções Load e Store do processador, as mensagens longas e as transferências de dados memória a memória são controladas diretamente pelo controlador de DMA Dolphin da placa SCI.

A programação com SCI baseia-se na criação e mapeamento remotos de segmentos de memória a serem compartilhados. O princípio de funcionamento dessa características é feito via hardware, pela utilização de janela de endereçamento do barramento PCI, com largura de 64 bits, e manipulação de tabelas de páginas relativas ao espaço de endereçamento de um processo. Uma falha de acesso a um endereço de memória indica uma referência a um segmento remoto; esta falha é então tratada pelo device driver da interface SCI, que executa a operação remotamente, através do meio de comunicação.

É claro que a implementação dos devices drivers devem estar fortemente acoplada ao sistema operacional, normalmente exigindo alterações ou extensões nos módulos de gerência de memória.

Page 40: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores40 Luiz Arthur

A padronização SCI inclui a implementação de todos os protocolos de comunicação e controle de cache nas próprias interfaces de interconexão. O protocolo de comunicação é baseado na transferência de pacotes, mas o controle de coerência de cache não pode ser implementado por completo na interface de rede, pois as transações entre o processador e a memória física de modo não são visíveis ao barramento PCI.

A performance da tecnologia SCI é semelhante a da Myrinet. Assim, além do alto desempenho, a possibilidade de programação com memória compartilhada gera um enorme atrativo, e torna o SCI uma tecnologia muito promissora para cluster de computadores.

Memória Virtual host A Memória Virtual host B

Memória Física host A Memória Física host B

PCI/SCI

host A

PCI/SCI

host B

Page 41: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores41 Luiz Arthur

InfiniBand

InfiniBand é uma arquitetura que define um barramento de computador serial de alta velocidade, projetado tanto para conexões internas quanto externas. Ele é o resultado da combinação de duas tecnologias concorrentes, Future I/O, desenvolvida pela Compaq, IBM e Hewlett-Packard com a Next Generation I/O (ngio), desenvolvido por Intel, Microsoft, Dell, Hitachi, Siemens e Sun Microsystems.

Em agosto de 1999, os sete líderes da indústria, Compaq, Dell, Hewlett-Packard, IBM, Intel, Microsoft e Sun Microsystems formaram a IBTA (InfiniBand Trade Association). A primeira especificação da arquitetura InfiniBand foi feita em junho de 2001.

InfiniBand é uma arquitetura ponto-a-ponto que se destina a fornecer aos centros de dados uma conectividade para entradas/saídas melhoradas e adaptadas a qualquer tipo de tráfego. Uma conexão InfiniBand substituirá os vários cabos atuais e servirá simultaneamente para a conectividade do cluster, da rede e do armazenamento. É uma tecnologia comutada que utiliza três tipos de dispositivos, comutadores, interfaces HCA (Host Channel Adapter), que são os conectores usados na comunicação interprocessadores do lado dos servidores e nas interfaces TCA (Target Channel Adapter), que são tipicamente usadas para conexão nos subsistemas de E/S.

Page 42: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores42 Luiz Arthur

Algumas caracteristicas da InfiniBand são:

●Alta Performance: InfiniBand fornece alta performance chegando a 10Gb/s de nó-para-nó e 60 Gb/s de switch-para-switch. Mas pode apresentar conexões de até 120 Gb/s.

●Redução de Complexidade: Permite a consolidação de múltiplas interfaces de I/O em um único cabo.

●Alta eficiência de interconexão: Tal tecnologia foi desenvolvida para prover escalabilidade para múltiplos sistemas e o processo de comunicação é feito pelo próprio hardware de rede, poupando a CPU dos hosts. O InfiniBand também fornece suporte a Remote Direct Memory Access que otimiza a transferência de dados.

●Estabilidade de conexões: O InfiniBand fornece redundância de conexão o que dificulta falhas de comunicação entre os nós. Tal tecnologia permite também que um nó tenha várias conexões dedicadas na rede, isto ajuda a prover estabilidade para aplicações que trabalham em ambientes virtualizados, por exemplo.

Page 43: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores43 Luiz Arthur

Devido a suas características, InfiniBand é uma tecnologia adequada para aplicações de HPC (High Performance Computing). Enquanto InfiniBand provê muitas características avançadas que servem para um grande leque de aplicações, contudo esta tecnologia ainda é um padrão em evolução e deve sofrer muitas melhorias. Algumas das melhorias planejadas para InfiniBand incluem especificações de maiores taxas de sinalização, controle de congestionamento e qualidade de serviço (QoS).

Page 44: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores44 Luiz Arthur

Gigabyte System Network

GSN é um padrão ANSI (American National Standards Institute) de tecnologia de rede que foi desenvolvida para redes de alta performance enquanto mantém compatibilidade com tecnologias de rede como HIPPI (High Performance Parallel Interface), Ethernet, e outros padrões de rede. GSN tem uma alta capacidade de banda de 6400 Mbps em full-duplex e baixa latência.

Características:

●Capacidade de Banda: acima de 800MB por segundo em full-duplex. Velocidade comparável com Fibre Channel, ATM OC12, Gigabit Ethernet, e HIPPI;

●Latência: latência de 4 microseconds; latência do MPI é de 13 microseconds;

●Interoperabilidade: IP sob GSN, ST sob GSN, BDS sob GSN e ARP sob GSN;

●Biblioteca para diversos S.O.

Page 45: Tópicos - Redes para Cluster de Alta Performance

Redes em Cluster de Computadores45 Luiz Arthur

Fim