Introdução




A acirrada disputa dos fabricantes de computadores para o desenvolvimento de máquinas cada vez mais poderosas vem consolidando uma classe de sistemas caracterizada pelo uso de diversos processadores e um sistema de memória distribuída. Exemplos de máquinas com estas características são o NEC SX-4, Cray T3D e Convex Exemplar. Tais sistemas são conhecidos na literatura como sistemas maciçamente paralelos (MPP).

A obtenção de alto desempenho na execução paralela de programas em tais sistemas multiprocessadores permanece um desafio para os especialistas em processamento paralelo. A pergunta a ser respondida é a seguinte: "como aproveitar eficazmente o desempenho bruto destes computadores ?".

A resposta a esta difícil pergunta se baseia na exploração eficaz dos recursos computacionais disponíveis: paralelismo e acesso aos dados. Um programa obterá grande desempenho em tais máquinas se conseguir fazer uso intenso dos vários processadores e acessar os dados de maneira eficiente.

Este trabalho procura abordar estes assuntos dentro do contexto de um sistema automático para otimização de paralelismo e localidade de dados. O objetivo deste sistema é fornecer subsídios ao usuário de uma máquina MPP para desenvolver um programa que obtenha maior desempenho.

A estrutura deste trabalho é a seguinte: a seção 2 apresenta os conceitos básicos necessários para a compreensão dos assuntos seguintes. Os fundamentos teóricos referentes a otimização de paralelismo e localidade de dados são extensamente descritos na seção 3 e a estratégia adotada para a integração dos dois enfoques é apresentada na seção 4. A próxima seção descreve a situação atual do sistema em desenvolvimento e um estudo de caso é mostrado na seção 6. O trabalho termina na seção 7 com as principais conclusões e indicativos de trabalhos futuros.





Pedro Vaz Artigas
E-mail: artigas@lsi.usp.br

LSI Laboratory of Integrated Systems