Programas escritos em Fortran, de uma maneira geral, incluindo-se aí HPF, possuem a característica de que parte significativa do tempo de execução corresponde a laços do programa-fonte. É natural, portanto, que as principais iniciativas para aumento de desempenho concentrem sua atenção na otimização de laços. Uma das otimizações possíveis é a execução em paralelo das várias iterações do laço, em sistemas com capacidade de processamento concorrente. Idealmente, o conjunto de iterações seria particionado segundo algum critério, e as iterações de cada partição seriam executadas por um dos processadores disponíveis.
O principal obstáculo ao esquema ideal apresentado acima é a possibilidade de haver dependências entre as diversas iterações de um certo laço. Qualquer tentativa de paralelizar o laço deve respeitar tais dependências, garantindo que a execução em paralelo produza sempre os mesmos resultados, por exemplo, que uma execução seqüencial das várias iterações.
No atual estágio do compilador portátil HPF, toda a informação sobre um possível paralelismo existente num laço está baseada em indicações explicitamente inseridas pelo programador, sob a forma de diretivas no código-fonte. Pretendemos adicionar ao compilador capacidade de analisar o programa fonte e inserir, automaticamente, tais diretivas.
Concretamente, uma das atividades a ser desenvolvida será a inserção de um módulo de análise de dependências entre comandos contendo referências a arrays. Embora este assunto ainda seja objeto, a nível mundial, de intensa pesquisa corrente, é possível obter-se soluções para laços perfeitamente aninhados e nos quais tais referências tenham como índice uma combinação linear das variáveis do laço [2].