Domain-specific language & support tools for high-level stream parallelism

Submitted by Setor de Tratamento da Informa??o - BC/PUCRS (tede2@pucrs.br) on 2016-06-20T20:03:42Z
No. of bitstreams: 1
TES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdf: 6190464 bytes, checksum: 4381302ea5fe43fe32da3f9826a1ad8a (MD5) / Made available in DSpace on 2016-06-20T20:03:42Z (GMT). No. of bitstreams: 1
TES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdf: 6190464 bytes, checksum: 4381302ea5fe43fe32da3f9826a1ad8a (MD5)
Previous issue date: 2016-03-30 / Stream-based systems are representative of several application domains including video, audio, networking, graphic processing, etc. Stream programs may run on different kinds of parallel architectures (desktop, servers, cell phones, and supercomputers) and represent significant workloads on our current computing systems. Nevertheless, most of them are still not parallelized. Moreover, when new software has to be developed, programmers often face a trade-off between coding productivity, code portability, and performance. To solve this problem, we provide a new Domain-Specific Language (DSL) that naturally/on-the-fly captures and represents parallelism for stream-based applications. The aim is to offer a set of attributes (through annotations) that preserves the program?s source code and is not architecture-dependent for annotating parallelism. We used the C++ attribute mechanism to design a ?de-facto? standard C++ embedded DSL named SPar. However, the implementation of DSLs using compiler-based tools is difficult, complicated, and usually requires a significant learning curve. This is even harder for those who are not familiar with compiler technology. Therefore, our motivation is to simplify this path for other researchers (experts in their domain) with support tools (our tool is CINCLE) to create high-level and productive DSLs through powerful and aggressive source-to-source transformations. In fact, parallel programmers can use their expertise without having to design and implement low-level code. The main goal of this thesis was to create a DSL and support tools for high-level stream parallelism in the context of a programming framework that is compiler-based and domain-oriented. Thus, we implemented SPar using CINCLE. SPar supports the software developer with productivity, performance, and code portability while CINCLE provides sufficient support to generate new DSLs. Also, SPar targets source-to-source transformation producing parallel pattern code built on top of FastFlow and MPI. Finally, we provide a full set of experiments showing that SPar provides better coding productivity without significant performance degradation in multi-core systems as well as transformation rules that are able to achieve code portability (for cluster architectures) through its generalized attributes. / Sistemas baseados em fluxo cont?nuo de dados representam diversos dom?nios de aplica??es, por exemplo, video, ?udio, processamento gr?fico e de rede, etc. Os programas que processam um fluxo cont?nuo de dados podem executar em diferentes tipos de arquiteturas paralelas (esta??es de trabalho, servidores, celulares e supercomputadores) e representam cargas de trabalho significantes em nossos sistemas computacionais atuais. Mesmo assim, a maioria deles ainda n?o ? paralelizado. Al?m disso, quando um novo software precisa ser desenvolvido, os programadores necessitam lidar com solu??es que oferecem pouca produtividade de c?digo, portabilidade de c?digo e desempenho. Para resolver este problema, estamos oferecendo uma nova linguagem espec?fica de dom?nio (DSL), que naturalmente captura e representa o paralelismo para aplica??es baseadas em fluxo cont?nuo de dados. O objetivo ? oferecer um conjunto de atributos (atrav?s de anota??es) que preservam o c?digo fonte do programa e n?o ? dependente de arquitetura para anotar o paralelismo. Neste estudo foi usado o mecanismo de atributos do C++ para projetar uma DSL embarcada e padronizada com a linguagem hospedeira, que foi nomeada como SPar. No entanto, a implementa??o de DSLs usando ferramentas baseadas em compiladores ? dif?cil, complicado e geralmente requer uma curva de aprendizagem significativa. Isto ? ainda mais dif?cil para aqueles que n?o s?o familiarizados com uma tecnologia de compiladores. Portanto, a motiva??o ? simplificar este caminho para outros pesquisadores (sabedores do seu dom?nio) com ferramentas de apoio (a ferramenta ? chamada de CINCLE) para implementar DSLs produtivas e de alto n?vel atrav?s de poderosas e agressivas transforma??es de fonte para fonte. Na verdade, desenvolvedores que criam programas com paralelismo podem usar suas habilidades sem ter que projetar e implementar o c?digo de baixo n?vel. O principal objetivo desta tese foi criar uma DSL e ferramentas de apoio para paralelismo de fluxo cont?nuo de alto n?vel no contexto de um framework de programa??o que ? baseado em compilador e orientado a dom?nio. Assim, SPar foi criado usando CINCLE. SPar oferece apoio ao desenvolvedor de software com produtividade, desempenho e portabilidade de c?digo, enquanto CINCLE oferece o apoio necess?rio para gerar novas DSLs. Tamb?m, SPar mira transforma??o de fonte para fonte produzindo c?digo de padr?es paralelos no topo de FastFlow e MPI. Por fim, temos um conjunto completo de experimentos demonstrando que SPar oferece melhor produtividade de c?digo sem degradar significativamente o desempenho em sistemas multi-core bem como regras de transforma??es que s?o capazes de atingir a portabilidade de c?digo (para arquiteturas multi-computador) atrav?s dos seus atributos gen?ricos.

Identiferoai:union.ndltd.org:IBICT/oai:tede2.pucrs.br:tede/6776
Date30 March 2016
CreatorsGriebler, Dalvan Jair
ContributorsFernandes, Luiz Gustavo Le?o, Danelutto, Marco
PublisherPontif?cia Universidade Cat?lica do Rio Grande do Sul, Programa de P?s-Gradua??o em Ci?ncia da Computa??o, PUCRS, Brasil, Faculdade de Inform?tica
Source SetsIBICT Brazilian ETDs
LanguageEnglish
Detected LanguageEnglish
Typeinfo:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/doctoralThesis
Formatapplication/pdf
Sourcereponame:Biblioteca Digital de Teses e Dissertações da PUC_RS, instname:Pontifícia Universidade Católica do Rio Grande do Sul, instacron:PUC_RS
Rightsinfo:eu-repo/semantics/openAccess
Relation1974996533081274470, 600, 600, 600, -3008542510401149144, 3671711205811204509

Page generated in 0.0028 seconds