1#![deny(warnings)]
2extern crate mpi_fork_fnsp as mpi;
3
4use mpi::topology::Rank;
5use mpi::traits::*;
6
7fn main() {
8 let universe = mpi::initialize().unwrap();
9 let world = universe.world();
10 let rank = world.rank();
11 let size = world.size();
12 let root_rank = 0;
13 let root_process = world.process_at_rank(root_rank);
14
15 let mut x = 0 as Rank;
16 if rank == root_rank {
17 let v = (0..size).collect::<Vec<_>>();
18 root_process.scatter_into_root(&v[..], &mut x);
19 } else {
20 root_process.scatter_into(&mut x);
21 }
22 assert_eq!(x, rank);
23}