Redes e Segurança

Computação paralela

Computação paralela divide um problema em partes executadas ao mesmo tempo. Veja o que é, como funciona, diferença para concorrência e exemplos.

Capa: Computação paralela

Computação paralela é a técnica de dividir um problema grande em partes menores e processá-las ao mesmo tempo em vários núcleos ou processadores, para terminar mais rápido do que executando tudo em sequência.

Como funciona

Imagine somar um milhão de números. Um único núcleo soma um a um. Com quatro núcleos, cada um soma um quarto da lista e depois os resultados parciais são combinados. Se o trabalho se divide bem, o tempo cai quase na mesma proporção.

Exemplo em código

from multiprocessing import Pool

def quadrado(n):
    return n * n

if __name__ == "__main__":
    with Pool(4) as p:
        print(p.map(quadrado, range(10)))

Tipos de paralelismo

  • Paralelismo de dados: a mesma operação aplicada a partes diferentes dos dados (como em GPUs).
  • Paralelismo de tarefas: tarefas distintas executadas simultaneamente.
  • Em nível de instrução: o processador executa várias instruções ao mesmo tempo (pipeline, superescalar).

Paralela x concorrente x distribuída

ConceitoIdeia
ParalelaExecução realmente simultânea, em vários núcleos.
ConcorrenteVárias tarefas em andamento, que podem se alternar em um só núcleo.
DistribuídaVários computadores conectados em rede cooperando.

Vantagens e desafios

O ganho é desempenho em problemas grandes, como simulações, renderização, aprendizado de máquina e processamento de imagens. Os desafios são a sincronização entre as partes, as condições de corrida e a Lei de Amdahl: a parte do programa que não pode ser paralelizada limita o ganho total.

Onde está no dia a dia

Processadores multinúcleo, placas de vídeo (milhares de núcleos pequenos), bancos de dados e supercomputadores usam paralelismo. Para aproveitar, o software precisa ser escrito para isso, com threads, processos ou frameworks apropriados.

Mais artigos