![]() |
|
#include "generic.h"
Functions | |
int | main (int argc, char *argv[]) |
Driver code: Testing LinearAlgebraDistributionHelpers::concatenate(...)
We concatenate three uniformly distributed distributions with nrow = 7, 5, and 3 respectively.
On one core: dist_0: nrow = 7 nrow_local rank0 = 7
dist_1: nrow = 5 nrow_local rank0 = 5
dist_2: nrow = 3 nrow_local rank0 = 3
The result distribution should have: dist_r: nrow = 15 nrow_local rank0 = 15
////////////////////////////////////
On two cores: dist_0: nrow = 7 nrow_local rank0 = 3 nrow_local rank1 = 4
dist_1: nrow = 5 nrow_local rank0 = 2 nrow_local rank1 = 3
dist_2: nrow = 3 nrow_local rank0 = 1 nrow_local rank1 = 2
The result distribution should have: dist_r: nrow = 15 nrow_local rank0 = 6 nrow_local rank1 = 9
////////////////////////////////////
On three cores: dist_0: nrow = 7 nrow_local rank0 = 2 nrow_local rank1 = 2 nrow_local rank2 = 3
dist_1: nrow = 5 nrow_local rank0 = 1 nrow_local rank1 = 2 nrow_local rank2 = 2
dist_2: nrow = 3 nrow_local rank0 = 1 nrow_local rank1 = 1 nrow_local rank2 = 1
The result distribution should have: dist_r: nrow = 15 nrow_local rank0 = 4 nrow_local rank1 = 5 nrow_local rank2 = 6
////////////////////////////////////
On four cores: dist_0: nrow = 7 nrow_local rank0 = 1 nrow_local rank1 = 2 nrow_local rank2 = 2 nrow_local rank2 = 2
dist_1: nrow = 5 nrow_local rank0 = 1 nrow_local rank1 = 1 nrow_local rank1 = 1 nrow_local rank1 = 2
dist_2: nrow = 3 nrow_local rank0 = 0 nrow_local rank1 = 1 nrow_local rank1 = 1 nrow_local rank1 = 1
The result distribution should have: dist_r: nrow = 15 nrow_local rank0 = 2 nrow_local rank1 = 4 nrow_local rank1 = 4 nrow_local rank1 = 5
The script validate.sh should run this test on 1, 2, 3 and4 cores.
References oomph::MPI_Helpers::communicator_pt(), oomph::LinearAlgebraDistributionHelpers::concatenate(), oomph::LinearAlgebraDistribution::distributed(), oomph::MPI_Helpers::finalize(), oomph::LinearAlgebraDistribution::first_row(), oomph::MPI_Helpers::init(), oomph::OomphCommunicator::my_rank(), oomph::OomphCommunicator::nproc(), oomph::LinearAlgebraDistribution::nrow(), and oomph::LinearAlgebraDistribution::nrow_local().