Taxonomia de Flynn


A computação paralela é uma abordagem fundamental na ciência da computação moderna, permitindo que múltiplos cálculos sejam realizados simultaneamente para resolver problemas complexos de forma mais eficiente.

Dentro desse campo, a classificação das arquiteturas de computadores paralelos desempenha um papel essencial para entender como os sistemas processam instruções e dados.

Uma das contribuições mais influentes nesse contexto é a Taxonomia de Flynn, proposta por Michael J. Flynn em 1966, que categoriza arquiteturas computacionais com base na simultaneidade de fluxos de instruções e dados.

A Taxonomia de Flynn organiza os sistemas em quatro categorias principais:

  • SISD (Single Instruction, Single Data)
  • SIMD (Single Instruction, Multiple Data)
  • MISD (Multiple Instruction, Single Data)
  • MIMD (Multiple Instruction, Multiple Data)

Warning

A classificação MISD é teórica, ou seja, atualmente não há cenários de aplicação para esse tipo de máquina.

Curiosidade

Ao utilizar a flag -O3 no compilador C, ele aproveita da classificação SIMD para otimizar programas ao habilitar vectorização automática.

Algumas otimização que o GCC pode aplicar para otimizar o código:

  • Inlining agressivo de funções.
  • Unrolling de loops (desenrolamento de laços).
  • Vectorização de loops.
  • Reordenação de instruções para melhor aproveitamento do pipeline da CPU.
  • Eliminação de código morto e outras otimizações baseadas em análise de fluxo de dados.

Note

Essas categorias refletem diferentes formas de paralelismo, desde sistemas sequenciais tradicionais (modelo escalar) até arquiteturas altamente paralelas (modelo vetorial), como as encontradas em processadores multi-processador e GPUs.

Na teoria da computação paralela, a Taxonomia de Flynn serve como um ponto de partida para explorar como o hardware e o software interagem em ambientes paralelos.

Ela destaca a importância de alinhar a arquitetura do sistema com as características do problema a ser resolvido, influenciando desde o desenvolvimento de supercomputadores até a programação de dispositivos do dia a dia.

Referências


Aula 06-03-2025