Arquitetura de máquinas paralelas
Os computadores paralelos são amplamente utilizados nas aplicações que requerem alto poder de processamento, normalmente envolvendo cálculos complexos, como na área de geoprocessamento, computação gráfica, simulações e outras. O ponto comum nestas aplicações é o grande volume de dados a serem processados, em um curto intervalo de tempo, e a complexidade da operação a ser realizada. Neste perfil, entram os computadores paralelos, pois podem realizar este processamento em um tempo menor que o tempo esperado na execução pelos computadores com um único processador.
Os computadores paralelos podem ser classificados em duas categorias:
• Memória Compartilhada, como é o caso de Multiprocessadores
• Memória Distribuída, como é o caso dos Multicomputadores.
Os computadores com memória compartilhada se distinguem dos demais por apresentarem vários processadores acessando fisicamente uma única memória, que é comum a todos. Por sua vez, os computadores com memória distribuída apresentam uma configuração na qual cada processador tem acesso à sua própria memória local. Neste caso, as informações compartilhadas devem ser trocadas entre os processadores por meio de rotinas de comunicação, tais como MPI (Message Passing Interface) e PVM (Parallel Virtual Machine).
O fato dos Multiprocessadores terem memória compartilhada e seus processadores serem iguais (geralmente) e sincronizados, facilita bastante o trabalho de divisão de tarefas. Pode-se afirmar que nestes computadores, simplesmente distribuindo igualmente as tarefas pelo número de processadores já é um bom começo. A mesma abordagem não funciona de forma eficiente nos Multicomputadores ou clusters. Estes computadores podem ser compostos por processadores distintos, o que pode resultar em desempenhos diferentes. Devido às características dos processadores, é muito provável que o com maior capacidade de processamento (mais rápido, com mais memória) conclui sua(s) tarefa(s) antes do que os mais