Computação em GRID (português europeu), computação em grade/grid (português brasileiro), ou ainda, grade de cálculo (em inglês, grid computing), é um modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância, que formam uma máquina virtual. Esses processos podem ser executados no momento em que as máquinas não estão sendo utilizadas pelo usuário, assim evitando o desperdício de processamento da máquina utilizada.
Na base da atual computação em grade estão os aglomerado de computadores ou computadores localizados em diferentes centros de cálculo, ligados entre si por uma rede de alto débito (Largura de Banda), em Rede Privada Virtual - (VPN) por questões de segurança.
Concentra-se principalmente no "compartilhamento de recursos entre sites distribuídos geograficamente e no desenvolvimento de aplicações inovadoras e de alto desempenho". A partir da metade da década passada, quando os primeiros projetos de grid foram realizados, a computação em grade avançou bastante, por exemplo, computação em grade, padrões e definições, infra estruturas de grade, virtualização, middleware e aplicações inovadoras. Portanto, é um momento apropriado para concluir esses resultados de pesquisa e analisar a próxima etapa da computação em grade, que enfrenta mais problemas como o gerenciamento de dados em petascale, a oferta de ambiente de computação orientada por Qos, a infraestrutura eletrônica global e os avanços nas tecnologias de virtualização.
A computação em grade é diferenciada dos sistemas de computação convencionais de alto desempenho, como a computação em cluster, uma vez que os computadores em grade têm em cada nó, uma configuração para executar uma tarefa/aplicativo. Os computadores de grade também tendem a ser mais heterogêneos e geograficamente dispersos (portanto, não fisicamente acoplados) do que os computadores em cluster. Embora uma única grade possa ser dedicada a uma aplicação específica, geralmente uma grade é usada para uma variedade de propósitos. As grades geralmente são construídas com bibliotecas de software de middleware de grade de uso geral.Tamanhos de grade podem ser bem grandes.
As grades são uma forma de computação distribuída em que um "supercomputador virtual" é composto de muitos computadores fracamente acoplados conectados em rede agindo em conjunto para realizar grandes tarefas.
Para certas aplicações, a computação distribuída ou em grade pode ser vista como um tipo especial de computação paralela que depende de computadores completos (com CPUs, armazenamento, fontes de alimentação, interfaces de rede, etc.) conectados a uma rede de computadores (privada ou pública). uma interface de rede convencional, como a Ethernet .
Uma grade de computação (ou "grade computacional") fornece uma plataforma na qual os recursos computacionais são organizados em um ou mais pools lógicos. Esses pools são coordenados coletivamente para fornecer uma grade distribuída de alto desempenho.
Visão geral A computação em grade combina computadores de vários domínios administrativos para alcançar um objetivo comum, para resolver uma única tarefa e pode, então, desaparecer com a mesma rapidez.
O tamanho de uma grade pode variar de pequena - confinada a uma rede de estações de trabalho de computador dentro de uma corporação, por exemplo - para colaborações públicas grandes em muitas empresas e redes. "A noção de uma rede confinada também pode ser conhecida como uma cooperação intra-nós, enquanto a noção de uma grade maior e mais ampla pode, portanto, referir-se a uma cooperação entre nós".
As grades são uma forma de computação distribuída na qual um “supercomputador virtual” é composto de muitos computadores fracamente acoplados conectados em rede agindo em conjunto para executar tarefas muito grandes. Essa tecnologia tem sido aplicada a problemas científicos, matemáticos e acadêmicos computacionalmente intensivos por meio da computação voluntária e é usada em empresas comerciais para diversas aplicações, como descoberta de medicamentos, previsão econômica, análise sísmica e processamento de dados de back office em suporte a e-commerces e serviços da Web.
A coordenação de aplicativos em Grids pode ser uma tarefa complexa, especialmente ao coordenar o fluxo de informações entre recursos de computação distribuídos. Os sistemas de fluxo de trabalho de grade foram desenvolvidos como uma forma especializada de um sistema de gerenciamento de fluxo de trabalho projetado especificamente para compor e executar uma série de etapas computacionais ou de manipulação de dados, ou um fluxo de trabalho, no contexto da grade.
Comparação de grades e Super computadores convencionais Computação “distribuída” ou “grid” em geral é um tipo especial de computação paralela que depende de computadores completos (com CPUs, armazenamento, fontes de alimentação, interfaces de rede, etc.) conectados a uma rede (privada, pública ou Internet ). por uma interface de rede convencional produzindo hardware de commodity, em comparação com a menor eficiência de projetar e construir um pequeno número de supercomputadores personalizados. A principal desvantagem do desempenho é que os vários processadores e áreas de armazenamento locais não possuem conexões de alta velocidade. Esse arranjo é, portanto, adequado para aplicações nas quais múltiplos cálculos paralelos podem ocorrer independentemente, sem a necessidade de comunicar resultados intermediários entre processadores. A escalabilidade das redes geograficamente dispersas é geralmente favorável, devido à baixa necessidade de conectividade entre nós em relação à capacidade da Internet pública. [ citação necessário ]
Existem também algumas diferenças em programação e MC. Pode ser dispendioso e difícil escrever programas que possam ser executados no ambiente de um supercomputador, que pode ter um sistema operacional personalizado, ou exigir que o programa resolva problemas de simultaneidade . Se um problema puder ser paralelizado adequadamente, uma camada “fina” de infraestrutura de “grade” pode permitir que programas convencionais, independentes, considerando uma parte diferente do mesmo problema, sejam executados em várias máquinas. Isso torna possível escrever e depurar em uma única máquina convencional e elimina complicações devido a várias instâncias do mesmo programa em execução na mesma memória compartilhada e espaço de armazenamento ao mesmo tempo.
Considerações e variações de design Um recurso das grades distribuídas é que elas podem ser formadas a partir de recursos computacionais pertencentes a um ou mais indivíduos ou organizações (conhecidos como vários domínios administrativos ). Isso pode facilitar as transações comerciais, como na computação utilitária , ou facilitar a montagem de redes de computação voluntárias .
Uma desvantagem desse recurso é que os computadores que estão realmente realizando os cálculos podem não ser totalmente confiáveis. Os projetistas do sistema devem, portanto, introduzir medidas para evitar que maus funcionamentos ou participantes mal-intencionados produzam resultados falsos, enganosos ou errôneos, além de usar o sistema como um vetor de ataque. Isso geralmente envolve a atribuição aleatória de trabalho a nós diferentes (presumivelmente com proprietários diferentes) e a verificação de que pelo menos dois nós diferentes relatam a mesma resposta para uma determinada unidade de trabalho. Discrepâncias identificariam nós mal-funcionais e maliciosos. No entanto, devido à falta de controle central sobre o hardware, não há como garantir que os nós não caiam fora da rede em momentos aleatórios. Alguns nós (como laptops ou clientes de Internet dial-up ) também podem estar disponíveis para computação, mas não para comunicações de rede por períodos imprevisíveis. Essas variações podem ser acomodadas pela atribuição de grandes unidades de trabalho (reduzindo assim a necessidade de conectividade de rede contínua) e pela reatribuição de unidades de trabalho quando um determinado nó falha ao relatar seus resultados no tempo esperado.
Outro conjunto do que poderia ser chamado de problemas de compatibilidade social nos primórdios da computação em grade relacionado aos objetivos dos desenvolvedores de grade de levar sua inovação para além do campo original da computação de alto desempenho e através de fronteiras disciplinares em novos campos, como o de alta física energética.
Os impactos da confiança e da disponibilidade no desempenho e na dificuldade de desenvolvimento podem influenciar a escolha de implantar em um cluster dedicado, em máquinas ociosas internas à organização em desenvolvimento ou em uma rede externa aberta de voluntários ou contratados. Em muitos casos, os nós participantes devem confiar no sistema central para não abusar do acesso que está sendo concedido, interferindo na operação de outros programas, desconfigurando informações armazenadas, transmitindo dados privados ou criando novas falhas de segurança. Outros sistemas empregam medidas para reduzir a quantidade de confiança que os nós "clientes" devem colocar no sistema central, como colocar aplicativos em máquinas virtuais.
Sistemas públicos ou aqueles que atravessam domínios administrativos (incluindo diferentes departamentos na mesma organização) geralmente resultam na necessidade de executar sistemas heterogêneos, usando diferentes sistemas operacionais e arquiteturas de hardware. Com muitas linguagens, existe um trade-off entre o investimento em desenvolvimento de software e o número de plataformas que podem ser suportadas (e, portanto, o tamanho da rede resultante). Linguagens multiplataformas podem reduzir a necessidade de fazer essa troca, embora potencialmente à custa de alto desempenho em qualquer nó (devido à interpretação em tempo de execução ou falta de otimização para a plataforma específica). Vários projetos de middleware criaram infraestrutura genérica para permitir que diversos projetos científicos e comerciais aproveitem uma grade associada específica ou para a finalidade de configurar novas grades. O BOINC é comum para vários projetos acadêmicos que buscam voluntários públicos; mais estão listados no final do artigo .
Na verdade, o middleware pode ser visto como uma camada entre o hardware e o software. No topo do middleware, várias áreas técnicas devem ser consideradas, e estas podem ou não ser middleware independentes. As áreas de exemplo incluem gerenciamento de SLA , confiança e segurança, gerenciamento de organização virtual, gerenciamento de licenças, portais e gerenciamento de dados. Essas áreas técnicas podem ser atendidas em uma solução comercial, embora a ponta de cada área seja freqüentemente encontrada em projetos específicos de pesquisa que examinam o campo.
Segmentação de mercado do mercado de grid computing Para a segmentação do mercado de computação em grade, duas perspectivas precisam ser consideradas: o lado do provedor e o lado do usuário:
O lado do fornecedor O mercado global de grade compreende vários mercados específicos. Esses são o mercado de middleware de grade, o mercado de aplicativos habilitados para grade, o mercado de computação de utilitários e o mercado de software como serviço (SaaS).
O middleware de grade é um produto de software específico, que permite o compartilhamento de recursos heterogêneos e organizações virtuais. Ele é instalado e integrado à infraestrutura existente da empresa ou empresas envolvidas e fornece uma camada especial colocada entre a infraestrutura heterogênea e as aplicações específicas do usuário. Os principais middlewares de grid são Globus Toolkit , gLite e UNICORE .