Changeset 1503 for XIOS/dev/branch_openmp/extern/ep_dev/main.cpp
- Timestamp:
- 05/28/18 17:28:07 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/extern/ep_dev/main.cpp
r1500 r1503 52 52 53 53 54 MPI_Comm comm_for_dup; // this should act as EP_COMM_WORLD 54 55 MPI_Comm comm; // this should act as EP_COMM_WORLD 55 comm = passage[omp_get_thread_num()]; 56 57 comm_for_dup = passage[omp_get_thread_num()]; 58 MPI_Comm_dup(comm_for_dup, &comm); 59 60 MPI_Comm_free(&comm_for_dup); 61 62 MPI_Barrier(comm); 56 63 57 64 int rank, size; 58 65 MPI_Comm_rank(comm, &rank); 59 66 MPI_Comm_size(comm, &size); 67 68 if(rank == 0) printf(" \t test MPI_Comm_dup \t OK \n"); 60 69 /* 61 70 // TIMING SYCHRONIZATION … … 109 118 MPI_Barrier(comm); 110 119 120 MPI_Comm equal_comm = comm; 121 122 123 124 111 125 double sendbuf[10]; 112 126 double recvbuf[20]; 113 127 114 int sender = 1; 115 int receiver = 2; 128 int sender; 129 if(rank == 0) sender = rand() % size; 130 MPI_Bcast(&sender, 1, MPI_INT, 0, comm); 131 132 int receiver = sender; 133 if(rank == 0) while(sender == receiver) {receiver = rand() % size;} 134 MPI_Bcast(&receiver, 1, MPI_INT, 0, comm); 135 136 137 116 138 117 139 if(rank == sender) 118 140 { 119 141 for(int i=0; i<10; i++) sendbuf[i] = 99.99; 120 MPI_Send(sendbuf, 10, MPI_DOUBLE, receiver, 99, comm);142 MPI_Send(sendbuf, 10, MPI_DOUBLE, receiver, 99, equal_comm); 121 143 for(int i=0; i<10; i++) sendbuf[i] = -99.99; 122 MPI_Send(sendbuf, 10, MPI_DOUBLE, receiver, 11, comm);144 MPI_Send(sendbuf, 10, MPI_DOUBLE, receiver, 11, equal_comm); 123 145 } 124 146 … … 131 153 132 154 for(int i=0; i<20; i++) std::cout << "recvbuf["<< i <<"] = "<< recvbuf[i] << std::endl; 155 printf("sender = %d\nreceiver = %d \tTEST of p2p blocking communication\tOK\n", sender, receiver); 133 156 } 134 157 … … 145 168 double recvbuf[20]; 146 169 147 int sender = 3; 148 int receiver = 7; 149 170 int sender; 171 if(rank == 0) sender = rand() % size; 172 MPI_Bcast(&sender, 1, MPI_INT, 0, comm); 173 174 int receiver = sender; 175 if(rank == 0) receiver = rand() % size; 176 MPI_Bcast(&receiver, 1, MPI_INT, 0, comm); 177 178 179 150 180 MPI_Request request[2]; 151 181 … … 179 209 { 180 210 for(int i=0; i<20; i++) std::cout << "recvbuf["<< i <<"] = "<< recvbuf[i] << std::endl; 211 printf("sender = %d\nreceiver = %d \tTEST of p2p non-blocking communication\tOK\n", sender, receiver); 181 212 } 182 213
Note: See TracChangeset
for help on using the changeset viewer.