O artigo intitulado “High-level and efficient structured stream parallelism for rust on multi-cores” foi publicado no periódico Computer Languages (COLA), da editora Elsevier. O trabalho foi realizado pelo pesquisador do GMAP Ricardo Pieper, durante sua dissertação de mestrado com orientação do Dr. Luiz Gustavo Fernandes e co-orientação do Dr. Dalvan Griebler. O artigo original intitulado como “Structured Stream Parallelism for Rust” havia sido publicado na edição 2019 do Simpósio Brasileiro de Linguagens de Programação (SBLP) e foi selecionado para uma versão estendida no periódico COLA. A pesquisa para a versão estendida foi conduzida pelos alunos de mestrado do GMAP Júnior Löff e Renato B.Hoffmann sob orientação dos professores Dr. Dalvan Griebler e Dr. Luiz Gustavo Fernandes.
A versão extendida aprofunda a investigação do Rust-SSP, uma interface de programação paralela para paralelismo de stream em Rust. Neste artigo, introduziu-se um novo benchmark (link para acesso: https://github.com/GMAP/RustStreamBench) contendo aplicações reais de processamento de stream, que foram paralelizadas utilizando o Rust-SSP e as principais ferramentas do estado-da-arte em Rust. Descobriu-se que a ferramenta Rust-SSP, criada pelo grupo de pesquisa GMAP, é capaz de obter resultados de desempenho até 41,1% melhores do que outras soluções. Além disso, em aspectos de programabilidade, o Rust-SSP permite paralelizar programas em Rust introduzindo o menor número de linhas dentre todas as soluções investigadas. Esses resultados são promissores, visto que programadores comuns podem agora usufruir do Rust-SSP para obter alto desempenho em programas escritos com Rust.
As principais contribuições do artigo são: 1) Uma solução de alto-nível (Rust-SSP) para paralelizar programas sequenciais de processamento de stream escritos em Rust; 2) Um novo benchmark em Rust contendo aplicações e cargas de trabalho realistas; 3) Paralelização das aplicações desse benchmark utilizando as ferramentas do estado-da-arte em Rust; 4) Uma avaliação de desempenho e programabilidade das ferramentas utilizadas na paralelização das aplicações.
A seguir, o resumo do artigo:
This work aims at contributing with a structured parallel programming abstraction for Rust in order to provide ready-to-use parallel patterns that abstract low-level and architecture-dependent details from application programmers. We focus on stream processing applications running on shared-memory multi-core architectures (i.e, video processing, compression, and others). Therefore, we provide a new high-level and efficient parallel programming abstraction for expressing stream parallelism, named Rust-SSP. We also created a new stream benchmark suite for Rust that represents real-world scenarios and has different application characteristics and workloads. Our benchmark suite is an initiative to assess existing parallelism abstraction for this domain, as parallel implementations using these abstractions were provided. The results revealed that Rust-SSP achieved up to 41.1% better performance than other solutions. In terms of programmability, the results revealed that Rust-SSP requires the smallest number of extra lines of code to enable stream parallelism.
Pieper et al.
Mais informações sobre o journal COLA podem ser encontradas no site oficial.
Por: Gabriella Andrade