Skip to content

Latest commit

 

History

History
42 lines (28 loc) · 1.4 KB

README.md

File metadata and controls

42 lines (28 loc) · 1.4 KB

Rust SSP

Structured Stream Parallelism for Rust

Define a pipeline with N steps. Pipelines can be normal pipelines or "farm pipelines" (in which some steps are parallel). You can also define pipelines with mutable state.

fn pipelined() {
    let pipeline = pipeline![
        pipeline,
        parallel!(LoadImage, 40),
        parallel!(ApplyMoreSaturation, 2),
        parallel!(ApplyEmboss, 2),
        parallel!(ApplyGamma, 2),
        parallel!(ApplySharpen, 2),
        parallel!(ApplyGrayscale, 2),
        parallel!(SaveImageAndGetResult, 40),
        sequential!(PrintResult)];

    let dir_entries = std::fs::read_dir("/Users/user/Desktop/imagens");

    for entry in dir_entries.unwrap() {
        let entry = entry.unwrap();
        let path = entry.path();

        if path.extension().is_none() { continue; }

        println!("Posting {:?}", path.to_str().unwrap());

        pipeline.post(path).unwrap();
        
    }

    pipeline.end_and_wait();

    println!("Finished.");
}

How to Cite our Work

Ricardo Pieper, Dalvan Griebler, and Luiz Gustavo Fernandes. 2019. Structured Stream Parallelism for Rust. In Proceedings of the XXIII Brazilian Symposium on Programming Languages (SBLP 2019). ACM, New York, NY, USA, 54-61. DOI: https://doi.org/10.1145/3355378.3355384