00001 00005 class network 00006 { 00007 public: 00013 static void init(int &_argc, char** &_argv) 00014 { 00015 MPI_Init(&_argc, &_argv); 00016 } 00020 static void finalize() 00021 { 00022 MPI_Finalize(); 00023 } 00028 static void time(double &_t) 00029 { 00030 _t = MPI_Wtime(); 00031 } 00036 static void rank(int &_rank) 00037 { 00038 MPI_Comm_rank(MPI_COMM_WORLD, &_rank); 00039 } 00044 static void size(int &_size) 00045 { 00046 MPI_Comm_size(MPI_COMM_WORLD, &_size); 00047 } 00051 static void barrier() 00052 { 00053 MPI_Barrier(MPI_COMM_WORLD); 00054 } 00062 static void alltoall(void* _s, int _slen, void* _r, int _rlen) 00063 { 00064 MPI_Alltoall(_s, _slen, MPI_CHAR, _r, _rlen, MPI_CHAR, MPI_COMM_WORLD); 00065 } 00075 static void alltoallv(void* _s, int* _slen, int* _soff, void* _r, int* _rlen, int* _roff) 00076 { 00077 MPI_Alltoallv(_s, _slen, _soff, MPI_CHAR, _r, _rlen, _roff, MPI_CHAR, MPI_COMM_WORLD); 00078 } 00086 static void allgather(void* _s, int _slen, void* _r, int _rlen) 00087 { 00088 MPI_Allgather(_s, _slen, MPI_CHAR, _r, _rlen, MPI_CHAR, MPI_COMM_WORLD); 00089 } 00098 static void allgatherv(void* _s, int _slen, void* _r, int* _rlen, int* _roff) 00099 { 00100 MPI_Allgatherv(_s, _slen, MPI_CHAR, _r, _rlen, _roff, MPI_CHAR, MPI_COMM_WORLD); 00101 } 00102 00103 };