Changeset 1072 for XIOS/dev/branch_yushan/src/cxios.cpp
- Timestamp:
- 03/14/17 19:12:25 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_yushan/src/cxios.cpp
r1070 r1072 22 22 bool CXios::isServer ; 23 23 MPI_Comm CXios::globalComm ; 24 // #pragma omp threadprivate(CXios::globalComm) 25 24 26 bool CXios::usingOasis ; 25 27 bool CXios::usingServer = false; … … 35 37 { 36 38 set_new_handler(noMemory); 37 parseFile(rootFile); 39 //#pragma omp critical(_output) 40 #pragma omp master 41 { 42 parseFile(rootFile); 43 } 38 44 parseXiosConfig(); 39 45 } … … 45 51 void CXios::parseXiosConfig() 46 52 { 53 47 54 usingOasis=getin<bool>("using_oasis",false) ; 48 55 usingServer=getin<bool>("using_server",false) ; … … 63 70 bufferSizeFactor = getin<double>("buffer_size_factor", defaultBufferSizeFactor); 64 71 minBufferSize = getin<int>("min_buffer_size", 1024 * sizeof(double)); 65 72 66 73 int num_ep; 67 if(isClient) 74 if(isClient) 68 75 { 69 num_ep = 1; 76 num_ep = omp_get_num_threads(); 77 printf("Client %d: num_ep = %d\n", omp_get_thread_num(), num_ep); 70 78 } 71 79 72 80 if(isServer) 73 81 { 74 num_ep = 1; 82 num_ep = omp_get_num_threads(); 83 printf("Server %d: num_ep = %d\n", omp_get_thread_num(), num_ep); 75 84 } 76 85 77 86 MPI_Info info; 78 MPI_Comm *ep_comm;79 if(omp_get_thread_num()==0)80 {87 #pragma omp master 88 { 89 MPI_Comm *ep_comm; 81 90 MPI_Comm_create_endpoints(MPI_COMM_WORLD, num_ep, info, ep_comm); // servers should reach here too. 82 91 passage = ep_comm; … … 86 95 87 96 globalComm = passage[omp_get_thread_num()]; 97 98 int tmp_rank; 99 MPI_Comm_rank(MPI_COMM_WORLD, &tmp_rank); 100 if(isClient) printf("client thread %d/%d, globalComm = %p\n", omp_get_thread_num(), tmp_rank, &passage[omp_get_thread_num()]); 101 if(isServer) printf("server thread %d/%d, globalComm = %p\n", omp_get_thread_num(), tmp_rank, &passage[omp_get_thread_num()]); 88 102 89 103 }
Note: See TracChangeset
for help on using the changeset viewer.