O que é processamento massivamente paralelo?
Massively Parallel Processing (MPP) (processamento massivamente paralelo) é um paradigma de processamento onde centenas ou milhares de nós de processamento trabalham em partes de uma tarefa computacional em paralelo. Cada um desses nós executa instâncias individuais de um sistema operacional. Eles têm seus próprios dispositivos de entrada e saída e não compartilham memória. Eles realizam uma tarefa computacional comum comunicando-se uns com os outros por meio de uma interconexão de alta velocidade.
As organizações que lidam com grandes volumes de dados em constante expansão usam processamento massivamente paralelo para o processamento de dados. Por exemplo, imagine uma seguradora popular com milhões de clientes. À medida que o número de clientes aumenta, os dados dos clientes também aumentam. Mesmo que a empresa use processamento paralelo, pode ocorrer um atraso no processamento dos dados dos clientes. Suponha que um analista de dados esteja executando uma consulta em 100 milhões de linhas de um banco de dados. Se a organização usa um sistema de processamento massivamente paralelo com 1000 nós, cada nó precisa suportar apenas 1/1000 de carga computacional.

Quais são os principais componentes de hardware do processamento massivamente paralelo?
É essencial entender os componentes de hardware de um sistema de processamento massivamente paralelo para entender várias arquiteturas.
Nós de processamento
Os nós de processamento são os blocos de construção básicos do processamento massivamente paralelo. Esses nós são núcleos de processamento simples e homogêneos com uma ou mais unidades de processamento central. Os nós podem ser visualizados como simples PCs de mesa.
Interconexão de alta velocidade
Os nós em um sistema de processamento massivamente paralelo trabalham paralelamente em partes de um único problema de computação. Mesmo que seu processamento seja independente um do outro, eles precisam se comunicar regularmente entre si enquanto tentam resolver um problema comum. Uma conexão de baixa latência e alta largura de banda é necessária entre os nós. Isso é chamado de barramento ou interconexão de alta velocidade. Pode ser uma conexão Ethernet, uma interface de dados distribuídos por fibra ou qualquer método de conexão proprietário.
Gerenciador de bloqueio distribuído (DLM)
Nessas arquiteturas de processamento massivamente paralelo em que a memória externa ou o espaço em disco é compartilhado entre os nós, um gerenciador de bloqueio distribuído (DLM) coordena esse compartilhamento de recursos. O gerenciador de bloqueio distribuído recebe uma solicitação de recursos de vários nós e conecta os nós quando os recursos estão disponíveis. Em alguns sistemas, o gerenciador de bloqueio distribuído garante consistência de dados e recuperação de qualquer nó com falha.
Arquitetura(s) de processamento massivamente paralelo
As arquiteturas de processamento massivamente paralelo pertencem a dois grupos principais, dependendo de como os nós compartilham seus recursos.
Sistemas de disco compartilhado
Cada nó de processamento no sistema de disco compartilhado terá uma ou mais unidades de processamento central (CPUs) e uma memória de acesso aleatório (RAM) independente. Esses nós, no entanto, compartilham um espaço em disco externo para o armazenamento de arquivos. Esses nós de processamento são conectados por um barramento de alta velocidade. A escalabilidade dos sistemas de disco compartilhado depende da largura de banda da interconexão de alta velocidade e das restrições de hardware no gerenciador de bloqueio distribuído.
Quais são as vantagens dos sistemas de disco compartilhado?
Como todos os nós compartilham um único banco de dados externo, o sistema de processamento massivamente paralelo torna-se altamente disponível. Nenhum dado é perdido permanentemente, mesmo que um nó seja danificado. Os sistemas de disco compartilhado são mais diretos, pois não precisam usar um banco de dados distribuído. É fácil adicionar novos nós nos sistemas de disco compartilhado.
Quais são as desvantagens dos sistemas de disco compartilhado?
Como os nós de processamento compartilham um disco comum, a coordenação do acesso aos dados é complexa. O sistema precisa contar com um gerenciador de bloqueio distribuído. Essas comunicações entre os nós ocupam parte da largura de banda da interconexão de alta velocidade. O disco compartilhado precisa de um sistema operacional para controlá-lo. Isso adiciona mais sobrecarga.
Sistemas sem compartilhamento
Uma das arquiteturas mais populares de sistemas de processamento massivamente paralelo é a arquitetura “sem compartilhamento”. Os nós de processamento possuem memória de acesso aleatório independente e disco que armazena os arquivos e bancos de dados necessários. Os dados que precisam ser processados são compartilhados entre os nós usando várias técnicas.
Banco de dados replicado: neste método, cada nó de processamento possui uma cópia completa dos dados. Nesse modelo, o risco de perda de dados é baixo, mesmo que alguns nós falhem. Este modelo tem a sobrecarga do espaço de armazenamento adicional.
Banco de dados distribuído: neste modelo, o banco de dados é particionado em várias fatias. Cada nó de processamento possui uma fatia específica do banco de dados e trabalha nela. Esse método economiza muito armazenamento em disco, pois não há redundância. No entanto, esse método é mais complexo do que um banco de dados replicado. Aqui, muitos dados se movem entre os nós para concluir o processamento. Isso aumentará o tráfego no barramento de interconexão. Esse modelo também pode levar à perda de dados, pois não há redundância.

Quais são as vantagens dos sistemas “sem compartilhamento”?
Os sistemas sem compartilhamento podem ser dimensionados horizontalmente para incluir um grande número de nós. Como os nós de processamento são relativamente independentes uns dos outros, é mais fácil adicionar um novo nó de processamento. Se o banco de dados for somente leitura, os sistemas “sem compartilhamento” funcionarão muito bem. A falha de um nó não afeta os outros nós, pois eles são quase independentes. As chances de corrupção do banco de dados são mínimas no caso de sistemas “sem compartilhamento”.
Quais são as desvantagens dos sistemas “sem compartilhamento”?
Os sistemas “sem compartilhamento” com bancos de dados distribuídos precisam de muita coordenação para completar uma tarefa comum. Cada nó possui fatias do banco de dados. Gerenciar esse banco de dados pode ser muito difícil. Os sistemas sem compartilhamento com o banco de dados replicado não são adequados para aplicativos com grandes requisitos de dados. Se a computação precisar de muitas operações de modificação de dados, como inserção e junção de dados, a arquitetura “sem compartilhamento” pode não ser viável.
Processamento massivamente paralelo (MPP) vs. multiprocessamento simétrico (SMP)
O processamento massivamente paralelo é um sistema fracamente acoplado em que os nós não compartilham memória ou espaço em disco em alguns casos. O processamento massivamente paralelo pode ser pensado como uma matriz de nós de processamento independentes que se comunicam por meio de um barramento de interconexão de alta velocidade.
O multiprocessamento simétrico é um sistema único com vários processadores fortemente acoplados. Esses processadores compartilham o sistema operacional, dispositivos de E/S e memória. Os sistemas de multiprocessamento simétrico geralmente são mais baratos do que o processamento massivamente paralelo, mas o multiprocessamento simétrico é limitado em quanto pode ser dimensionado. Todos os nós de processamento no multiprocessamento simétrico compartilham um único barramento de memória; portanto, à medida que o número de processadores aumenta, podem ocorrer gargalos de memória que podem acabar tornando o sistema mais lento. Os sistemas de processamento massivamente paralelos são caros e complexos, mas podem crescer infinitamente. O processamento massivamente paralelo funciona melhor quando as tarefas de processamento podem ser perfeitamente particionadas e é necessária uma comunicação mínima entre os nós.