Computação de alto desempenho

Uma introdução ao Windows Compute Cluster Server

John Kelbley and Doug Lindsey

 

Visão geral:

  • Usando clusters para resolver problemas complexos
  • Requisitos gerais para clusters computacionais
  • Configurando um cluster de computadores baseado no Windows
  • Executando comandos remotamente

O HPC (High Performance Computing) refere-se a uma ramificação de computação aplicada que se concentra, em sua maioria, na solução de problemas intensos de computação. Anos atrás, o HPC (na época mais comumente chamado de "supercomputação") era dominado por

sistemas especializados grandes (e caros) encontrados principalmente em centros de pesquisa. No entanto, conforme o poder computacional dos pequenos sistemas aumentava, a proporção custo/desempenho se alterou e as cargas de trabalho computacionais moveram-se para sistemas da classe de PCs.

Muitos problemas intensos de computação podem ser resolvidos completando cálculos em paralelo; o que significa que um cálculo ou processo específico pode não depender da saída de outro para ser concluído. Nesses casos, problemas grandes podem tirar proveito de vários sistemas menores (nós) agrupados em clusters computacionais. Aqui estão alguns exemplos dos tipos de aplicativos que podem tirar proveito dos clusters computacionais:

  • Modelos financeiros—um algoritmo ou fórmula é executado milhares de vezes, cada uma com entradas diferentes.
  • Engenharia—simular efeitos de partes individuais, aplicar texturas a modelos.
  • Animação computadorizada—aplicar texturas e efeitos de iluminação a cada quadro de um filme.

Os clusters computacionais fornecem uma maneira econômica de resolve problemas complexos em um pequeno período de tempo. Como você verá aqui, a Microsoft fornece funcionalidade e suporte a clusters de computadores principais com o Windows® Compute Cluster Server 2003.

É importante compreender que um cluster computacional é diferente de um cluster de disponibilidade (failover). Talvez você conheça os clusters de disponibilidade do Exchange, SQL Server® ou outros aplicativos no Windows Server® 2003. Eles geralmente aproveitam o armazenamento compartilhado para maximizar o tempo de atividade do aplicativo. A intenção dos clusters computacionais não é retomar o trabalho de outro sistema no caso de uma paralisação, mas permitir a todos os nós o funcionamento de maneira coordenada.

Requisitos gerais para um cluster computacional

Recursos HCP

Os sistemas HPC modernos compartilham alguns elementos principais que facilitam o processamento de cargas de trabalho. Para começar, é necessário mais de um sistema. É necessário também um agendador para coordenar as atribuições de trabalho nos nós. O agendador é executado no nó encarregado (o nó principal) e identifica os recursos disponíveis, atribuindo e distribuindo tarefas e rastreando o status geral dos trabalhos. Ele é o coordenador de recursos dentro do cluster de sistemas, bem como o ponto onde os usuários e administradores enviam trabalhos para processamento.

Os clusters necessitam de meios de comunicação entre nós. Dependendo do tipo de trabalho, os nós podem necessitar de interconexões de alta velocidade e baixa latência para passar mensagens entre eles para coordenar o processamento. Cada nó de computadores e o nó principal devem estar conectados, no mínimo, a uma rede em comum.

Grandes números de sistemas interconectados trabalhando juntos para resolver problemas complexos necessitam também de uma quantidade razoável de cuidado e alimentação. Processos e ferramentas direcionados para provisionamento, monitoramento, gerenciamento e manutenção de dúzias de centenas ou milhares de sistemas devem assegurar um ambiente consistente e estável.

Por fim, e o mais importante, os aplicativos que podem explorar a capacidade de processamento paralelo de um cluster computacional devem estar disponíveis. Sem os aplicativos capazes de dividir os trabalhos para que possam ser processados em vários computadores ou ferramentas de desenvolvimento que incluem suporte a "depuração paralela", um cluster faria pouco mais do que aquecer a sua sala de computadores.

Clustering baseado em servidores do Windows

