immediate_all_to_all/
immediate_all_to_all.rs1#![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 mpi::request::scope(|scope| {
16 world
17 .immediate_all_to_all_into(scope, &u[..], &mut v[..])
18 .wait();
19 });
20
21 println!("u: {:?}", u);
22 println!("v: {:?}", v);
23
24 assert!(v.into_iter().zip(0..size).all(|(i, j)| i == j));
25}