Uma das maneiras mais efetivas de avaliar o desempenho de um programa é observar sua execução e extrair medidas do tempo de duração das várias seções de interesse. Para que este processo seja o mais portátil possível entre sistemas distintos, a extração de tais medidas deve ser implementada via software, através da utilização de rotinas específicas. Estas rotinas, além de obter o valor do relógio no início e no final de um determinado trecho do programa, podem armazenar tal informação, visando a análise posterior ao término da execução do programa. A tarefa de modificação do código-fonte original com a adição de tais rotinas é comumente denominada instrumentação do programa.
Vários esquemas para instrumentação de programas foram propostos ao longo dos últimos anos. Muitos deles, contudo, exigem que a inserção das chamadas às rotinas de medição fosse feita pelo programador, de forma manual. É nossa opinião que esta tarefa deva ser automatizada, sob risco de, não o sendo, simplesmente deixar de ser utilizada pela maioria dos programadores de aplicações reais.
Num ambiente de programação utilizando HPF, onde o paralelismo pode não estar explícito no código-fonte, é muito importante que as ferramentas disponíveis para análise de desempenho produzam informação num nível adequado para o programador. Não basta, por exemplo, apenas informar quanto houve de comunicação total na execução de um certo laço do programa, mas sim a localização exata de cada componente da comunicação, para que o programador saiba, com precisão, o custo de cada comando do seu código-fonte. Estando de posse desta informação, ele pode alterar o programa fonte de uma forma mais orientada, buscando remover eventuais pontos críticos em termos de desempenho.
Seguindo a diretriz apresentada acima, pretendemos inserir no compilador portátil HPF a capacidade de, sob o comando de chaves de compilação específicas, gerar código com chamadas às rotinas de instrumentação do sistema SvPablo [3]. Desta forma, os dados de desempenho obtidos durante a execução do programa poderão ser analizados com aquele sistema, através de uma interface gráfica simples e de fácil aprendizagem. Com isto, deverá ser possível verificar, para cada comando de um programa-fonte HPF, as seguintes informações: