Servers in a data center

4 Coisas que Gerentes de Data Center podem aprender com os mais rápidos Supercomputadores

Se você perguntasse a um leigo na rua o que ele achava que era um supercomputador, você provavelmente teria uma grande porcentagem citando exemplos de filmes populares e, normalmente, exemplos de reputação duvidosa. Desde o HAL 9000 (2001: Uma Odisséia no Espaço) ao VIKI do iRobot, e até o Skynet do The Terminator; a cultura popular frequentemente se refere a supercomputadores como sistemas conscientes que evoluíram e se voltaram contra a humanidade.

Diga isso aos pesquisadores do Lawrence Livermore National Laboratory, ou do National Weather Service, e eles te expulsarão da sala rindo. A verdade é que hoje os supercomputadores estão longe de ser autoconscientes e a única IA é essencialmente uma barra de pesquisa superinflada que está varrendo grandes conjuntos de dados.

Hoje, os supercomputadores estão alimentando uma grande quantidade de aplicativos que estão na linha de frente do progresso: desde exploração de gás e petróleo a previsões do tempo, mercados financeiros ao desenvolvimento de novas tecnologias. Os supercomputadores são os Lamborghini ou Bugatti do mundo da informática e, na Kingston, prestamos muita atenção aos avanços que estão estendendo as fronteiras da computação. Da utilização e configuração do DRAM aos avanços de firmware no gerenciamento dos sistemas de armazenamento, até a ênfase na consistência das velocidades de transferência e latência ao invés de valores de pico, nossas tecnologias influenciaram profundamente o avanço da supercomputação.

De forma similar, há muitas coisas que gerentes de data centers na nuvem e no local podem aprender com a supercomputação quando se relaciona a projetar e gerenciar suas infraestruturas, bem como melhor selecionar os componentes que estarão prontos para avanços futuros sem grandes reformulações.

Server
1. Supercomputadores são construídos com a finalidade de consistência

Diferentemente da maioria das plataformas de computação na nuvem como Amazon Web Services ou Microsoft Azure que foram criadas para alimentar uma variedade de aplicativos que podem utilizar recursos e infraestruturas compartilhadas, a maioria dos supercomputadores é criada para necessidades específicas. A atualização mais recente da lista dos TOP500 supercomputadores mais rápidos do mundo (de conhecimento público e não reservado), observa não apenas os locais e velocidades das instalações, mas o principal campo de aplicação.

Onze das principais doze máquinas são dedicadas à pesquisa de energia, testes nucleares e aplicações militares. O único fora do padrão é o Frontera, um novo sistema de computação em escala peta no Centro de Computação Avançada do Texas na Universidade do Texas, financiado pela NSF, que oferece recursos acadêmicos para parceiros de pesquisas científicas e de engenharia. Os seguintes 20 supercomputadores na lista dos TOP500, quase todos são dedicados a aplicações do setor militar e inteligência do governo. As máquinas de número 30 ao 50 da lista são majoritariamente dedicadas a previsão do tempo. As últimas 50 das principais 100, são um misto de computação corporativa (NVIDIA, Facebook, et.al), previsões do tempo de nível médio, programas espaciais, exploração de petróleo e gás, uso acadêmico e usos específicos do governo.

Essas máquinas não são todas iguais. Elas são desenvolvidas e customizadas por fabricantes como Intel, Cray, HP, Toshiba e IBM para realizar tipos específicos de cálculos em conjuntos de dados bem específicos - seja em tempo real ou computação assíncrona.

Eles definiram limites de latência aceitáveis:

  • Recursos de computação predefinidos alavancando milhões de núcleos de processamento
  • Apresenta valores de clock entre 18.000 e 200.000 teraFLOPS.

Suas capacidades de armazenamento são medidas em exabytes ― muito além dos petabytes dos modernos bancos de dados.

Sistemas como o Frontera não precisam apenas mergulhar no pico de uma carga de computação, mas invés disso devem consistentemente ler grandes quantidades de dados para chegar a um resultado. Um pico no desempenho da computação poderia na verdade causar erros nos resultados, assim a ênfase é dada à consistência.

Atualmente o gerente de data center precisa primeiro perguntar: “O que estamos fazendo com o sistema?”para planejar, gerenciar recursos e integrar proteções de falhas previsíveis. Gerenciar um data center que opera uma série de desktops virtuais é muito diferente de um call center ou sistemas de controle de tráfego aéreo. Eles têm diferentes necessidades, demandas, contratos de serviço e orçamentos - e precisam ser projetados de acordo.

