|
ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include "source_base/parallel_reduce.h"#include "source_base/parallel_global.h"#include "mpi.h"#include "gtest/gtest.h"#include <assert.h>#include <random>#include <time.h>Classes | |
| class | MPIContext |
| class | ParaReduce |
Functions | |
| template<typename T > | |
| T * | get_rand_array (int num, int my_rank) |
| TEST_F (ParaReduce, ReduceIntAll) | |
| TEST_F (ParaReduce, ReduceDoubleAll) | |
| TEST_F (ParaReduce, ReduceComplexAll) | |
| TEST_F (ParaReduce, GatherIntAll) | |
| TEST_F (ParaReduce, GatherDoubleAll) | |
| TEST_F (ParaReduce, ReduceIntDiag) | |
| TEST_F (ParaReduce, ReduceDoubleDiag) | |
| TEST_F (ParaReduce, ReduceIntGrid) | |
| TEST_F (ParaReduce, ReduceDoubleGrid) | |
| TEST_F (ParaReduce, ReduceDoublePool) | |
| TEST_F (ParaReduce, ReduceComplexPool) | |
| TEST_F (ParaReduce, GatherDoublePool) | |
| int | main (int argc, char **argv) |
Variables | |
| const int | MIN_FOR_RAND = 1 |
| const int | MAX_FOR_RAND = 99999 |
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
| TEST_F | ( | ParaReduce | , |
| GatherDoubleAll | |||
| ) |
printf("post rank %d array[%d] = %f, min = %f, max = %f \n", my_rank,i,array[i],min_number,max_number);
| TEST_F | ( | ParaReduce | , |
| GatherDoublePool | |||
| ) |
num_per_process = 1;
printf("post rank %d, pool rank %d, array[%d] = %f, min = %f, max = %f \n", my_rank,mpiContext.rank_in_pool,i,array[i],min_number,max_number);
| TEST_F | ( | ParaReduce | , |
| GatherIntAll | |||
| ) |
printf("post rank %d array[%d] = %d, min = %d \n", my_rank,i,array[i],min_number);
| TEST_F | ( | ParaReduce | , |
| ReduceComplexAll | |||
| ) |
printf("pre rank %d rand_array[%d] = (%f,%f) \n",my_rank,i, rand_array[i].real(), rand_array[i].imag());
printf("pos rank %d rand_array[%d] = (%f,%f) \n",my_rank,i, rand_array[i].real(), rand_array[i].imag());
printf("rank %d sum1 = (%f,%f) sum2 = (%f,%f)\n",my_rank, global_sum_first.real(), global_sum_first.imag(), global_sum_second.real(), global_sum_second.imag());
| TEST_F | ( | ParaReduce | , |
| ReduceComplexPool | |||
| ) |
num_per_process = 1;
printf("word_rank/world_size = %d/%d, pool_rank/pool_size = %d/%d \n", my_rank,nproc, mpiContext.rank_in_pool,mpiContext.nproc_in_pool);
printf("pre rank %d rand_array[%d] = (%f,%f) \n",my_rank,i, rand_array[i].real(), rand_array[i].imag());
printf("pos rank %d rand_array[%d] = (%f,%f) \n",my_rank,i, rand_array[i].real(), rand_array[i].imag());
printf("rank %d sum1 = (%f,%f) sum2 = (%f,%f)\n",my_rank, pool_sum_first.real(), pool_sum_first.imag(), pool_sum_second.real(), pool_sum_second.imag());
| TEST_F | ( | ParaReduce | , |
| ReduceDoubleAll | |||
| ) |
printf("rank %d sum1 = %f, sum2 = %f\n",my_rank, global_sum_first, global_sum_second);
| TEST_F | ( | ParaReduce | , |
| ReduceDoubleDiag | |||
| ) |
num_per_process = 1;
printf(" pre world_rank %d, drank %d rand_array[%d] = %f\n", my_rank,mpiContext.dsize,i, rand_array[i]);
printf(" post world_rank %d, drank %d rand_array[%d] = %f\n", my_rank,mpiContext.dsize,i, rand_array[i]);
printf("world_rank %d, drank %d sum1 = %f, sum2 = %f\n", my_rank,mpiContext.dsize,diag_sum_first, diag_sum_second);
| TEST_F | ( | ParaReduce | , |
| ReduceDoubleGrid | |||
| ) |
num_per_process = 1;
printf(" pre world_rank %d, drank %d rand_array[%d] = %f\n", my_rank,mpiContext.dsize,i, rand_array[i]);
printf(" post world_rank %d, drank %d rand_array[%d] = %f\n", my_rank,mpiContext.dsize,i, rand_array[i]);
printf("world_rank %d, drank %d sum1 = %f, sum2 = %f\n", my_rank,mpiContext.dsize,grid_sum_first, grid_sum_second);
| TEST_F | ( | ParaReduce | , |
| ReduceDoublePool | |||
| ) |
num_per_process = 1;
printf("word_rank/world_size = %d/%d, pool_rank/pool_size = %d/%d \n", my_rank,nproc, mpiContext.rank_in_pool,mpiContext.nproc_in_pool);
printf("pool rank %d sum1 = %f, sum2 = %f\n",my_rank, pool_sum_first, pool_sum_second);
printf("global rank %d sum1 = %f, sum2 = %f\n",my_rank, global_sum_first, global_sum_second);
| TEST_F | ( | ParaReduce | , |
| ReduceIntAll | |||
| ) |
printf("rank %d sum1 = %d, sum2 = %d\n",my_rank, global_sum_first, global_sum_second);
| TEST_F | ( | ParaReduce | , |
| ReduceIntDiag | |||
| ) |
num_per_process = 2;
printf(" pre world_rank %d, drank %d rand_array[%d] = %d\n", my_rank,mpiContext.dsize,i, rand_array[i]);
printf(" post world_rank %d, drank %d swap[%d] = %d\n", my_rank,mpiContext.dsize,i, swap[i]);
printf("world_rank %d, drank %d sum1 = %d, sum2 = %d\n", my_rank,mpiContext.dsize,diag_sum_first, diag_sum_second);
| TEST_F | ( | ParaReduce | , |
| ReduceIntGrid | |||
| ) |
num_per_process = 2;
printf(" pre world_rank %d, drank %d rand_array[%d] = %d\n", my_rank,mpiContext.dsize,i, rand_array[i]);
printf(" post world_rank %d, drank %d rand_array[%d] = %d\n", my_rank,mpiContext.dsize,i, rand_array[i]);
printf("world_rank %d, drank %d sum1 = %d, sum2 = %d\n", my_rank,mpiContext.dsize,grid_sum_first, grid_sum_second);
| const int MAX_FOR_RAND = 99999 |
| const int MIN_FOR_RAND = 1 |