Dicas Úteis

Redes para supercomputadores

Pin
Send
Share
Send
Send


A computação distribuída é uma maneira de contribuir para alguns projetos interessantes. Quando seu computador estiver ocioso, compartilhe seu poder com o projeto SETI, que está procurando por civilizações extraterrestres. Neste caso, o seu computador analisará dados de satélite e informações recebidas de telescópios.

Este artigo ajudará você a participar de projetos (como o SETI) envolvendo computação distribuída. O artigo também apresenta o BOINC, um software de computação distribuída.

Você precisa de um computador. Se você já tem um, vá para a seção Fontes e Links e instale o software BOINC. Se você não está interessado no projeto SETI, abaixo você encontrará uma lista de outros projetos.

Se muito dinheiro

Separadamente, notamos a linha de processadores extremamente cara, mas produtiva, do soquete Intel Xeon LGA1567.
O processador top desta série é o E7-8870 com dez núcleos de 2,4 GHz. Seu preço é de US $ 4616. Para tais CPUs, HP e Supermicro estão lançando! oito processadores! chassi do servidor. Oito processadores Xeon E7-8870 de 2,4 GHz de 10 núcleos com suporte a HyperThreading 8 * 10 * 2 = 160 encadeamentos, que são exibidos no Gerenciador de tarefas do Windows como cento e sessenta gráficos de carregamento do processador, matriz 10x16.

Para oito processadores caberem no gabinete, eles não são colocados imediatamente na placa-mãe, mas em placas separadas que ficam na placa-mãe. A foto mostra quatro placas-mãe com processadores instalados na placa-mãe (dois em cada). Esta é uma solução Supermicro. Na solução da HP, cada processador possui sua própria placa. O custo de uma solução da HP é de dois a três milhões, dependendo do número de processadores, memória e muito mais. O chassi da Supermicro custa US $ 10.000, o que é mais atraente. Além disso, a Supermicro pode colocar quatro placas de expansão do coprocessador nas portas PCI-Express x16 (a propósito, ainda haverá espaço para um adaptador Infiniband montar um cluster delas), mas apenas duas na HP. Assim, para criar um supercomputador, uma plataforma de oito processadores da Supermicro é mais atraente. A foto a seguir da exposição mostra o supercomputador completo com quatro placas GPU.

No entanto, é muito caro.

Redes de comunicação

A eficácia de um supercomputador em muitas aplicações é amplamente determinada pelo perfil de trabalho com memória e rede. O perfil de trabalho com memória é geralmente descrito pela localização espaço-temporal das chamadas - pelo tamanho das chamadas e pela dispersão de seus endereços, e o perfil de trabalho com a rede é descrito pela distribuição dos nós com os quais as mensagens são trocadas, a taxa de câmbio e os tamanhos das mensagens.

O desempenho de um supercomputador em tarefas com troca intensiva de dados entre nós (problemas de modelagem, problemas em gráficos e grades irregulares, cálculos usando matrizes esparsas) é determinado principalmente pelo desempenho da rede, portanto o uso de soluções comerciais convencionais (por exemplo, Gigabit Ethernet) é extremamente ineficiente. No entanto, uma rede real é sempre uma solução de compromisso, no desenvolvimento de prioridades que são estabelecidas entre preço, desempenho, consumo de energia e outros requisitos que são em grande parte conflitantes: tentativas de melhorar uma característica podem levar a uma deterioração da outra.

Uma rede de comunicação consiste em nós, cada um dos quais possui um adaptador de rede conectado a um ou mais roteadores, que por sua vez são interconectados por canais de comunicação de alta velocidade (links).

Fig. 1. Topologia 4D-torus (3x3x3x3)

A estrutura da rede, que determina como exatamente os nós do sistema são interconectados, é determinada pela topologia da rede (geralmente uma rede, um toro ou uma árvore espessa) e um conjunto de parâmetros estruturais: o número de medições, o número de árvores, as dimensões dos lados do toro, o número de switches nos níveis das árvores, o número de nós da rede portas em roteadores, etc. A Figura 1 mostra um exemplo da topologia de um toro quadridimensional 3x3x3x3.