Da mesma forma, existe a necessidade de considerar como conseguir um desempenho consistente sem precisar de configurações customizadas. Empresas como a Amazon, Google e Microsoft possuem orçamento para projetar armazenamento customizado ou infraestruturas de computação, mas a maioria dos prestadores de serviço precisa ser mais seletivo com o hardware disponível no mercado.

Assim, mais gerentes de data centers precisam definir critérios rígidos para benchmarks de desempenho que sejam compatíveis com a QoS e assegurem que a maior ênfase não seja apenas na velocidade e latência da computação, mas também na consistência.

2. Seu tempo real não é meu tempo real
 servidor com linhas brilhantes representando uma rede

Nas aplicações de supercomputação, muitas das situações de dados em tempo real têm implicações importantes. Desde interromper uma reação nuclear a dados de telemetria para o lançamento de um foguete, a latência de computação pode ter efeitos catastróficos - e os conjuntos de dados são imensos. Esses fluxos de dados não estão apenas se alimentando de uma única fonte; mas vem frequentemente de uma rede de dados.

Mas os dados têm vida curta. Ao trabalhar com feeds de tempo real, a maior parte dos dados não se mantém para sempre. São gravados e depois sobrepostos com uma vida útil de gravações e sobreposições sequenciais. Os dados em tempo real estão sempre mudando e muito poucas aplicações precisariam de cada bit armazenado desde o início dos tempos. Os dados são processados em lotes, computados para criar um resultado (seja uma média, modelo estatístico ou algoritmo) e o resultado é o que se mantém.

Pegue por exemplo as previsões do supercomputador do National Oceanographic and Atmospheric Administration (NOAA). Há sempre constantes alterações nos fatores meteorológicos, seja na precipitação, temperatura do ar e da terra, pressão barométrica, hora do dia, efeitos solares, vento e até como isso passa sobre a superfície. Isso muda a cada segundo e é relatado como um fluxo de informação em tempo real. Mas o Serviço Nacional do Tempo (National Weather Service - NWS) da NOAA não precisa dos dados brutos para sempre. Você precisa dos modelos de previsão! À medida que o modelo do sistema global de previsão (GFS) é formado, novos dados são colocados dentro dele, formando previsões mais precisas e atualizadas.

Além disso, meteorologistas locais que compartilham e recebem dados do NWS não precisam acessar todo o banco de dados global do tempo. Eles limitam seus modelos apenas às áreas locais. Isso permite que complementem os dados do NWS com os das estações de tempo locais, dando assim informações sobre os microclimas e aumentando a precisão das previsões locais criando lotes, computados para criar um resultado (seja média, modelo estatístico ou algoritmo) e o resultado é o que é mantido.

O mesmo pode ser dito sobre a transações de ações ou modelos financeiros, que trabalham com médias mutantes - cada uma com indicadores específicos e acionadores de ação integrados, com base em parâmetros específicos para limites de conduta aceitáveis do mercado. Para projetar um sistema que usa dados em "tempo real" não é preciso armazenar tudo o que recebe - mas deve aproveitar a memória NVRAM e a memória DRAM para cache e processamento de dados em movimento e então entregar o resultado computado para armazenamento.

 ilustração de chip de memória flash com pistas de circuito brilhantes
3. Limites de latência, flash NAND e configuração de DRAM

A maioria dos limites de latência são definidos devido às demandas da aplicação. Em ambientes comerciais, segundos significam milhões, se não bilhões de dólares. Para previsões do tempo e acompanhamento de furacões, pode significar decidir entre evacuar New Orleans ou Houston.

Os supercomputadores operam com a carga de nível de serviço a priori - seja a latência, recursos de computação, armazenamento ou largura de banda. Muitos empregam computação com reconhecimento de falhas (fail-aware), onde o sistema pode mudar o caminho de fluxos de dados para condições ótimas de latência (com base em clocking 𝛱+Δmax), mudando para modelos de computação assíncronos ou priorizando recursos do computador para proporcionar energia de processamento ou largura de banda suficiente para os trabalhos.

