Please use this identifier to cite or link to this item: http://hdl.handle.net/1843/SLSS-8GPN7B
Type: Dissertação de Mestrado
Title: Geração automática de código para a execução em um ambiente de computação em DataFlow
Authors: Leonardo Luiz Padovani da Mata
First Advisor: Renato Antonio Celso Ferreira
First Co-advisor: Fernando Magno Quintao Pereira
First Referee: Fernando Magno Quintao Pereira
Second Referee: Márcio Luiz Bunte de Carvalho
Third Referee: Wagner Meira Junior
Abstract: As arquiteturas de computação são cada vez mais distribuídas e hierárquicas, ou seja, existem vários computadores num cluster, sendo que cada computador possui vários processadores e cada um deles possui vários núcleos. Diversos modelos foram propostos para explorar essas características das arquiteturas de computação, dentre esse modelos se destacam os modelos de computação em Dataflow, que acoplam-se bem à nova organização das arquiteturas distribuídas, pois permitem a descrição das aplicações como um conjunto de recursos que se conectam através de fluxos de dados.Se as aplicações forem traduzidas automaticamente para esses modelos de computação em Dataflow, uma gama maior de aplicações poderá dispor de todos os benefícios de uma execução num ambiente distribuído e hierárquico.O objetivo desse trabalho é avaliar estratégias de compilação para realizar a transformação de código para execução no ambiente de computação em Dataflow de forma automática, permitindo o uso desse modelo de programação por programadores que não dominem essa tecnologia.Nessa dissertação é apresentado um protótipo de um tradutor fonte para fonte para realizar essa transformação. Esse tradutor recebe código em C que esteja na forma de um loop canônico e mapeia o código em filtros para execução no Anthill, uma implementação do modelo de computação em Dataflow.O foco do tradutor é gerar um código que seja capaz de executar em paralelo. Não há preocupação com a otimização do código gerado nem com possíveis gargalos gerados na leitura ou na escrita de dados na saída. O tradutor separa cada bloco de execução e o insere num filtro Anthill, sendo que as dependências de dados existentes entre filtros são resolvidas através da insersão de uma comunicação entre eles. Se ofiltro onde um dado é gerado iterar sobre o mesmo domínio de um outro filtro, a comunicação a ser realizada é o labeled-stream garantindo que o dado chegue a instância do filtro onde ele é necessário.Foram avaliadas três aplicações de Mineração de Dados, o Frequent Itemsets, o K-means e o K-nearest neighbors. Utilizando as estratégias apresentadas nessa dissertação foram gerados filtros e executadosexperimentos medindo o tempo de execução para cada um deles.Os filtros gerados pelo tradutor mostraram resultados satisfatórios de speed-up e scale-up aproveitando os recursos disponíveis para a execução da aplicação. Além disso, foi comparada a execução dessaaplicações com versões implementadas por programadores experientes, e os resultados dos tempos de execução para os algoritmos Itemsets Frequentes e K-nearest neighbors gerados automaticamente foram bem próximos dos algoritmos gerados manualmente. O algoritmo K-means gerado automaticamente teve um desempenho (em termos de tempo de execução) bem inferior ao desenvolvido manualmente, mas ele suportou melhor o aumento do número de processadores disponíveis e teve até desempenho superior em alguns casos. Em suma, o uso das estratégias de compilação apresentadas nesse trabalho pode permitir uma gama maior de aplicações aproveitando melhor os recursos de arquiteturas de computação que sejam distribuídas e hierárquicas e pode permitir o uso maior de ambientes de programação em Dataflow para a solução de problemas de computação.
Abstract: The computers architectures are becoming more distributed and hierarchical,that is, there exist lots of computers in a cluster and there are many processors in these computers and these processors have multiple cores. Many models have been proposed to explore the features of the computers architectures. The Data-flow computing models stand out among the proposed models because they can be better mapped into these architecture allowing applications to be described as a set of resources connected with data-flow streams. If the applications are automatically translated to these data-flow computing mo-dels, an wider range of applications can benefit from the execution in an distributed and hierarchical environment. The goal of the present work is to evaluate compilation strategies to do the automatictransformation of code for execution in a data-flow computing environment, allowing the usage of this model for programmers that don't need to understand this technology. In this work a source-to-source translator prototype is presented to do the automatic transformation. This translator receives C code in a canonical loop shape and map the code into filters for executing in Anthill, an implementation of the data-flow computing model. The translator focuses in the parallelization of the application. There is no concern about code optimization and with the quality of reading and writing data speed. The translator splits each execution block of the code and inserts into a new Anthill filter, all the data dependency that exists between two filters are solved by inserting a stream for communication of this data. If the generated filter iteratesover the same domain of another filter, the communication inserted is a labeled-stream that will guarantee the data available where it is needed. Three Data Mining applications have been analyzed in the work, Frequent item-sets, K-means and K-nearest neighbors. Filters have been automatically generated and experiments have been conducted to measure the execution time of these applications.The translator generated filters achieve good results in terms of speed-up and scale-up, using the available resources for their execution. These applications have been compared with manual implementations made by experienced programmers. The results of both versions (automatically and manually transformed) from Frequent Itemsets and K-nearest neighbors had similar performance. The automatic generated version of K-means have worse performance (it terms of execution time) compared with the manual version, but with a larger number of processors, the automatic version had better performance in some cases.The usage of the compilation strategies presented in this work allow an wider range of applications have better usage of the computer architecture resources and allow the usage of Data-Flow computing models to solve more problems in computer science.
Subject: Computação
Programação de Sistemas (computação)
Compiladores (Programas de computador)
language: Inglês
Publisher: Universidade Federal de Minas Gerais
Publisher Initials: UFMG
Rights: Acesso Aberto
URI: http://hdl.handle.net/1843/SLSS-8GPN7B
Issue Date: 18-Oct-2010
Appears in Collections:Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
leonardoluizpadovanimata.pdf1.89 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.