O que é computação paralela?

Grupo de empresários trabalhando, a equipe está sentada em uma mesa da sala de reuniões olhando para um notebook

O que é computação paralela?

A computação paralela, também conhecida como programação paralela, é um processo em que grandes problemas de computação são divididos em problemas menores que podem ser resolvidos simultaneamente por vários processadores.

Os processadores se comunicam usando memória compartilhada , e suas soluções são combinadas usando um algoritmo. A computação paralela é significativamente mais rápida do que a computação serial (também conhecida como computação serial), sua antecessora, que usa um único processador para resolver problemas em sequência.

Quando os computadores foram inventados pela primeira vez no final dos anos 1940 e 1950, o software foi programado para resolver problemas em sequência, o que restringia a velocidade de processamento. Para resolver problemas mais rapidamente, algoritmos precisaram ser criados e implementados seguindo um conjunto de instruções em uma unidade de processamento central (CPU). Somente depois que uma instrução tiver sido executada, outra poderá ser resolvida.

A partir da década de 1950, a computação paralela permitiu que os computadores executassem códigos de forma mais rápida e eficiente, dividindo problemas de computação em problemas menores e semelhantes. Esses problemas, conhecidos como algoritmos paralelos, eram então distribuídos em vários processadores.

Atualmente, os sistemas paralelos evoluíram a ponto de serem usados em vários computadores, tornando tarefas cotidianas, como verificar e-mails ou enviar uma mensagem de texto, centenas de vezes mais rápidas do que se fossem executadas usando computação serial. Além de alimentar dispositivos pessoais como notebooks e smartphones, sistemas paralelos também alimentam os supercomputadores mais avançados e tecnologias de ponta, como inteligência artificial (IA) e a Internet das Coisas (IoT).

Computação serial versus computação paralela

A computação serial, também conhecida como computação sequencial , é um tipo de computação em que as instruções para resolver problemas de computação são seguidas uma de cada vez ou sequencialmente. Os fundamentos da computação serial exigem que os sistemas usem apenas um processador em vez de distribuir problemas por vários processadores.

Com a evolução da ciência da computação, a computação paralela foi introduzida porque a computação serial tinha velocidades lentas. Os sistemas operacionais que usam programação paralela permitem que os computadores executem processos e realizem cálculos simultaneamente, uma técnica conhecida como processamento paralelo.

Processamento paralelo versus computação paralela

Processamento paralelo e computação paralela são termos muito semelhantes, mas vale a pena observar algumas diferenças. O processamento paralelo, ou paralelismo, separa uma tarefa de tempo de execução em partes menores a serem executadas de forma independente e simultânea usando mais de um processador. Normalmente, é necessária uma rede de computadores ou um computador com mais de um processador para remontar os dados depois que as equações tiverem sido resolvidas em vários processadores.

Embora o processamento paralelo e a computação paralela sejam às vezes usados de forma intercambiável, o processamento paralelo refere-se ao número de núcleos e CPUs em execução junto com um computador, enquanto a computação paralela se refere ao que o software faz para facilitar o processo.

As mais recentes notícias de tecnologia, corroboradas por insights de especialistas.

Mantenha-se atualizado sobre as tendências mais importantes (e intrigantes) do setor em IA, automação, dados e muito mais com o boletim informativo Think. Consulte a Declaração de privacidade da IBM.

Agradecemos sua inscrição!

Sua assinatura será entregue em inglês. Você pode encontrar um link para cancelar a assinatura em todos os boletins informativos. Você pode gerenciar suas inscrições ou cancelar a inscrição aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

Por que a computação paralela é importante?

A velocidade e a eficiência da computação paralela potencializam alguns dos avanços tecnológicos mais importantes do último meio século, incluindo smartphones, computação de alto desempenho (HPC), IA e aprendizado de máquina (ML). Ao permitir que os computadores resolvam problemas mais complexos com mais rapidez e menos recursos, a computação paralela também é um fator crucial da transformação digital para muitas empresas.

