pub fn buffer_map_parallel<D, W, O, F, Out>(
map: &HashMap<u32, Vec<D>>,
n_threads: usize,
work: W,
func: F,
) -> Result<()>
Expand description
Performs parallel processing on a HashMap.
ยงExamples
use seqkmer::buffer_map_parallel;
use std::collections::HashMap;
let mut map = HashMap::new();
map.insert(1, vec![1, 2, 3]);
map.insert(2, vec![4, 5, 6]);
let work = |(key, value): (&u32, &Vec<i32>)| {
// Process data
value.iter().sum::<i32>()
};
let func = |result: &mut seqkmer::ParallelResult<i32>| {
let mut total = 0;
while let Some(sum) = result.next() {
total += sum.unwrap();
}
total
};
let total = buffer_map_parallel(&map, 4, work, func)?;
println!("Total sum: {:?}", total);