Noções básicas sobre trabalhos de computação paralela
Os tipos mais comuns de trabalhos de computação paralela que você pode executar em um cluster do HPC Pack são: trabalhos MPI, trabalhos de varredura paramétrica, trabalhos de fluxo de tarefas , trabalhos de SOA (arquitetura orientada a serviço) e trabalhos de descarregamento de cálculo do Microsoft Excel trabalhos. O HPC Pack fornece propriedades de trabalho e tarefa, ferramentas e APIs que ajudam você a definir e enviar vários tipos de trabalhos de computação paralelos.
Neste tópico:
Trabalho de MPI
O MS-MPI, uma implementação da Microsoft de MPI (Interface de Passagem de Mensagens) desenvolvida para Windows, permite que aplicativos MPI sejam executados como tarefas em um cluster HPC.
Uma tarefa MPI é intrinsecamente paralela. Uma tarefa paralela pode usar vários formulários, dependendo do aplicativo e do software que dá suporte a ela. Para um aplicativo MPI, uma tarefa paralela geralmente consiste em um único executável que está sendo executado simultaneamente em vários núcleos, com a comunicação ocorrendo entre os processos.
O diagrama a seguir ilustra uma tarefa paralela:
de comunicação bidirecional
Para uma tarefa que executa um aplicativo MPI, o comando de tarefa deve ser precedido por mpiexec
: portanto, os comandos para tarefas paralelas devem estar no seguinte formato: mpiexec [mpi_options] <myapp.exe> [arguments]
, em que myapp.exe
é o nome do aplicativo a ser executado. O comando mpiexec
usa vários argumentos que permitem controlar o posicionamento do processo de MPI, a afinidade de rede e outros parâmetros de tempo de execução. Para obter mais detalhes sobre esses parâmetros, consulte o de referência de linha de comando do Microsoft HPC Pack.
Nota
Para tarefas paralelas, o Windows HPC Server 2008 inclui um pacote MPI baseado no padrão MPICH2 do Argonne National Laboratory. A implementação do MPI pela Microsoft, chamada MS-MPI, inclui o inicializador mpiexec
, um serviço de MPI para cada nó e um SDK (Software Development Kit) para desenvolvimento de aplicativos de usuário. O Windows HPC Server 2008 também dá suporte a aplicativos que fornecem seus próprios mecanismos de processamento paralelos.
Para obter mais informações sobre o SDK, consulte Microsoft HPC Pack.
Para obter informações sobre como criar um trabalho de tarefa única ou MPI, consulte Definir uma tarefa Básica ou MPI –do Gerenciador de Trabalhos.
Trabalho de varredura paramétrica
Um trabalho de varredura paramétrica consiste em várias instâncias do mesmo aplicativo, geralmente um aplicativo serial, em execução simultânea e com entrada fornecida por um arquivo de entrada e saída direcionada a um arquivo de saída. A entrada e a saída geralmente são um conjunto de arquivos indexados (por exemplo, input1, input2, input3..., output1, output2, output3...) configurados para residir em uma única pasta comum ou em pastas comuns separadas. Não há comunicação ou interdependência entre as tarefas. As tarefas podem ou não ser executadas em paralelo, dependendo dos recursos disponíveis em um cluster quando o trabalho estiver em execução.
O diagrama a seguir ilustra um trabalho de varredura paramétrica:
Para obter informações sobre como criar um trabalho de varredura paramétrica, consulte Definir uma tarefa de varredura paramétrica –do Job Manager.
Trabalho de fluxo de tarefas
Em um trabalho de fluxo de tarefas, um conjunto de tarefas diferentes é executado em uma ordem prescrita, geralmente porque uma tarefa depende do resultado de outra tarefa. Um trabalho pode conter muitas tarefas, algumas das quais são paramétricas, algumas seriais e algumas paralelas. Por exemplo, você pode criar um trabalho de fluxo de tarefas que consiste em MPI e tarefas paramétricas. Você pode estabelecer a ordem na qual as tarefas são executadas definindo dependências entre as tarefas.
O diagrama a seguir ilustra um trabalho de fluxo de tarefas:
trabalho de fluxo de tarefas
A tarefa 1 é executada primeiro. Observe que somente as Tarefas 2 e 3 podem ser executadas em paralelo, porque nenhuma delas depende da outra. A tarefa 4 é executada depois que as Tarefas 2 e 3 foram concluídas.
Para obter informações sobre como criar um trabalho de fluxo de tarefas, consulte Definir dependências de tarefa –do Gerenciador de Trabalhos.
Trabalho soa
A SOA (Arquitetura Orientada ao Serviço) é uma abordagem para criar sistemas distribuídos e flexívelmente acoplados. Em um sistema SOA, funções computacionais distintas são empacotadas como módulos de software chamados serviços . Os serviços podem ser distribuídos em uma rede e acessados por outros aplicativos. Por exemplo, se os aplicativos executarem cálculos paralelos repetidos, os cálculos principais poderão ser empacotados como serviços e implantados em um cluster. Isso permite que os desenvolvedores resolvam problemas paralelos sem reescrever o código de baixo nível e escalar rapidamente os aplicativos. Os aplicativos podem ser executados mais rapidamente distribuindo cálculos principais em vários hosts de serviço (nós de computação). Os usuários finais executam o aplicativo em seus computadores e nós de cluster executam cálculos.
Um aplicativo cliente fornece uma interface para o usuário final acessar a funcionalidade de um ou mais serviços. Os desenvolvedores podem criar aplicativos cliente cluster-SOA para fornecer acesso aos serviços implantados em um cluster do Windows HPC. No back-end, o aplicativo cliente envia um trabalho que contém uma tarefa Service para o cluster, inicia uma sessão com o nó do agente e envia solicitações de serviço e recebe respostas (resultados de cálculo). O agendador de trabalho no nó principal aloca recursos para o trabalho de serviço de acordo com as políticas de agendamento de trabalho. Uma instância da tarefa Service é executada em cada recurso alocado e carrega o serviço SOA. O agendador de trabalho tenta ajustar a alocação de recursos com base no número de solicitações de serviço.
Nota
Se o cliente criou uma sessão durável, o agente armazenará todas as mensagens usando MSMQ. As respostas armazenadas pelo agente podem ser recuperadas pelo cliente a qualquer momento, mesmo após a desconexão intencional ou não intencional.
O diagrama a seguir ilustra como um trabalho SOA é executado no cluster:
Para obter mais informações sobre como criar clientes SOA para um cluster HPC, consulte aplicativos SOA e microsoft HPC Pack.
Nota
Os Serviços HPC para Excel usam a infraestrutura SOA para ajudar a descarregar cálculos do Microsoft Excel em um cluster.
Descarregamento de cálculo do Microsoft Excel
Os Serviços HPC para Excel, incluídos em algumas versões do HPC Pack, dão suporte a vários modelos para descarregar cálculos do Excel em um cluster do HPC Pack. As pastas de trabalho que são adequadas para aceleração de cluster incluem cálculos independentes que podem ser executados em paralelo. Muitas pastas de trabalho complexas e de execução longa são executadas iterativamente, ou seja, elas executam um único cálculo muitas vezes em diferentes conjuntos de dados de entrada. Essas pastas de trabalho podem conter funções complexas do Microsoft Visual Basic for Applications (VBA) ou suplementos XLL intensivos de cálculo. Os Serviços HPC para Excel dão suporte ao descarregamento de pastas de trabalho para o cluster ou ao descarregamento de UDFs para o cluster.
O Microsoft Excel 2010 estende o modelo UDF para o cluster, permitindo que UDFs do Excel 2010 executem em um cluster do Windows HPC. Quando um cluster com suporte está disponível, os usuários podem instruir o Excel 2010 a usar esse cluster selecionando um conector de cluster e especificando o nome do cluster nas opções Advanced da caixa de diálogo opções do Excel. No cluster, as UDFs funcionam muito semelhantes às UDFs tradicionais, exceto que o cálculo é executado por um ou mais servidores. O principal benefício é a paralelização. Se uma pasta de trabalho contiver chamadas para UDFs de execução longa, vários servidores poderão ser usados para avaliar funções simultaneamente. Para serem executados no cluster, as UDFs devem estar contidas em um arquivo XLL com segurança de cluster.
Para obter mais informações, consulte HPC Services para Excel.
Referências adicionais
Para obter informações sobre as propriedades de trabalho e tarefa que você pode usar para definir seus trabalhos de computação paralela, consulte:
noções básicas sobre tipos de tarefa – do Gerenciador de Trabalho
noções básicas sobre trabalhos e tarefas – do Gerenciador de Trabalhos
Para obter informações sobre como criar, enviar e monitorar trabalhos usando o HPC Job Manager, consulte:
criando e enviando trabalhos – do Gerenciador de Trabalhos
gerenciamento de trabalhos e tarefas – do Gerenciador de Trabalhos
Para obter informações sobre como criar, enviar e monitorar trabalhos usando uma janela de prompt de comando ou o HPC PowerShell e para recursos de desenvolvedor, incluindo informações sobre como usar o SDK, o modelo de programação SOA e o descarregamento de cálculo do Excel, consulte artigos adicionais neste conjunto de documentação.