Em 2006, a Microsoft apresentou o Windows Server 2003 Compute Cluster Edition (CCE) e o Windows Compute Cluster Server 2003 (WCCS) para atender aos requisitos de uma grande variedade de aplicativos HPC. O CCE e o WCCS são baseados no mesmo Windows Server 2003 que você já conhece. O CCE é uma versão do Windows Server 2003 licenciada para uso com aplicativos HPC. O WCCS é idêntico ao CCE com a adição do Microsoft® Compute Cluster Pack (CCP). Isso significa que é possível implantar, gerenciar, monitorar e manter um cluster baseado no Windows Server usando as mesmas ferramentas que você já usa para gerenciar sistemas do Windows Server 2003 existentes.

Um ponto chave a ser observado é que o CCE e o WCCS são somente para x64—não há uma versão 32-bit (x86) desses produtos. Os requisitos de hardware para o CCE com o WCCS são idênticos àqueles do Windows Server 2003 Standard x64 Edition. Além do suporte a hardware de alto desempenho (arquitetura de 64 bits), os produtos incluem suporte a RDMA (Remote Direct Memory Access) para interconexões de alto desempenho (Gigabit Ethernet, InfiniBand, Myrinet entre outras).

Compute Cluster Pack

Conforme mencionado anteriormente, os clusters computacionais têm alguns requisitos básicos que podem ser atendidos por meio da instalação do Compute Cluster Pack. O CCP é um pacote de instalação autônomo que inclui:

  • Agendador de trabalhos integrado
  • Suporte a MPI (Messaging Passing Interface) para o padrão da indústria MPICH2
  • Gerenciamento de recursos de cluster e ferramentas de usuário

O CCP é o diferenciador principal entre o CCE e o WCCS. Você deve estar imaginando o porquê de, se os clusters computacionais necessitam desses componentes, eles estarem incluídos somente no WCCS e não no CCE. A resposta é que algumas soluções aproveitam agendadores de trabalho diferentes ou MPIs especializadas (ou não necessitam de suporte MPI) e simplesmente necessitam de uma grande plataforma para execução—nomeadamente o Windows Server 2003. Como o CCP é um pacote autônomo, é possível instalá-lo em outras versões x64 do Windows Server 2003 (CCE, Standard, Standard R2, Enterprise e Enterprise R2).

Detalhes práticos

O WCCS tira proveito dos conceitos básicos principais do Windows para simplificar o gerenciamento e operação de clusters baseados no Windows, incluindo o Active Directory® e o RIS (Remote Installation Services). O Compute Cluster Server usa o Active Director para gerenciar a segurança de maneira transparente. Com o Active Directory, um usuário pode enviar um trabalho para o nó principal—usando um conjunto único de credenciais—que pode ser executado em centenas de nós de servidor. Quando os trabalhos são executados em um ou mais nós de computadores, eles são executados no contexto das credenciais de usuário fornecidas no envio do trabalho e são armazenados em cache de maneira segura a partir de então. O WCCS recorre ao Active Directory para fornecer essa funcionalidade de “ponto único de logon”. Um benefício adicional à presença do Active Directory no ambiente é que a diretiva de servidor e configuração pode ser administrada de maneira central por meio da Diretiva de Grupo.

Se a sua organização de TI já implantou o Active Directory, é possível economizar um tempo e esforço administrativo significativo criado o seu cluster no domínio existente. Esse é o cenário recomendado.

Se você necessitar implantar um cluster de computadores em um ambiente onde o Active Directory não existe, a prática recomendada é implantar um ou mais controladores de domínio dedicados para hospedar o Active Directory para o cluster. Não é incomum tornar o nó principal um controlador de domínio do Active Directory, uma vez que todos os nós já têm conectividade de rede com o sistema, independente da topologia da rede. No entanto, tornar o nó principal o controlador de domínio não é recomendado para clusters de larga escala devido à carga aumentada no nó principal. As práticas comuns para a implantação e gerenciamento do Active Directory devem ser seguidas (instalação de controladores de domínio redundantes, backups adequados, boas práticas de segurança e assim por diante).

Serviço de Instalação Remota

