Download - ParalelismoNivelInstrucao.doc (27 kB)

 

Universidade Federal da Paraíba

Centro de Informática

Programa Pós-Graduação em Informática

Disciplina: Organização e Arquitetura de Computadores.

Resenha: Unidade 4.

Aluna: Priscilla Kelly M. Vieira.

 

Compiladores para paralelismo no nível de instrução

 

        O paralelismo no mais baixo nível do processamento de um programa (execução e interpretação das instruções) detêm uma série de vantagens e conflitos. A sua maximização pode ser alcançada com o uso de diversas técnicas aplicadas ao compilador e/ou ao hardware. Estas técnicas tem como finalidade atenuar as limitações do paralelismo. Em Paralelismo em nível de instrução, por Yamashiro e Correa, é realizada uma visão geral destes problemas. 

        No âmbito dos compiladores que atuam no Paralelismo em Nível de Instrução (ILP), é possível duas vertentes: dinâmicos e estáticos, como destacado em Compilers for Instruction-Level Parallelism, por Schlansker entre outros autores. Utilizando uma das abordagens, o compilador é responsável por identificar instruções independentes e uma melhor ordenação destas, para com isto alcançar uma maior utilização do hardware e almejar, portanto, uma velocidade de processamento mais elevada.

        Comparando-se os compiladores ILP com compiladores comuns é possível chegar a uma conclusão inesperada, como destacado também em Compilers for Instruction-Level Parallelism, compiladores comuns funcionam apenas como redutores de instruções detectando duplicações e ordenando as operações. Em compiladores ILP, diminuir o número de instruções não necessariamente leva a um melhor desempenho, na verdade muitas técnicas utilizadas aumentam o desempenho inserindo novas instruções.

        Em Quantifying Instruction-Level  Parallelism Limits on an EPIC Architecturc, por Lee entre outros autores, são propostas técnicas que avaliam o paralelismo na arquitetura EPIC. Nesta arquitetura, a verificação de dependência de dados fica a cargo do compilador e a CPU não mais fica encarregada de avaliar o paralelismo do programa. Após os estudos de Lee, concluiu-se que nesta arquitetura todas as dependências falsas são eliminadas, há um aumento de eficiência em atribuições de variáveis dentro de loops, dentre outras melhorias.

        Tendo conhecimento das vantagens ao utilizar-se do paralelismo e da complexidade das resoluções dos conflitos causados por este artifício, é evidente a importância da evolução dos compiladores, com eles é possível uma resolução menos complexa das características indesejáveis do ILP, tal como alcançar um maior desempenho na execução de programas.