Informações:

Publicações do PESC

Título
Dataflow Execution for Reliability and Performance on Current Hardware
Linha de pesquisa
Arquitetura e Sistemas Operacionais
Tipo de publicação
Tese de Doutorado
Número de registro
Data da defesa
30/5/2014
Resumo

Execução dataflow, onde instruções podem começar a executar assim que seus  operandos de entrada estiverem prontos, é uma maneira natural para se obter paralelismo. Recentemente, o dataflow tornou a receber atenção como uma ferramenta para programação paralela na era dos multicores e manycores. A mudança de foco em direção ao dataflow traz consigo a necessidade de pesquisa que expanda o conhecimento a respeito de execução dataflow e que adicione novas funcionalidades ao espectro do que pode ser feito com dataflow. Trabalhos anteriores que estudam o desempenho de aplicações paralelas se focam predominantemente em grafos acíclicos dirigidos, um modelo que não é capaz de representar diretamente aplicações dataflow. Além disso, não há nenhum trabalho anterior na área de detecção e recuperação de erro cujo alvo seja execução dataflow. Nesta tese introduzimos as seguintes contribuções: (i) algoritmos de escalonamento estático dinâmico para ambientes dataflow; (ii) ferramentas teóricas que nos permitem modelar o desempenho de aplicações dataflow; (iii) um algoritmo para detecção e recuperação de erros em dataflow e  (iv) um modelo para execução GPU+CPU que incorpora as funcionalidades de GPU ao grafo dataflow. Nós implementamos todo o trabalho introduzido nesta tese em nosso modelo TALM dataflow e executamos experimentos com essas implementações. Os resultados experimentais validam o nosso modelo teórico para o desempenho de aplicações dataflow e mostram que as funcionalidades introduzidas atingem bom desempenho.

Abstract

Dataflow execution, where instructions can start executing as soon as their input operands are ready, is a natural way to obtain parallelism. Recently, dataflow execution has regained  traction as a tool for programming in the multicore and manycore era. The shift of focus toward dataflow calls for research that expands the knowledge about dataflow execution and that adds functionalities to the spectrum of what can be done with dataflow. Prior work on bounds for the performance of parallel programs mostly focus on DAGs (Directed Acyclic Graphs), a model that can not directly represent dataflow programs. Besides that, there has been no work in the area of Error Detection and Recovery that targets dataflow execution. In this thesis we introduce the following contributions to dataflow execution: (i) novel static/dynamic scheduling algorithms for dataflow runtimes; (ii) theoretical tools that allow us to model the performance of dynamic dataflow programs; (iii) an algorithm for error detection and recovery in dataflow execution and (iv) a model for GPU+CPU execution that incorporates GPU functionalities to the dataflow graph.We implemented all the work introduced in our TALM dataflow model and executed experiments with such implementations. The experimental resuls validate the theoretical model of dataflow performance and show that the functionalities introduced in this thesis present good performance.

Topo