O WCCS fornece um front-end integrado para a plataforma de implantação de imagem do Microsoft Remote Installation Service . O RIS é usado na implantação de imagens de sistema operacional do nó principal para cada um dos nós computacionais, o que significa que é possível usar o RIS para instalar novos nós de cluster rapidamente. Não é necessário fazê-lo desse modo—o RIS é integrado ao WCCS como uma conveniência. Outras tecnologias de implantação do Windows Server comuns podem também ser usadas, como o Windows Server 2003 ADS (Automated Deployment Services) ou uma instalação manual do Windows Server 2003.

Se você desejar usar o RIS, antes de instalar o CCP no seu nó principal, certifique-se de que você tem ao menos dois discos lógicos definidos. O RIS necessita de um disco separado do sistema operacional para o armazenamento de imagens de servidor. A sua partição RIS deve ter espaço livro suficiente para abrigar uma ou mais cópias completas de uma imagem do Windows Server.

Hardwares de servidor mais recentes, em especial engrenagens de rede e armazenamento, podem necessitar de drivers Plug and Play não contidos nas imagens do Window Server 2003 padrão. Nesse caso, será necessário adicionar esses drivers à imagem manualmente. O procedimento para isso está documentado online em support.microsoft.com/kb/254078.

Instalando o seu cluster

A primeira etapa é configurar o cérebro do seu cluster—o nó principal. Comece instalando uma das versões x64 do Windows Server 2003 comentadas anteriormente. Durante a instalação do sistema operacional, escolha se desejar adicionar o servidor a um domínio existente (recomendado) ou instalar o Active Directory no servidor (não recomendado para clusters de larga escala).

Depois de instalar o sistema operacional, certifique-se de ter baixado e instalado todas as correções recomendadas do Microsoft Update. Se você planeja usar o RIS para a geração de nós de computação, será necessário usar a ferramenta administrativa Gerenciamento do Computador | Gerenciamento de Disco para certificar-se de que você tem ao menos dois discos lógicos definidos. Por uma questão de espaço, não abordaremos a instalação baseada no RIS neste artigo.

Depois de fazer o login e a atualização do seu servidor com êxito, você executará o programa de configuração do CCP. A configuração do CCP instalará ou guiará você por meio do download e instalação dos seguintes arquivos obrigatórios e atualizações:

O programa de configuração do CCP realiza um ótimo trabalho de avaliação da prontidão do seu sistema para a instalação. Ele informará a você quais componentes são necessários e instalados como parte do processo e instalá-los, conforme mostrado na Figura 1.

Figura 1 Componentes necessários para a instalação do CCP

Figura 1** Componentes necessários para a instalação do CCP **(Clique na imagem para aumentar a exibição)

A lista de tarefas

Quando a configuração do CCP estiver concluída, ele iniciará o console do administrador, concentrado na Lista de tarefas. Como mostra a Figura 2, a Lista de tarefas contém vários painéis, cada um tratando de uma área diferente e listando as tarefas principais para concluir a configuração do cluster.

Figura 2 A Lista de tarefas mostra o que é necessário para configurar o seu cluster

Figura 2** A Lista de tarefas mostra o que é necessário para configurar o seu cluster **(Clique na imagem para aumentar a exibição)

A Lista de tarefas permite a implementação de maneira fácil da arquitetura de cluster definida, incluindo a seleção da topologia da rede, processo de instalação de nós e modelo de gerenciamento de usuários. As tarefas de cada um desses painéis está listada no lado direito e cada tarefa inicia um assistente. Conclua cada tarefa em seqüência para um nó principal totalmente configurado que está pronto para implantar imagens RIS em um conjunto conhecido de nós de computadores e que pode ser administrado e acessado por um conjunto definido de usuários.

Topologia do sistema de rede O WCCS oferece suporte às cinco topologias de rede mais comuns usadas em HPC. Todos os nós de computadores e o nó principal devem compartilhar, no mínimo, uma rede em comum. As topologias incluem suporte a vários tipos de interconexões entre os nós e têm benefícios e custos separados.

A sua topologia de rede dependerá do desempenho, segurança e requisitos de implantação do seu cluster. Por exemplo, o seu aplicativo pode necessitar de uma interconexão de alta velocidade para a passagem de mensagens que você não deseja expor à sua rede corporativa. Talvez você deseje tirar proveito das capacidades de implantação automatizadas integradas e baseadas em RIS. Talvez o hardware escolhido possa acomodar somente uma única NIC ou, provavelmente, você deseja que o nó principal execute o ICS (Compartilhamento de Conexão com a Internet) para gerenciar a resolução e endereçamento de nome dos nós de computadores. O assistente "Configuração de topologia de rede de cluster" invocado da Lista de tarefas apresentará cinco topologias que geralmente têm suporte de implementações HPC comuns, bem como ajudará você a configurar as suas conexões de rede, incluindo as configurações do Windows Firewall no nó principal e nós de computadores. A Figura 3 mostra uma das topologias de rede com suporte.

Figura 3 Uma das topologias de rede com suporte WCCS

Figura 3** Uma das topologias de rede com suporte WCCS **(Clique na imagem para aumentar a exibição)

Serviço de Instalação Remota Conforme observado anteriormente, o RIS permite a implantação automatizada de nós de cluster.

Gerenciamento de nós Você tem a capacidade de especificar os nomes das máquinas dos servidores que serão nós de computadores nesse cluster. Quando o CCP é executado em um nó, o nó principal do cluster ao qual o nó se juntará será especificado nesse momento.

Gerenciamento de usuários É possível especificar aqui quais contas ou grupos de usuários do Active Directory serão designados como administradores de sistema e quais serão designados como usuários do cluster.

Instalação de nó

A implantação de nós de computadores pode ser concluída automaticamente por meio do utilitário de administração do RIS ou usando outros métodos de implantação com suporte. Assim como o nó principal, o CCP deve ser instalado em um nó de computadores. Como mostra a Figura 4, as opções de configuração de instalação do CCP são muito mais simples para um nó de computação e consistem no seguinte:

Figura 4 Configuração do Compute Cluster Pack

Figura 4** Configuração do Compute Cluster Pack **(Clique na imagem para aumentar a exibição)

  • Especificar se o servidor será um nó de computadores (e não um nó principal).
  • Especificar o nome do nó principal do cluster ao qual o servidor se juntará.
  • Especificar se deve ou não instalar as ferramentas administrativas e de usuário no nó de computadores.

Console do Administrador

Depois que os nós estiverem em comunicação com o seu nó principal, a maior parte das tarefas de gerenciamento e administração de todos os sistemas podem ser realizadas por meio do console do administrador, mostrado na Figura 5. O console fornece uma visão central do cluster inteiro incluindo uma lista de todos os nós associados, acesso às ações administrativas principais e outros detalhes. O painel à extrema esquerda fornece uma navegação de alto nível pelo console, incluindo acesso ao "Administrador de Cluster" que, ao ser destacado, fornece uma tela de resumo mostrando o status do cluster e estatísticas do trabalho. O acesso a todas as áreas de trabalho remotas e sessões de monitoramento do sistema podem ser acessadas a partir daqui também, mas a maior parte do tempo que você passar administrando o cluster será usando o "Gerenciamento de nós".

Figura 5 O console do administrador fornece uma visão do cluster inteiro

Figura 5** O console do administrador fornece uma visão do cluster inteiro **(Clique na imagem para aumentar a exibição)

Você deve explorar o console do administrador por conta própria, pois ele fornece acesso às ferramentas e funções principais necessárias para administrar de maneira central o Windows e nós de cluster. Clicar uma vez em um nó de cluster no painel superior central populará várias das outras janelas, e será possível explorar funções específicas de nós.

As funções com suporte de menus acessados com o botão direito do mouse permitem a administração fácil dos nós de computadores de maneira central do Gerenciamento de Nós. É possível usar o Gerenciamento de Nós para pausar e retomar nós; aprovar ou remover nós para e do cluster; iniciar áreas de trabalho remotas, monitores de sistema ou visualizadores de eventos; ou fazer com que a bandeja do CD ejete (o que pode ser útil quando você estiver tentando identificar fisicamente uma única máquina em um cluster grande).