A arquitetura do roteador determina a estrutura e a funcionalidade dos blocos responsáveis ​​pela transferência de dados entre os nós da rede, bem como as propriedades necessárias dos protocolos das camadas de canal, rede e transporte, incluindo algoritmos de roteamento, arbitragem e controle de fluxo de dados. A arquitetura do adaptador de rede determina a estrutura e funcionalidade dos blocos responsáveis ​​pela interação entre o processador, memória e rede, em particular, as operações MPI são suportadas neste nível, RDMA (acesso direto à memória direta - acesso direto à memória de outro nó sem a participação de seu processador), confirmações de recebimento por outro nó do pacote, tratamento de situações excepcionais, agregação de pacotes.

Para avaliar o desempenho de uma rede de comunicação, três características são mais usadas: largura de banda (quantidade de dados transferidos por unidade de tempo), atraso de comunicação (tempo de transferência de dados através da rede), ritmo de mensagem (Geralmente, eles consideram separadamente a taxa de entrega ao enviar, receber e transmitir pacotes entre as unidades internas do roteador).

Para completar, essas características são medidas em diferentes tipos de tráfego, por exemplo, quando um nó envia dados para todos os outros ou, inversamente, todos os nós enviam dados para um, ou quando todos os nós enviam dados para destinos aleatórios. Os requisitos de funcionalidade são impostos às redes modernas:

  • implementação eficaz da biblioteca Shmem, como uma opção para apoiar o modelo de comunicação unidirecional, e GASNet, no qual a implementação de muitas línguas PGAS é baseada,
  • implementação eficiente de MPI (geralmente isso requer suporte efetivo do mecanismo de buffers de anel e confirmações de pacotes recebidos),
  • suporte efetivo para operações coletivas: difusão (enviando os mesmos dados simultaneamente para muitos nós), redução (aplicando uma operação binária, por exemplo adição, ao conjunto de valores recebidos de nós diferentes), distribuindo elementos de array sobre o conjunto de nós (dispersão), montando uma matriz de elementos, localizado em nós diferentes (reunir),
  • suporte efetivo para operações de sincronização entre nós (pelo menos sincronização de barreira), interação efetiva com uma rede de um grande número de processos em um nó e garantia de entrega confiável de pacotes.

O suporte efetivo do trabalho do adaptador com a memória do host diretamente sem o envolvimento do processador também é importante.

Redes estrangeiras de alta velocidade

Todas as redes de comunicação podem ser divididas em duas classes: comercial e customizada, desenvolvidas como parte de sistemas computacionais e disponíveis apenas com elas. Entre as redes comerciais, o mercado é dividido entre InfiniBand e Ethernet - na lista Top500 (junho de 2011), 42% dos sistemas usam InfiniBand e 45% usam Gigabit Ethernet. Ao mesmo tempo, se o InfiniBand estiver focado no segmento de sistemas de alto desempenho projetados para tarefas complexas de computação com um grande número de comunicações, a Ethernet tradicionalmente ocupa um nicho onde a troca de dados entre nós é desnecessária. Em supercomputadores, a rede Ethernet, devido ao seu baixo custo e disponibilidade, é frequentemente utilizada como uma rede de serviços auxiliares para reduzir a interferência do tráfego de controle e do tráfego de tarefas.

A rede Inifiniband foi inicialmente focada em configurações com a topologia de árvore Fat, mas as versões mais recentes de switches e roteadores (principalmente fabricados pela QLogic) suportam a topologia multidimensional do torus (usando o Torus-2QoS Routing Engine), bem como uma topologia híbrida do 3D torus e árvore gorda. O supercomputador Sandia RedSky, montado no início de 2010 e agora em 16º lugar no Top500, é um dos primeiros projetos de grande escala com a rede InfiniBand e topologia 3D Torus (6x6x8). Além disso, muita atenção agora é dada ao suporte efetivo das operações de RDMA e da biblioteca Shmem (em particular, Qlogic Shmem).

