Mapeamento de Instruções Dataflow
Autores
5267 |
Alexandre Ferreira Sardinha de Mattos
|
2378,131,163
|
5268 |
2378,131,163
|
|
5269 |
2378,131,163
|
Informações:
Publicações do PESC
O limite de dissipação de energia térmica de um chip fez com que as frequências dos processadores não pudessem aumentar como o esperado. Então, a indústria teve de buscar alternativas para garantir o aumento de performance computacional e passou a investir em processadores com múltiplos núcleos em um mesmo chip.
Para aproveitar todo o potencial dos processadores multicores, surge a necessidade da adoção de modelos alternativos de programação paralela, como é o caso do modelo Dataflow. A característica principal nesta arquitetura é que as instruções podem ser executadas assim que seus operandos estão disponíveis. Portanto, o programa segue o fluxo de dados ao invés de seguir a ordem sequencial do código (modelo Von Neumann).
No contexto das arquiteturas Dataflow, existe o problema de como mapear instruções para os Elementos de Processamento. Isto é, dado um conjunto de instruções I, um grafo direcionado G(I,E), que descreve as dependências entre instruções, e um conjunto de Elementos de Processamento P, qual deve ser a maneira de distribuir (mapear) as instruções nos Elementos de Processamento, de modo a tentar minimizar o tempo total de execução do programa Dataflow. É este o problema que nos dedicamos a estudar nesta dissertação.
The limit of thermal energy dissipation on a chip meant that the processors frequencies could not increase as expected. Thus, the industry had to seek alternatives to ensure the increase in computational performance and spent investing in multicore processors on a single chip.
To harness the full potential of multicore processors, it becomes necessary to adopt alternative models of parallel programming, such as Dataflow model. The main feature of this architecture is that the instructions can be performed as soon as their operands are available. Therefore, the program follows the data flow rather than following the code sequentially (Von Neumann model).
In Dataflow architectures context, there is the problem of how to place instructions to the Processing Elements. That is, given an instruction set I, a directed graph G (I, E), which describes the dependencies between instructions, and a set of Processing Elements P, which should be a way to distribute (place) instructions in the Processing Elements, to try to minimize the total execution time of the Dataflow program. This is the problem we dedicated to study in this master thesis.In this work, we implemented an Architectural Dataflow Simulator, at cycle level, to serve as test environment and assist to study the placement effects in program execution. Furthermore, we propose a placement algorithm from a dynamic programming technique with some improvements. Finally, we implemented a test-suite programs to serve as a benchmarking and present a comparative study between the proposed algorithm and other placement algorithms.