História e desenvolvimento

O interesse na computação paralela começou quando programadores de computador e fabricantes começaram a procurar maneiras de construir processadores mais eficientes em termos de energia. Nas décadas de 1950, 1960 e 1970, líderes de ciência e engenharia construíram computadores que usavam espaço de memória compartilhada e executam operações paralelas em conjuntos de dados pela primeira vez.

Esses esforços culminaram no inovador projeto Caltech Concurrent Computation, que introduziu um novo tipo de computação paralela na década de 1980 usando 64 processadores Intel.

Na década de 1990, o supercomputador ASCI Red, utilizando processadores maciçamente paralelos (MPPs), alcançou um trilhão de operações por segundo sem precedentes, inaugurando uma era de domínio do MPP no Power da computação.1 Ao mesmo tempo, os clusters — um tipo de computação paralela que vincula clusters de computadores ou "nós" em uma rede comercial — foram introduzidos no mercado, eventualmente substituindo os MPPs em muitas aplicações. 

A computação paralela, em particular, processadores multi-core e unidades de processamento gráfico (GPUs), continua sendo uma parte crítica da ciência da computação hoje. As GPUs são frequentemente implementadas simultaneamente com CPUs para expandir a taxa de transferência de dados e executar mais cálculos de uma só vez, acelerando muitas aplicações de negócios modernas.

Computação de alto desempenho

Processadores escaláveis Intel® Xeon® de 4ª geração na IBM Cloud

Saiba mais sobre o compromisso da Intel e da IBM com a última geração de microarquitetura para a setor de nuvem.

Benefícios empresariais da computação paralela

1. Redução de custos

Antes da computação paralela, a computação serial forçava processadores únicos a resolver problemas complexos, um passo de cada vez, adicionando minutos e horas a tarefas que a computação paralela poderia realizar em poucos segundos. Por exemplo, os primeiros iPhones usava  computação serial e podiam levar um minuto para abrir um aplicativo ou e-mail. Hoje, a computação paralela, usada pela primeira vez em iPhones em 2011, acelera significativamente essas tarefas.

2. Solução de problemas complexos

Conforme a computação amadurece e enfrenta problemas mais complexos, os sistemas precisam executar milhares, até milhões, de tarefas em um instante. Os modelos de ML de hoje dependem fortemente da computação paralela, usando algoritmos altamente complexos implementados em vários processadores. Usando a computação serial, as tarefas de ML levariam muito mais tempo devido aos gargalos causados pela capacidade de realizar apenas um cálculo por vez em um único processador.

3. Análise de dados mais rápida

A computação paralela e o processamento paralelo potencializam o processamento de números em grandes conjuntos de dados, possibilitando consultas interativas por trás da análise de dados. Com mais de um quintilhão de bytes de informações gerados todos os dias, as empresas enfrentam dificuldades para filtrar informações digitais em busca de insights relevantes e úteis. O processamento paralelo implementa computadores com muitos núcleos em uma estrutura de dados e filtra os dados muito mais rápido do que um computador serial poderia.

4. Maior eficiência

Munidos de computação paralela, os computadores podem usar os recursos de maneira muito mais eficiente do que seus equivalentes de computação serial. Os sistemas de computador mais avançados da atualidade implementam vários núcleos e processadores, o que permite que eles executem vários programas ao mesmo tempo e realizem mais tarefas simultaneamente.

Como funciona a computação paralela?

A computação paralela se refere a muitos tipos de dispositivos e arquiteturas de computador, desde supercomputadores até o smartphone em seu bolso. Em sua forma mais complexa, a computação paralela usa centenas de milhares de núcleos para lidar com problemas como encontrar um novo medicamento contra o câncer ou ajudar na busca por inteligência extraterrestre (SETI). Em sua forma mais simples, a computação paralela ajuda você a enviar um e-mail do seu telefone mais rápido do que se você usasse um sistema de computação serial. 