Esteja você trabalhando com estações de trabalho de ponta, servidores iron ou cargas de trabalho científicas ou HPC, grandes computadores e Big Data exigem grandes quantidades de DRAM. Supercomputadores como o Tianhe-2, usam grandes quantidades de RAM combinadas com placas especializadas de aceleração. O modo como a supercomputação refina o hardware e a estrutura de controle é exclusiva do projeto do aplicativo. Frequentemente as tarefas de computação específicas, onde o acesso do disco cria um gargalo enorme com as exigências de RAM, torna o DRAM impraticável, mas são pequenas o suficiente para se adequarem ao flash NAND. Os clusters FPGA também são posteriormente sintonizados para cada carga de trabalho específica para garantir que grandes conjuntos de dados alcancem excelente desempenho se tiverem que usar mídia tradicional para recuperar dados.

As equipes de colaboração entre a Universidade de Utah, o Lawrence Berkeley Lab, a Universidade Southern California e o Argone National Lab apresentaram novos modelos para Sintonia Automatica de Desempenho (ou sintonia automática) como um meio eficaz de fornecer portabilidade de desempenho entre as arquiteturas. Em vez de depender de um compilador que pode oferecer ótimo desempenho em arquiteturas multinúcleo mais recentes, kernels com sintonia automática e aplicações podem automaticamente sinalizarem à CPU, rede e modelo de programação visados.

 trabalhador de TI de capacete com um laptop na frente de uma ilustração de um monitor de alertas (heads-up display - HUD)
4. Múltiplas camadas de segurança contra falhas

A distribuição de energia dentro do data center HPC é cada vez mais desafiadora, especialmente com infraestruturas que são aproveitadas como recursos compartilhados. Seja em infraestruturas dedicadas ou fornecidas como um serviço, os data centers precisam garantir uma operação contínua e reduzir o risco de danificar componentes de hardware frágeis no caso de uma falha ou pico de energia ou mudança na demanda máxima.

Arquitetos usam uma combinação de transformadores de distribuição de perda:

  • Distribuição de energia CC e backups de UPS,
  • Trigeração (criar eletricidade por calor para armazenar em backup)
  • Monitoramento ativo
“Salve e salve com frequência” é o mantra para qualquer aplicação e também é verdadeiro para data centers onde "backup" torna-se o termo operacional.

Hoje muitos data centers operam com uma estrutura RAID de alto nível para assegurar gravações contínuas e quase simultâneas em todos os conjuntos de dados de armazenamento. Além disso, infraestruturas HPC aproveitam uma grande quantidade de NVRAM para dados de cache em processamento, que são transmissões de dados que não extraem estruturas de armazenamento ou informações processadas paralelamente, criando uma utilização temporária em disco (scratch disk-esque usage) para liberar recursos adicionais para computação. O sistema Frontera, mencionado anteriormente, aproveita 50PB da capacidade total de scratch. Usuários com uma largura de banda ou exigências de IOPS muito altas poderão solicitar a alocação de um sistema de arquivos all-NVMe (memória expressa não volátil) com uma capacidade aproximada de 3PB e largura de banda de aproximadamente 1,2TB/s.

Esse backup RAID constante para armazenamento e o cache consistente dos buffers NVMe dependem do total de limites de Entrada/Saída para os controladores no dispositivo e do total de largura de banda disponível ou fornecida para armazenamento/backup remoto.

Muitas infraestruturas HPC também estão eliminando a possibilidade de ocorrerem falhas de hardware com drives rotativos migrando completamente para conjuntos de dados de estado sólido e blocos de armazenamento flash. Essas soluções de armazenamento proporcionam IOPS consistente e têm latências previsíveis que se enquadram nos limites de latência específicos para a aplicação. Muitos supercomputadores também se beneficiam de múltiplas bibliotecas de fita (com capacidade escalável para um exabyte ou mais) para ter um arquivo de dados confiável para cada bit processado e armazenado.

Muitas também estão assegurando que se tudo o mais falhar na corrente, que haja capacitores (P-Cap) para falta de energia (PFail) também chamados de proteção contra perda de energia (PLP) instalados em SSDs e DRAM. P-Caps permitem que os drives (sejam eles independentes ou em um sistema) concluam gravações em andamento, reduzindo assim o total de dados potencialmente perdidos durante uma falha catastrófica.

Concluindo

Novamente, customização é importante para o mundo da supercomputação, mas conhecer suas necessidades é o primeiro passo ao construir um data center e como conseguir o tipo mais consistente de desempenho. Não importa o tamanho do data center, por que não pensar nele como importante ou em termos de um supercomputador quando relacionado a gerar, armazenar ou compartilhar dados? Avaliando esses fatores, os arquitetos podem projetar infraestruturas de alto desempenho prontas para avanços futuros, mesmo com os componentes existentes no mercado.

#KingstonIsWithYou

Artigos relacionados