A high-level DSL in rust for expressing linear pipelines on multi-cores, clusters and gpus
| Autor(a) principal: | |
|---|---|
| Data de Publicação: | 2025 |
| Tipo de documento: | Dissertação |
| Idioma: | eng |
| Título da fonte: | Biblioteca Digital de Teses e Dissertações da PUC_RS |
| Texto Completo: | https://tede2.pucrs.br/tede2/handle/tede/11664 |
Resumo: | Modern data-intensive applications demand efficient processing of continuous data streams, often requiring parallel execution across diverse hardware environments, including shared-memory systems, distributed clusters, and GPUs. Programming these environments effectively presents significant challenges due to their distinct characteristics and programming models. This work presents a novel high-level domain-specific language embedded in Rust for expressing linear pipeline parallelism targeting Clusters, multi-core, and GPU architectures. We named it SPar-Rust, which simplifies the expressiveness of linear pipeline parallelism and provides a unified programming interface targeting different parallel architectures for developing productive parallel stream-processing applications. SPar-Rust performs source-to-source code transformations where low-level details are hidden from developers by leveraging Rust’s powerful macro system. We analyze the Rust tool-chain’s capabilities for code generation and abstraction, focusing on our approach’s performance and programmability implications compared to state-of-theart solutions, showcasing its effectiveness and limitations. To the best of our knowledge, SPar-Rust is the first DSL in Rust to offer integrated support for GPU execution and a unified programming interface targeting different parallel architectures. |
| id |
P_RS_dce2d014920c581f53d3caf8abd20142 |
|---|---|
| oai_identifier_str |
oai:tede2.pucrs.br:tede/11664 |
| network_acronym_str |
P_RS |
| network_name_str |
Biblioteca Digital de Teses e Dissertações da PUC_RS |
| repository_id_str |
|
| spelling |
A high-level DSL in rust for expressing linear pipelines on multi-cores, clusters and gpusUma DSL alto nivel em rust para expressar pipelines lineares em multi-cores, clusters e gpusRustStream ProcessingSParCode TransformationParallelismRustProcessamento de StreamSParTransformação de CódigoParalelismoCIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAOModern data-intensive applications demand efficient processing of continuous data streams, often requiring parallel execution across diverse hardware environments, including shared-memory systems, distributed clusters, and GPUs. Programming these environments effectively presents significant challenges due to their distinct characteristics and programming models. This work presents a novel high-level domain-specific language embedded in Rust for expressing linear pipeline parallelism targeting Clusters, multi-core, and GPU architectures. We named it SPar-Rust, which simplifies the expressiveness of linear pipeline parallelism and provides a unified programming interface targeting different parallel architectures for developing productive parallel stream-processing applications. SPar-Rust performs source-to-source code transformations where low-level details are hidden from developers by leveraging Rust’s powerful macro system. We analyze the Rust tool-chain’s capabilities for code generation and abstraction, focusing on our approach’s performance and programmability implications compared to state-of-theart solutions, showcasing its effectiveness and limitations. To the best of our knowledge, SPar-Rust is the first DSL in Rust to offer integrated support for GPU execution and a unified programming interface targeting different parallel architectures.Aplicações modernas com uso intensivo de dados exigem o processamento eficiente de streams contínuos de dados, frequentemente requerendo execução paralela em diversos ambientes de hardware, incluindo sistemas de memória compartilhada, clusters distribuídos e GPUs. Programar esses ambientes de forma eficaz apresenta desafios significativos devido às suas características e modelos de programação distintos. Este trabalho apresenta uma nova linguagem de domínio específico de alto nível, incorporada em Rust, para expressar paralelismo de pipeline linear direcionado a arquiteturas de multicore, Clusters, e GPU. Nós a chamamos de SPar-Rust, que simplifica a expressividade do paralelismo de pipeline linear e fornece uma interface de programação unificada direcionada a diferentes arquiteturas paralelas para o desenvolvimento produtivo de aplicações paralelas de processamento de fluxo. SPar-Rust realiza transformações de código fonte para fonte, onde os detalhes de baixo nível são ocultados dos desenvolvedores, usando o poderoso sistema de macros do Rust. Analisamos as capacidades do conjunto de ferramentas de Rust para geração e abstração de código, focando nas implicações de desempenho e programabilidade de nossa abordagem em comparação com soluções do estado da arte, mostrando sua eficácia e limitações. Até onde sabemos, SPar-Rust é a primeira DSL em Rust a oferecer suporte integrado para execução em GPU e uma interface de programação unificada direcionada a diferentes arquiteturas paralelasPontifícia Universidade Católica do Rio Grande do SulEscola PolitécnicaBrasilPUCRSPrograma de Pós-Graduação em Ciência da ComputaçãoGriebler, Dalvan Jairhttp://lattes.cnpq.br/1989039890812573Faé, Leonardo Gibrowski2025-06-03T19:44:26Z2025-03-20info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://tede2.pucrs.br/tede2/handle/tede/11664enginfo: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_RS2025-06-04T23:00:24Zoai:tede2.pucrs.br:tede/11664Biblioteca Digital de Teses e Dissertaçõeshttp://tede2.pucrs.br/tede2/PRIhttps://tede2.pucrs.br/oai/requestbiblioteca.central@pucrs.br||opendoar:2025-06-04T23:00:24Biblioteca Digital de Teses e Dissertações da PUC_RS - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)false |
| dc.title.none.fl_str_mv |
A high-level DSL in rust for expressing linear pipelines on multi-cores, clusters and gpus Uma DSL alto nivel em rust para expressar pipelines lineares em multi-cores, clusters e gpus |
| title |
A high-level DSL in rust for expressing linear pipelines on multi-cores, clusters and gpus |
| spellingShingle |
A high-level DSL in rust for expressing linear pipelines on multi-cores, clusters and gpus Faé, Leonardo Gibrowski Rust Stream Processing SPar Code Transformation Parallelism Rust Processamento de Stream SPar Transformação de Código Paralelismo CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO |
| title_short |
A high-level DSL in rust for expressing linear pipelines on multi-cores, clusters and gpus |
| title_full |
A high-level DSL in rust for expressing linear pipelines on multi-cores, clusters and gpus |
| title_fullStr |
A high-level DSL in rust for expressing linear pipelines on multi-cores, clusters and gpus |
| title_full_unstemmed |
A high-level DSL in rust for expressing linear pipelines on multi-cores, clusters and gpus |
| title_sort |
A high-level DSL in rust for expressing linear pipelines on multi-cores, clusters and gpus |
| author |
Faé, Leonardo Gibrowski |
| author_facet |
Faé, Leonardo Gibrowski |
| author_role |
author |
| dc.contributor.none.fl_str_mv |
Griebler, Dalvan Jair http://lattes.cnpq.br/1989039890812573 |
| dc.contributor.author.fl_str_mv |
Faé, Leonardo Gibrowski |
| dc.subject.por.fl_str_mv |
Rust Stream Processing SPar Code Transformation Parallelism Rust Processamento de Stream SPar Transformação de Código Paralelismo CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO |
| topic |
Rust Stream Processing SPar Code Transformation Parallelism Rust Processamento de Stream SPar Transformação de Código Paralelismo CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO |
| description |
Modern data-intensive applications demand efficient processing of continuous data streams, often requiring parallel execution across diverse hardware environments, including shared-memory systems, distributed clusters, and GPUs. Programming these environments effectively presents significant challenges due to their distinct characteristics and programming models. This work presents a novel high-level domain-specific language embedded in Rust for expressing linear pipeline parallelism targeting Clusters, multi-core, and GPU architectures. We named it SPar-Rust, which simplifies the expressiveness of linear pipeline parallelism and provides a unified programming interface targeting different parallel architectures for developing productive parallel stream-processing applications. SPar-Rust performs source-to-source code transformations where low-level details are hidden from developers by leveraging Rust’s powerful macro system. We analyze the Rust tool-chain’s capabilities for code generation and abstraction, focusing on our approach’s performance and programmability implications compared to state-of-theart solutions, showcasing its effectiveness and limitations. To the best of our knowledge, SPar-Rust is the first DSL in Rust to offer integrated support for GPU execution and a unified programming interface targeting different parallel architectures. |
| publishDate |
2025 |
| dc.date.none.fl_str_mv |
2025-06-03T19:44:26Z 2025-03-20 |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
https://tede2.pucrs.br/tede2/handle/tede/11664 |
| url |
https://tede2.pucrs.br/tede2/handle/tede/11664 |
| dc.language.iso.fl_str_mv |
eng |
| language |
eng |
| 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 Escola Politécnica Brasil PUCRS Programa de Pós-Graduação em Ciência da Computação |
| publisher.none.fl_str_mv |
Pontifícia Universidade Católica do Rio Grande do Sul Escola Politécnica Brasil PUCRS Programa de Pós-Graduação em Ciência da Computação |
| 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 |
| 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_ |
1850041128040005632 |