A high-level DSL in rust for expressing linear pipelines on multi-cores, clusters and gpus

Detalhes bibliográficos
Autor(a) principal: Faé, Leonardo Gibrowski
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