O que é MPP (Massively Parallel Processing) ?

Falla Guys,

Quando estamos estudando Big Data, Ciência e/ou Engenharia de Dados, provavelmente já nos deparamos com a sigla MPP. Nos primórdios, o termo Big Data foi originado fazendo referência a grandes volumes de dados, mas principalmente relacionado ao processamento dessa montanha de informação, com o objetivo de entender, analisar e fazer algo com o resultado, afinal, o grande valor do Big Data está no final, no dado processado que será utilizado como variável em alguma decisão sobre determinado assunto.

Bom, sem delongas MPP significa (Massively Parallel Processing), ou seja, Processamento Massivo Paralelo, uma pausa para reflexão  (rsrs)

“O MPP é uma forma de processamento colaborativo do mesmo programa por dois ou mais processadores (CPU). Cada processador lida com diferentes threads do programa, e cada processador possui seu próprio sistema operacional e memória dedicada. Uma interface de mensagens é necessária para permitir que os diferentes processadores envolvidos no MPP organizem o tratamento de segmentos. Às vezes, um aplicativo pode ser manipulado por milhares de processadores trabalhando de forma colaborativa no aplicativo.”

Qual o objetivo disso tudo? Processar mais coisas (volume) no menor tempo possível.

Normalmente uma arquitetura MPP é complexa, exigindo estruturas de particionamento de dados, alocação de recurso entre processadores. Os appliances de Data Warehouse (DW), como Teradata, Netezza ou o PDW da Microsoft, geralmente implementam uma arquitetura MPP para lidar com o processamento de grandes quantidades de dados em paralelo.

Já ouviu falar sobre a Lei de Amdahl? A lei leva o nome de Gene Amdahl, um nome importante na computação, em 1976 ele apresentou sua teoria na AFIPS Conferência conjunta de Informatica, ficou conhecido como o Argumento de Amdahl, utilizado até hoje em arquitetura computacional.

Amdahl visa calcular o SpeedUp (capacidade maxíma) de um programa processando em múltiplos núcleos em paralelo.

Se um programa precisa de 10 horas para processar 100% dos dados, sendo que, 90% do programa pode ser paralelizado e 10% não pode. Sabendo disso, independente de quantos processadores seja alocado para que os 90% execute em paralelo, o tempo de execução não será menor que aquela parte crítica (10%), ou seja, o aumento de CPU e paralelização do processamento dos dados não pode ser considerado exponencial, caso, o sistema tenha mono-processamento.

Então para resumir, MPP é um conceito que algumas tecnologias fazem uso para contuir sua arquitetura computacional. Em Big Data, MPP pode ser visto no Hadoop (por exemplo), atráves do MapReduce, HDFS, Spark, entre outras engine de processamento.

Ficarei feliz se ajudou a clarear as ideias sobre o tema… caso ainda ficou confuso, mande uma mensagem ou comente aqui no post, que vamos conversando até que o tema fique claro para ti. Vaaaleu!

Print (“valeu e até o próximo post”)
Luiz Henrique Garetti

Comente sobre isso: