Software de Pipeline
Maria Angélica Lopes de Souza
RA: 079762
RESUMO
2.SOFTWARE PIPELINE, CONCEITOS
Cada vez mais busca-se melhorar o desempenho da execução de programas e técnicas como Software Pipeline, que visam paralelizar o código a ser executado, podem ser utilizadas para isto. Os loops são principal alvo do paralelismo, pois são os responsáveis pela maior parte do tempo gasto na execução de programas. Neste trabalho é apresentada uma visão geral sobre
Software Pipeline e a comparação de alguns algoritmos existentes. Além de adaptações para exploração de multhreads que estão sendo feitas recentemente.
A técnica realiza uma reorganização de instruções, reestruturando loops de modo que várias iterações sejam sobrepostas (executadas ao mesmo tempo). Software Pipeline comporta-se de forma similar a um Loop Unrolling ilimitado, isto é, infinito[1].
Palavras-Chave
Software pipeline, loop, escalonamento de módulo, identificação do kernel, dependência de recursos.
A paralelização é feita no novo corpo do loop, denominado kernel
(onde instruções de todas as iterações possíveis sendo executadas em paralelo nas unidades de processamento disponíveis), as instruções do loop que iniciam o processo de paralelismo antes da formação do kernel são denominadas prólogo e as que sucedem o kernel denominam-se epílogo. A figura 1, mostra a um novo loop, indicando suas partes.
1.INTRODUÇÃO
A melhoria do desempenho na execução de programas tem sido buscada cada vez mais, pois o máquinas lentas perdem espaço no mercado. Utilizar paralelismo em nível de instrução (ILP) é um caminho para melhorar o desempenho.
Existem duas abordagens para o ILP: dinâmica (hardware) e estática (software). No ILP estático, utiliza-se do compilador para paralelizar o código, aproveitando ao máximo possível as unidades de processamento disponíveis.
Na maioria das vezes o tempo para executar loops é o grande responsável pelo tempo total da execução dos