all_to_all/all_to_all.rs
1#![deny(warnings)]
2extern crate mpi_fork_fnsp as mpi;
3
4use mpi::traits::*;
5
6fn main() {
7 let universe = mpi::initialize().unwrap();
8 let world = universe.world();
9 let rank = world.rank();
10 let size = world.size();
11
12 let u = vec![rank; size as usize];
13 let mut v = vec![0; size as usize];
14
15 world.all_to_all_into(&u[..], &mut v[..]);
16
17 println!("u: {:?}", u);
18 println!("v: {:?}", v);
19
20 assert!(v.into_iter().zip(0..size).all(|(i, j)| i == j));
21}