Em termos gerais, três arquiteturas exclusivas são usadas na computação paralela: memória compartilhada, memória de computação distribuída e memória híbrida. Cada arquitetura opera em sua própria interface de passagem de mensagens (MPI), um padrão para todas as arquiteturas de computação paralela. A MPI descreve protocolos para programas de transmissão de mensagens em linguagens de programação, como C++ e Fortran. A MPI de código aberto tem sido fundamental para o desenvolvimento de novas aplicações e software que dependem de recursos de computação paralela .

Diferentes arquiteturas de computação paralela

Memória compartilhada

A arquitetura de memória compartilhada é usada em aplicações comuns e diárias de computação paralela, como notebooks ou smartphones. Em uma arquitetura de memória compartilhada, computadores paralelos dependem de vários processadores para entrar em contato com o mesmo recurso de memória compartilhada.

Memória distribuída

A memória distribuída é usada em arquiteturas de computação em nuvem, tornando-a comum em muitas aplicações corporativas. Em um sistema distribuído para computação paralela, vários processadores com seus próprios recursos de memória são vinculados por uma rede.

Memória híbrida

Os supercomputadores atuais dependem de arquiteturas de memória híbrida, um sistema de computação paralela que combina computadores de memória compartilhada em redes de memória distribuída. As CPUs conectadas em um ambiente de memória híbrida podem acessar a memória compartilhada e as tarefas atribuídas a outras unidades na mesma rede.

Arquiteturas especializadas

Além das três arquiteturas principais, outras arquiteturas de computação paralela menos comuns são projetadas para lidar com problemas maiores ou tarefas altamente especializadas. Isso inclui processadores vetoriais (para matrizes de dados chamadas "vetores") e processadores para computação de uso geral em unidades de processamento gráfico (GPGCUs). Uma delas, o CUDA, uma interface de programação de aplicativos (API) proprietária da GPGCU desenvolvida pela Nvidia, é crítico para o deep learning (DL), a tecnologia que sustenta a maioria das aplicações de IA.

Tipos de computação paralela

Existem quatro tipos de computação paralela, cada um com seus propósitos específicos:

1. Paralelismo em nível de bit

O paralelismo em nível de bit depende de uma técnica em que o tamanho da palavra do processador é aumentado e o número de instruções que o processador deve executar para resolver um problema é diminuído. Até 1986, a arquitetura de computadores avançou aumentando o paralelismo em nível de bit de processadores de 4 bits para 8 bits, 16 bits, 32 bits e 64 bits, com cada geração superando a última. Talvez o exemplo mais famoso de um avanço no paralelismo de bits tenha sido o Nintendo 64, a primeira vez que uma aplicação convencional usou 64 bits.

2. Paralelismo em nível de instrução

O paralelismo em nível de instrução (ILP) é um tipo de computação paralela em que o processador escolhe quais instruções será executada. Em ILP, os processadores são construídos para executar determinadas operações simultaneamente para melhorar a otimização de recursos e aumentar o rendimento.

3. Paralelismo de tarefas

Paralelismo de tarefas é um tipo de computação paralela que paraleliza o código em vários processadores que executam tarefas simultaneamente nos mesmos dados. O paralelismo de tarefas é utilizado para reduzir o tempo de série executando tarefas simultaneamente; em pipeline, por exemplo, onde uma série de tarefas é executada em um único conjunto de dados.

4. Paralelismo em nível de superpalavra

Mais avançado que o ILP, o paralelismo em nível de superpalavra  (SLP) é uma tática de vetorização usada em código sequencial. A vetorização é um processo de computação paralela usado para concluir várias tarefas semelhantes de uma só vez, economizando tempo e recursos. O SLP é usado para identificar instruções escalares redundantes em um bloco de código e combiná-las em uma única operação de superpalavra.