A popularidade do InfiniBand é devido ao seu custo relativamente baixo, ecossistema desenvolvido de software e suporte efetivo para MPI. No entanto, o InfiniBand tem suas desvantagens: baixa taxa de entrega de mensagens (40 milhões de mensagens por segundo nas últimas soluções da Mellanox), baixa eficiência de transmissão de pacotes curtos, um atraso relativamente grande (mais de 1,5 μs para transmissões nó a nó e um adicional de 0,1 0,5 μs por nó de trânsito), suporte fraco para a topologia toroidal. Em geral, pode-se argumentar que o InfiniBand é um produto para o usuário em massa, e durante seu desenvolvimento foi feito um compromisso entre eficiência e versatilidade.

Também podemos notar a rede Extoll, que está sendo preparada para lançamento no mercado - o desenvolvimento da Universidade de Heidelberg, sob a liderança do professor Ulrich Bruening. A principal ênfase no desenvolvimento desta rede é minimizar os atrasos e aumentar a taxa de entrega em comunicações unidirecionais. É planejado que o Extoll terá uma topologia de torus 3D e usará links óticos com uma largura de banda de 10 Gb / s por pista (canal de transmissão de dados serial dentro do link) e uma largura de 12 pistas por link. Agora existem protótipos da rede Extoll em FPGA: R1 - baseado em Virtex4, R2 Ventoux - um layout de dois nós baseado em Virtex6. A largura de banda unidirecional por link é de 600 MB / s (para R1). Duas interfaces (HyperTransport 3.0 e PCI Express gen3) com um processador também serão suportadas, o que permitirá a integração desta rede nas plataformas Intel e AMD. O Extoll suporta várias maneiras de organizar registros unidirecionais, sua própria MMU (unidade de gerenciamento de memória, um bloco de conversão de endereços virtuais em endereços físicos) e operações atômicas.

Ao contrário das redes comerciais, as redes personalizadas ocupam uma quota de mercado muito menor, no entanto, elas são usadas nos supercomputadores mais poderosos da Cray, IBM, SGI, Fujitsu, NEC e Bull. Ao projetar redes personalizadas, os desenvolvedores têm mais liberdade e tentam usar abordagens mais progressivas devido à menor importância da atratividade de mercado do produto final, resolvendo principalmente o problema de obter desempenho máximo em uma classe específica de tarefas.

O supercomputador K Computer usa uma rede de comunicação proprietária Tofu (TOrus FUsion), que é um toróide 3D escalável cujos nós contêm grupos de 12 nós (grupos de nós são conectados por 12 redes com um toróide 3D, e cada nó desse grupo tem sua própria saída Rede torus 3D). Os nós dentro de cada grupo são interconectados por um toro 3D com lados 2x3x4 sem links duplicados, o que equivale a um toro 2D com lados 3x4 (assim, obtemos um toro 5D com duas dimensões fixas). Assim, o nó da rede do Tofu tem 10 links com taxa de transferência unidirecional de 40 Gb / s cada. Sincronização de barreira de nós e redução (inteiro e ponto flutuante) são suportados em hardware.

Os principais objetivos no desenvolvimento do supercomputador Tianhe-1A foram alcançar alta eficiência energética, desenvolver seu próprio processador e rede superior ao InfiniBand QDR. O supercomputador consiste em 7168 nós de computação conectados pela rede Arch de seu próprio projeto com a topologia de árvore espessa. A rede é construída a partir de roteadores de 16 portas, largura de banda unidirecional - 8 GB / s, atraso - 1,57 μs. Operações RDMA suportadas e operações coletivas otimizadas.

Representantes clássicos de sistemas usando uma topologia toroidal para combinar nós computacionais são sistemas para a série IBM Blue Gene, nas duas primeiras gerações das quais - Blue Gene / L (2004) e Blue Gene / P (2007) - utilizaram a topologia de torus 3D. A rede no Blue Gene / P tem uma ligação relativamente fraca com uma largura de banda de 0,425 GB / s, que é uma ordem de grandeza inferior à largura de banda do seu InfiniBand QDR. No entanto, o suporte baseado em hardware para sincronização de barreiras e operações coletivas permite uma boa escalabilidade. aplicações reais. Além disso, todas as interfaces e unidades de roteamento são integradas ao microprocessador BPC (Blue Gene / P Chip), o que reduz significativamente os atrasos de transmissão de mensagens. A rede de comunicação de próxima geração Blue Gene / Q tem uma topologia 5D-tor e, ao contrário de seus predecessores, não possui redes separadas para sincronização de barreiras e operações coletivas. O chip Blue Gene / Q pela primeira vez tornou-se multi-core-multi-thread - quatro threads de hardware por núcleo com 16 núcleos, o que permite enfraquecer os requisitos de rede e garantir a tolerância de atraso. A taxa de transferência de links foi aumentada para 2 GB / s, mas ainda permanece pequena em comparação com a Cray Gemini ou a Extoll. A baixa taxa de transferência nesses sistemas é nivelada pela grande dimensão do toro (um grande número de links) e, como resultado, pelo pequeno diâmetro da rede (significativamente menor que o das redes com uma topologia de toro 3D com o mesmo número de nós). Fontes disponíveis relatam a criação de dois supercomputadores transpetaflops Blue Gene / Q: Sequoia com um desempenho de 20 PFLOPS e Mira - 10 PFLOPS. Podemos concluir que o Blue Gene / Q está focado em tarefas que usarão dezenas e centenas de milhares de nós de computação com tráfego de rede do tipo “todos para todos”.

Outro adepto da abordagem à construção de redes de comunicação com uma topologia toroidal é o Cray, que continua a usar a topologia do tor 3D, enquanto aumenta o throughput e o número de links que conectam os nós vizinhos. A geração atual da rede toroidal Cray é a rede Cray Gemini. Um roteador Gemini corresponde a dois roteadores da geração SeaStar2 + anterior, ou seja, dois nós de rede, portanto, em Gemini, em vez de 6, 10 são usados ​​para conectar a nós vizinhos (2 servem para conectar dois adaptadores).

Os componentes (adaptadores de rede, switches, roteadores) de uma rede para um supercomputador, ao contrário dos processadores, são geralmente mais caros e o acesso a eles é mais limitado. Por exemplo, agora os switches da rede InfiniBand, que é a principal rede comercial de supercomputadores, são produzidos por apenas duas empresas, ambas controladas pelos Estados Unidos. Isso significa que, na ausência de seus próprios desenvolvimentos no campo das redes de alta velocidade, a criação de supercomputadores modernos em qualquer país, exceto nos EUA, na China ou no Japão, pode ser facilmente controlada.

Redes domésticas

O desenvolvimento de redes de comunicação para uso em supercomputadores é realizado por várias organizações nacionais: o RFNC VNIIEF (há muito pouca informação sobre esses desenvolvimentos em fontes abertas), o Instituto de Sistemas de Software da Academia Russa de Ciências e RSK SKIF, o IPM RAS e o Instituto de Pesquisa Kvant (MVS-Express network ").

A rede de comunicação 3D tor para o supercomputador russo-italiano SKIF-Aurora é completamente construída usando o FPGA Altera Stratix IV, que explica a pequena largura de banda por link - 1,25 GB / s (os recursos do FPGA são muito limitados).

Na rede MVS-Express, o PCI Express 2.0 é usado para integrar os nós de computação e os nós são conectados por meio de switches de 24 portas. A rede tem uma topologia próxima a árvore Fat. O adaptador de rede no nó de computação tem uma porta com uma largura de 4 pistas, como resultado, a taxa de transferência de pico unidirecional por link é de 20 Gbit / s, sem levar em conta a sobrecarga de codificação. A vantagem de usar o PCI Express no MVS-Express é o suporte eficiente da memória compartilhada com a possibilidade de comunicações unidirecionais. Como resultado, a rede é conveniente para implementar a biblioteca Shmem e os idiomas do PGAS (UPC, CAF).

Com o apoio do Ministério da Indústria e Comércio da Federação Russa, a NICEVT OJSC está trabalhando no desenvolvimento da rede de comunicação Angara com uma topologia 4D-tor, que pode se tornar a base para a criação de tecnologias domésticas para o desenvolvimento de supercomputadores.

Rede "Angara"

Os principais objetivos do desenvolvimento da rede Angara:

  • suporte eficaz para comunicações unidirecionais (put / get) e linguagens PGAS (como principal meio de programação paralela),
  • Suporte efetivo para MPI
  • liberação de cristal próprio (para alcançar altas taxas de transferência de dados e baixos atrasos),
  • transmissão adaptável de pacotes à prova de falhas,
  • trabalho eficaz com processadores e chipsets modernos.

No primeiro estágio de desenvolvimento desta rede (2006), foi realizada uma simulação de várias opções de rede e as principais decisões foram tomadas na topologia, arquitetura do roteador, algoritmos de roteamento e arbitragem. Além da topologia toroidal, foram consideradas as redes de Cayley e a “árvore grossa”. O torus quadridimensional foi escolhido devido ao seu roteamento mais simples, boa escalabilidade e alta conectividade em comparação com toros menores. A modelagem de redes possibilitou estudar detalhadamente o efeito de vários parâmetros da arquitetura de rede sobre as principais características de desempenho, para compreender os padrões para o tráfego de tarefas com acesso irregular intenso à memória. Como resultado, os tamanhos ótimos de buffer, o número de canais virtuais foram selecionados e os possíveis gargalos foram analisados.

Em 2008, surgiu o primeiro protótipo de um roteador FPGA - um layout de rede de seis nós no Virtex4 conectado a um torus 2x3, no qual a funcionalidade básica do roteador foi depurada, a transmissão de dados tolerante a falhas foi resolvida, o driver e a biblioteca de baixo nível foram escritos e depurados, as bibliotecas Shmem foram portadas e MPI Agora lançou um layout de terceira geração, composto por nove nós conectados em um torus bidimensional 3x3. Собран стенд с двумя узлами для тестирования новых разъемов и каналов передачи данных, предполагаемых к использованию с будущими кристаллами маршрутизатора ВКС. При разработке принципов работы сети ряд деталей был позаимствован из работ и , а также в том или ином виде из архитектур IBM Blue Gene и Cray SeaStar.

Сеть «Ангара» имеет топологию 4D-тор. Поддерживается детерминированная маршрутизация, сохраняющая порядок передачи пакетов и предотвращающая появление дедлоков (взаимных блокировок), а также адаптивная маршрутизация, позволяющая одновременно использовать множество путей между узлами и обходить перегруженные и вышедшие из строя участки сети. Foi dada especial atenção ao apoio a operações coletivas (radiodifusão e redução) implementadas usando uma sub-rede virtual com a topologia de uma árvore sobreposta a um toro multidimensional. A rede no nível de hardware suporta dois tipos de gravações remotas, leituras e operações atômicas (adição e OR exclusivo). O esquema de execução de leitura remota (enviando uma solicitação e recebendo uma resposta) é mostrado na Fig. 2 (gravação remota e operações atômicas são realizadas de forma semelhante). Em um bloco separado, a lógica é implementada para agregar mensagens recebidas da rede para aumentar o compartilhamento de dados úteis por transação ao transmitir por meio de uma interface com um host (um host é uma ponte de ponte de memória do processador).

Fig. 2. Esquema de leitura remota na rede Angara

Na camada de enlace de dados, a transmissão de pacotes à prova de falhas é suportada. Há também um mecanismo para ignorar canais e nós de comunicação com falha, reconstruindo as tabelas de roteamento. Para executar várias operações de serviço (em particular, configurar / recriar tabelas de roteamento) e executar alguns cálculos, um processador de serviço é usado. A interface do host usa o PCI Express.

Fig. 3. A estrutura do nó de computação com um adaptador de rede / roteador "Angara"

Os principais blocos do roteador:

  • interface com o sistema host, responsável por receber e enviar pacotes na interface do host,
  • uma unidade de injeção e ejeção que forma pacotes a serem enviados para a rede e analisa os cabeçalhos de pacotes vindos da rede,
  • uma unidade de processamento de pedidos que processa pacotes que requerem informações da memória do sistema host (por exemplo, leituras ou operações atômicas),
  • uma unidade de rede de operações coletivas que processa pacotes associados a operações coletivas, em particular, executando operações de redução, gerando pacotes de solicitação de difusão,
  • uma unidade de operações de serviço que processa pacotes indo para e do coprocessador de serviço,
  • um interruptor que conecta entradas de vários canais virtuais e entradas de injetores com saídas para várias direções e ejetores,
  • canais de comunicação para transmitir e receber dados em uma determinada direção,
  • uma unidade de transmissão de dados para envio de pacotes em uma determinada direção e uma unidade receptora e de roteamento para receber pacotes e decidir sobre seu futuro destino.

A interação do host (o código executado no processador central) com o roteador é realizada gravando os endereços de memória mapeados nos endereços das regiões de recursos do roteador (entrada / saída mapeada na memória). Isso permite que o aplicativo interaja com o roteador sem a participação do kernel, o que reduz a sobrecarga de envio de pacotes, já que mudar para o contexto do kernel e voltar leva mais de cem ciclos de clock. Para enviar pacotes, uma das regiões de memória é usada, o que é considerado como um buffer de anel. Há também uma região separada para executar operações sem copiar a memória de memória (os dados são lidos da memória e gravados pelo adaptador da rede de comunicação por meio de operações de DMA) e uma região com registros de controle. O acesso a determinados recursos do roteador é controlado pelo módulo nuclear.

Para alcançar maior eficiência, foi decidido que apenas uma tarefa computacional deveria ser executada em um nó, isso eliminou a sobrecarga associada ao uso de memória virtual, evitou a interferência de tarefas, simplificou a arquitetura do roteador devido à falta de um MMU completo e evitou seu trabalho de comunicação atrasa, além de simplificar o modelo de segurança de rede, eliminando a segurança de processos de várias tarefas em um nó. Essa solução não afetou a funcionalidade da rede como destinada principalmente para tarefas de grande porte (em oposição ao InfiniBand, uma rede universal para tarefas de vários tamanhos). Uma decisão semelhante foi tomada no IBM Blue Gene, onde uma restrição na exclusividade da tarefa é introduzida para a seção.

No nível de hardware, o trabalho simultâneo com o roteador de muitos threads / processos de uma tarefa é suportado - é implementado na forma de vários canais de injeção disponíveis para uso por processos através de vários buffers de anel para gravação de pacotes. O número e o tamanho desses buffers podem mudar dinamicamente.

O principal modo de programação para a rede Angara é o uso conjunto de MPI, OpenMP e Shmem, assim como GASNet e UPC.

Após a conclusão da verificação e prototipagem da rede, planeja-se lançar um chip VLSI. Um protótipo de lote VLSI será projetado para depurar soluções tecnológicas básicas, um processo tecnológico e uma verificação experimental dos resultados da simulação. O protótipo conterá todas as funcionalidades básicas, funcionará com a interface PCI Express gen2 x16 e será vinculado a uma taxa de transferência de 75 Gb / s.

Está prevista a promoção da rede Angara para o mercado em duas versões: como uma rede comercial separada na forma de placas PCI Express para sistemas cluster com processadores e chipsets padrão, e como parte de um sistema blade de quatro soquetes baseado nos processadores AMD desenvolvidos no NICEVT.

Assista ao vídeo: O que é um supercomputador? Para que ele serve? CT Responde (Agosto 2020).

Pin
Send
Share
Send
Send