ClusRun legal

O recurso mais interessante dessa lista é o "Executar comando"—ou seja, a capacidade de executar qualquer comando arbitrário remotamente, como se estivesse em um prompt de comando na máquina de destino. O WCCS inclui uma versão de linha de comando do recurso de Executar comando chamada Clusrun.exe e "ClusRun" é usado para descreve as versões GUI e de linha de comando.

Os benefícios do utilitário do ClusRun não podem ser enfatizados demais—especialmente em um cluster grande. É uma grande economia de tempo para a execução de tarefas de linha de comando repetitivas e pode muitas vezes eliminar a necessidade de escrever scripts administrativos mais complexos.

Para usar esse recurso, destaque uma lista das máquinas nas quais você deseja executar o comando, clique com o botão direito do mouse e selecione Executar comando. A caixa de diálogo na Figura 6 é exibida. Agora basta digitar o comando desejado, clicar em Executar e esperar que a saída seja exibida na janela Result. As suas credenciais serão solicitadas na primeira vez em que você usar o ClusRun, mas você pode optar por ter essas credenciais armazenadas em cache para uso subseqüente.

Figura 6 É possível executar um comando em vários nós

Figura 6** É possível executar um comando em vários nós **(Clique na imagem para aumentar a exibição)

Uma forma comum de corrigir clusters ou instalar programas que incluem rotinas de configuração automatizadas é colocá-las em um compartilhamento de arquivos e usar o ClusRun para forçar todos os nós de computadores a invocar o comando. A reinicialização de todos os nós de computadores no cluster inteiro pode ser realizada a partir de um único comando:

CLUSRUN SHUTDOWN –R –F –T 0 

Pacote de ferramentas

Em maio de 2007, a equipe de HPC lançou o Pacote de ferramentas do Compute Cluster Pack (é possível obtê-lo online em windowshpc.net/resources/Pages/default.aspx). O pacote de ferramentas inclui suporte para o Windows PowerShellTM, uma ferramenta MPIPingPong para diagnóstico da integridade da conectividade e um monitor de cluster gráfico simples porém útil.

Como mostra a Figura 7, o Simple Cluster Monitor pode mostrar a você em uma tela cada nó no cluster, quantos núcleos cada nó tem, a utilização de cada CPU (em verde brilhante), utilização de memória (amarelo), porcentagem de tempo de disco (vermelho) e utilização de largura de banda de rede (laranja). É uma ferramenta rápida que os administradores podem executar para examinar como vai o cluster.

Figura 7 Monitorando vários nós com o Simple Cluster Monitor

Figura 7** Monitorando vários nós com o Simple Cluster Monitor **(Clique na imagem para aumentar a exibição)

O monitor de cluster também inclui uma funcionalidade "remoteável". Você deve executar a primeira instância do monitor de cluster no nó principal. No entanto, se você executar uma instância do monitor de cluster em uma sessão do console no nó principal, terá a oportunidade de iniciar instâncias do monitor de cluster a partir de uma estação de trabalho, aponta-las para o nó principal e obter a mesma exibição.

O que você está esperando?

Você está agora armado com uma compreensão do HCO e do Windows Server 2003 Compute Cluster Server. Você sabe como instalar o CCP, examinou o ótimo console multifuncional e tem agora novas ferramentas de comando e gráficas com as quais deslumbrar os seus colegas e usuários. Você encontrará fontes para obter mais informações sobre Computação de Alto Desempenho na barra lateral “HPC Resources”.

John Kelbley é Gerente técnico de produto da Microsoft na Equipe de Tecnologia de Soluções Globais, no nordeste dos EUA. Entre em contato com ele pelo email Johnkel@microsoft.com

Doug Lindsey é Gerente de programa da Equipe do Microsoft HPC. Ele é também administrador de clusters de computadores de produção (incluindo o #116 na lista de novembro de 2007 em www.top500.org). Entre em contato com ele pelo email Dougli@microsoft.com.

© 2008 Microsoft Corporation e CMP Media, LLC. Todos os direitos reservados. A reprodução parcial ou completa sem autorização é proibida..