Casos de uso de computação paralela

De blockchains a smartphones, consoles de jogos e chatbots, a computação paralela é uma parte essencial de muitas das Tecnologias que impulsionam nosso mundo. Aqui estão alguns exemplos:

Smartphones

Muitos smartphones dependem do processamento paralelo para realizar suas tarefas de forma mais rápida e eficiente. Por exemplo, o iPhone 14 tem uma CPU de 6 núcleos e uma GPU de 5 núcleos que potencializam sua capacidade líder de mercado de executar 17 trilhões de tarefas por segundo, um nível impensável de desempenho usando computação serial.

Blockchains

A tecnologia blockchain, a tecnologia que sustenta as criptomoedas, máquinas de votação, saúde e muitas outras aplicações avançadas de tecnologia digital, depende da computação paralela para conectar vários computadores e validar transações e entradas. A computação paralela permite que transações em uma blockchain sejam processadas simultaneamente, em vez de uma de cada vez, aumentando o rendimento e tornando-a altamente escalável e eficiente.

Notebooks

Os notebooks mais poderosos da atualidade (MacBooks, ChromeBooks e ThinkPads) usam chips com vários núcleos de processamento, uma base do paralelismo. Exemplos de processadores multicore incluem o Intel Core i5 e o HP Z8, que permitem aos usuários editar vídeo em tempo real, executar gráficos 3D e executar outras tarefas complexas que consomem muitos recursos.

Internet das coisas

A Internet das Coisas (IoT) depende de dados coletados de sensores, que estão conectados à Internet. Depois que os dados são coletados, a computação paralela é necessária para analisá-los em busca de insights e auxiliar no funcionamento de sistemas complexos, como usinas elétricas, barragens e sistemas de tráfego. A computação serial tradicional não consegue passar pelos dados rápido o suficiente para a IoT funcionar, tornando a computação paralela crucial para o avanço da tecnologia de IoT.

Inteligência artificial e aprendizado de máquina

A computação paralela desempenha um papel crítico no treinamento de modelos de ML para aplicações de IA, como reconhecimento facial e processamento de linguagem natural (NLP). Ao realizar operações simultaneamente, a computação paralela reduz significativamente o tempo necessário para treinar modelos de ML com precisão com base nos dados.

O ônibus espacial

O computador que opera o ônibus espacial depende de cinco computadores IBM® AP-101 operando em paralelo para controlar sua aviônica e monitorar dados em tempo real. Essas máquinas poderosas, que também são usadas em jatos de combate, podem executar quase 500.000 instruções por segundo.

Supercomputadores

Os supercomputadores dependem tanto da computação paralela que costumam ser chamados de computadores paralelos. O supercomputador American Summit, por exemplo, processa 200 quadrilhão de operações por segundo para ajudar os humanos a entender melhor a física e o ambiente natural.2

Soluções relacionadas
Pacotes IBM Spectrum LSF 

O IBM Spectrum LSF Suites é uma plataforma de gerenciamento de carga de trabalho e agendamento de tarefas para computação distribuída de alto desempenho (HPC).

Explore os pacotes Spectrum LSF
Soluções de servidor e armazenamento de computação de alto desempenho (HPC) | IBM

As soluções de HPC em nuvem híbrida da IBM ajudam a enfrentar desafios complexos e intensivos em computação, acelerando a obtenção de insights.

Conheça as soluções de HPC
Soluções de infraestrutura em nuvem

Encontre a solução ideal de infraestrutura em nuvem para as necessidades do seu negócio e expanda os recursos conforme a demanda.

Soluções em nuvem
Dê o próximo passo

Potencialize suas cargas de trabalho mais exigentes com uso intensivo de IA e computação com as soluções de HPC da IBM. Aproveite a flexibilidade da nuvem híbrida e a infraestrutura de ponta para acelerar sua jornada para a inovação.

Explore as soluções de HPC