Parallel iter

Parallel iter

날짜
생성자
ShalomShalom
카테고리
rust
작성일
2023년 05월 15일
태그
rust
이전 블로그

Parallel Iterator

collection의 이터레이터를 task 단위로 나누어 병렬로 처리하는 방법이다.
use std::{ops::Range, time::Instant}; use rayon::prelude::*; fn sum_of_squares_par(input: Range<i32>) -> Vec<i32> { input.into_par_iter().map(|i| i - 1).collect::<Vec<_>>() } fn sum_of_squares(input: Range<i32>) -> Vec<i32> { input.into_iter().map(|i| i - 1).collect::<Vec<_>>() } fn main() { let input = 1..1_000_000_000; let start = Instant::now(); sum_of_squares(input); println!("plain iterator: {:?}", Instant::now() - start); let input = 1..1_000_000_000; let start = Instant::now(); sum_of_squares_par(input); println!("parallel iterator: {:?}", Instant::now() - start); } Compiling state_machine_pattern v0.1.0 (/home/wonchul/me/rust/state_machine_pattern) Finished dev [unoptimized + debuginfo] target(s) in 0.39s Running `target/debug/state_machine_pattern` plain iterator: 29.321507442s parallel iterator: 3.022041206s
 

댓글

guest