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

Detalhes bibliográficos
Ano de defesa: 2016
Autor(a) principal: Griebler, Dalvan Jair lattes
Orientador(a): Fernandes, Luiz Gustavo Le?o lattes
Banca de defesa: Não Informado pela instituição
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: Pontif?cia Universidade Cat?lica do Rio Grande do Sul
Programa de Pós-Graduação: Programa de P?s-Gradua??o em Ci?ncia da Computa??o
Departamento: Faculdade de Inform?tica
País: Brasil
Palavras-chave em Português:
Área do conhecimento CNPq:
Link de acesso: http://tede2.pucrs.br/tede2/handle/tede/6776
Resumo: 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.
id P_RS_73fc0aaff639eb407bbb4d9520c7246e
oai_identifier_str oai:tede2.pucrs.br:tede/6776
network_acronym_str P_RS
network_name_str Biblioteca Digital de Teses e Dissertações da PUC_RS
repository_id_str
spelling Fernandes, Luiz Gustavo Le?o571.500.100-59http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4784653A5Danelutto, Marco022.188.220-08http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4425308Y3Griebler, Dalvan Jair2016-06-20T20:03:42Z2016-03-30http://tede2.pucrs.br/tede2/handle/tede/6776Stream-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.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-30application/pdfhttp://tede2.pucrs.br:80/tede2/retrieve/165423/TES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdf.jpgengPontif?cia Universidade Cat?lica do Rio Grande do SulPrograma de P?s-Gradua??o em Ci?ncia da Computa??oPUCRSBrasilFaculdade de Inform?ticaLINGUAGEM DE PROGRAMA??O DE DOM?NIO ESPEC?FICO (COMPUTADORES)PROGRAMA??O PARALELAAVALIA??O DE DESEMPENHO (INFORM?TICA)FRAMEWORKAGRUPAMENTO DE INFORMA??ES (INFORM?TICA)INFORM?TICACIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAODomain-specific language & support tools for high-level stream parallelisminfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesis1974996533081274470600600600-30085425104011491443671711205811204509info:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da PUC_RSinstname:Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)instacron:PUC_RSTHUMBNAILTES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdf.jpgTES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdf.jpgimage/jpeg3456http://tede2.pucrs.br/tede2/bitstream/tede/6776/5/TES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdf.jpg335357cf3fef52314c310d7b3e133e94MD55TEXTTES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdf.txtTES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdf.txttext/plain463211http://tede2.pucrs.br/tede2/bitstream/tede/6776/4/TES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdf.txt5633833a6befa97a26e118a94a123179MD54LICENSElicense.txtlicense.txttext/plain; charset=utf-8610http://tede2.pucrs.br/tede2/bitstream/tede/6776/3/license.txt5a9d6006225b368ef605ba16b4f6d1beMD53ORIGINALTES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdfTES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdfapplication/pdf6190464http://tede2.pucrs.br/tede2/bitstream/tede/6776/2/TES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdf4381302ea5fe43fe32da3f9826a1ad8aMD52tede/67762016-06-20 20:00:40.573oai:tede2.pucrs.br:tede/6776QXV0b3JpemHDp8OjbyBwYXJhIFB1YmxpY2HDp8OjbyBFbGV0csO0bmljYTogQ29tIGJhc2Ugbm8gZGlzcG9zdG8gbmEgTGVpIEZlZGVyYWwgbsK6OS42MTAsIGRlIDE5IGRlIGZldmVyZWlybyBkZSAxOTk4LCBvIGF1dG9yIEFVVE9SSVpBIGEgcHVibGljYcOnw6NvIGVsZXRyw7RuaWNhIGRhIHByZXNlbnRlIG9icmEgbm8gYWNlcnZvIGRhIEJpYmxpb3RlY2EgRGlnaXRhbCBkYSBQb250aWbDrWNpYSBVbml2ZXJzaWRhZGUgQ2F0w7NsaWNhIGRvIFJpbyBHcmFuZGUgZG8gU3VsLCBzZWRpYWRhIGEgQXYuIElwaXJhbmdhIDY2ODEsIFBvcnRvIEFsZWdyZSwgUmlvIEdyYW5kZSBkbyBTdWwsIGNvbSByZWdpc3RybyBkZSBDTlBKIDg4NjMwNDEzMDAwMi04MSBiZW0gY29tbyBlbSBvdXRyYXMgYmlibGlvdGVjYXMgZGlnaXRhaXMsIG5hY2lvbmFpcyBlIGludGVybmFjaW9uYWlzLCBjb25zw7NyY2lvcyBlIHJlZGVzIMOgcyBxdWFpcyBhIGJpYmxpb3RlY2EgZGEgUFVDUlMgcG9zc2EgYSB2aXIgcGFydGljaXBhciwgc2VtIMO0bnVzIGFsdXNpdm8gYW9zIGRpcmVpdG9zIGF1dG9yYWlzLCBhIHTDrXR1bG8gZGUgZGl2dWxnYcOnw6NvIGRhIHByb2R1w6fDo28gY2llbnTDrWZpY2EuCg==Biblioteca Digital de Teses e Dissertaçõeshttp://tede2.pucrs.br/tede2/PRIhttps://tede2.pucrs.br/oai/requestbiblioteca.central@pucrs.br||opendoar:2016-06-20T23:00:40Biblioteca Digital de Teses e Dissertações da PUC_RS - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)false
dc.title.por.fl_str_mv Domain-specific language & support tools for high-level stream parallelism
title Domain-specific language & support tools for high-level stream parallelism
spellingShingle Domain-specific language & support tools for high-level stream parallelism
Griebler, Dalvan Jair
LINGUAGEM DE PROGRAMA??O DE DOM?NIO ESPEC?FICO (COMPUTADORES)
PROGRAMA??O PARALELA
AVALIA??O DE DESEMPENHO (INFORM?TICA)
FRAMEWORK
AGRUPAMENTO DE INFORMA??ES (INFORM?TICA)
INFORM?TICA
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short Domain-specific language & support tools for high-level stream parallelism
title_full Domain-specific language & support tools for high-level stream parallelism
title_fullStr Domain-specific language & support tools for high-level stream parallelism
title_full_unstemmed Domain-specific language & support tools for high-level stream parallelism
title_sort Domain-specific language & support tools for high-level stream parallelism
author Griebler, Dalvan Jair
author_facet Griebler, Dalvan Jair
author_role author
dc.contributor.advisor1.fl_str_mv Fernandes, Luiz Gustavo Le?o
dc.contributor.advisor1ID.fl_str_mv 571.500.100-59
dc.contributor.advisor1Lattes.fl_str_mv http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4784653A5
dc.contributor.advisor-co1.fl_str_mv Danelutto, Marco
dc.contributor.authorID.fl_str_mv 022.188.220-08
dc.contributor.authorLattes.fl_str_mv http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4425308Y3
dc.contributor.author.fl_str_mv Griebler, Dalvan Jair
contributor_str_mv Fernandes, Luiz Gustavo Le?o
Danelutto, Marco
dc.subject.por.fl_str_mv LINGUAGEM DE PROGRAMA??O DE DOM?NIO ESPEC?FICO (COMPUTADORES)
PROGRAMA??O PARALELA
AVALIA??O DE DESEMPENHO (INFORM?TICA)
FRAMEWORK
AGRUPAMENTO DE INFORMA??ES (INFORM?TICA)
INFORM?TICA
topic LINGUAGEM DE PROGRAMA??O DE DOM?NIO ESPEC?FICO (COMPUTADORES)
PROGRAMA??O PARALELA
AVALIA??O DE DESEMPENHO (INFORM?TICA)
FRAMEWORK
AGRUPAMENTO DE INFORMA??ES (INFORM?TICA)
INFORM?TICA
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
dc.subject.cnpq.fl_str_mv CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description 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.
publishDate 2016
dc.date.accessioned.fl_str_mv 2016-06-20T20:03:42Z
dc.date.issued.fl_str_mv 2016-03-30
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://tede2.pucrs.br/tede2/handle/tede/6776
url http://tede2.pucrs.br/tede2/handle/tede/6776
dc.language.iso.fl_str_mv eng
language eng
dc.relation.program.fl_str_mv 1974996533081274470
dc.relation.confidence.fl_str_mv 600
600
600
dc.relation.department.fl_str_mv -3008542510401149144
dc.relation.cnpq.fl_str_mv 3671711205811204509
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Pontif?cia Universidade Cat?lica do Rio Grande do Sul
dc.publisher.program.fl_str_mv Programa de P?s-Gradua??o em Ci?ncia da Computa??o
dc.publisher.initials.fl_str_mv PUCRS
dc.publisher.country.fl_str_mv Brasil
dc.publisher.department.fl_str_mv Faculdade de Inform?tica
publisher.none.fl_str_mv Pontif?cia Universidade Cat?lica do Rio Grande do Sul
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da PUC_RS
instname:Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
instacron:PUC_RS
instname_str Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
instacron_str PUC_RS
institution PUC_RS
reponame_str Biblioteca Digital de Teses e Dissertações da PUC_RS
collection Biblioteca Digital de Teses e Dissertações da PUC_RS
bitstream.url.fl_str_mv http://tede2.pucrs.br/tede2/bitstream/tede/6776/5/TES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdf.jpg
http://tede2.pucrs.br/tede2/bitstream/tede/6776/4/TES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdf.txt
http://tede2.pucrs.br/tede2/bitstream/tede/6776/3/license.txt
http://tede2.pucrs.br/tede2/bitstream/tede/6776/2/TES_DALVAN_JAIR_GRIEBLER_COMPLETO.pdf
bitstream.checksum.fl_str_mv 335357cf3fef52314c310d7b3e133e94
5633833a6befa97a26e118a94a123179
5a9d6006225b368ef605ba16b4f6d1be
4381302ea5fe43fe32da3f9826a1ad8a
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da PUC_RS - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
repository.mail.fl_str_mv biblioteca.central@pucrs.br||
_version_ 1796793221462884352