The paper entitled “High-level and efficient structured stream parallelism for rust on multi-cores” was published in the Journal of Computer Languages (COLA) from Elsevier publisher. The work was written by GMAP researcher Ricardo Pieper, during his master’s degree, advised by Dr. Luiz Gustavo Fernandes, and co-advised by Dr. Dalvan Griebler. The original paper entitled “Structured Stream Parallelism for Rust” had been published in the 2019 issue of the Brazilian Symposium on Programming Languages (SBLP) and was selected for an extended version in the COLA journal. The research for the extended version was conducted by GMAP Master’s students Junior Löff and Renato B.Hoffmann under the advice of the professors Dr. Dalvan Griebler and Dr. Luiz Gustavo Fernandes.
The extended version further investigates Rust-SSP, a parallel programming interface for stream parallelism in Rust. In this paper, a new benchmark was introduced containing real stream processing applications, which were parallelized using Rust-SSP and the main state-of-the-art tools in Rust. It has been found that the Rust-SSP tool, created by the GMAP research group, is able to achieve performance results up to 41.1% better than other solutions. Moreover, in programmability aspects, Rust-SSP allows parallelization of programs in Rust by introducing the smallest number of threads among all investigated solutions. These results are promising, since normal programmers can now take advantage of Rust-SSP to achieve high performance in programs written with Rust.
The main contributions of the article are: 1) A high-level solution (Rust-SSP) for parallelizing sequential stream processing programs written in Rust; 2) A new benchmark in Rust containing realistic applications and workloads; 3) Parallelization of the applications of this benchmark using state-of-the-art Rust tools; 4) An evaluation of the performance and programmability of the tools used in parallelizing applications.
The following is the abstract of the article:
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.
More information about the journal of COLA can be found on the official website.
By: Gabriella Andrade