I have a massive vector that I want to be able to load/act on in parallel, e.g. load first hundred thousand indices in one thread, next in another and so on. As this is goin
One can use an external library for this, e.g. simple_parallel (disclaimer, I wrote it) allows one to write:
extern crate simple_parallel;
let mut data = vec![1u32, 2, 3, 4, 5];
let mut pool = simple_parallel::Pool::new(4);
pool.for_(data.chunks_mut(3), |target| {
// do stuff with `target`
})
The chunks and chunks_mut methods are the perfect way to split a vector/slice of Ts into equally sized chunks: they respectively return an iterator over elements of type &[T] and &mut [T].