Changeset 1134 for XIOS/dev/branch_yushan_merged/src/context_server.cpp
- Timestamp:
- 05/16/17 17:54:30 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_yushan_merged/src/context_server.cpp
r1033 r1134 10 10 #include "file.hpp" 11 11 #include "grid.hpp" 12 #include "mpi .hpp"12 #include "mpi_std.hpp" 13 13 #include "tracer.hpp" 14 14 #include "timer.hpp" … … 23 23 { 24 24 25 CContextServer::CContextServer(CContext* parent, MPI_Comm intraComm_,MPI_Comm interComm_)25 CContextServer::CContextServer(CContext* parent, ep_lib::MPI_Comm intraComm_, ep_lib::MPI_Comm interComm_) 26 26 { 27 27 context=parent; … … 72 72 int count; 73 73 char * addr; 74 MPI_Status status;74 ep_lib::MPI_Status status; 75 75 map<int,CServerBuffer*>::iterator it; 76 76 … … 80 80 { 81 81 traceOff(); 82 MPI_Iprobe(rank,20,interComm,&flag,&status);82 ep_lib::MPI_Iprobe(rank,20,interComm,&flag,&status); 83 83 traceOn(); 84 84 if (flag==true) … … 88 88 { 89 89 StdSize buffSize = 0; 90 MPI_Recv(&buffSize, 1, MPI_LONG, rank, 20, interComm, &status);90 ep_lib::MPI_Recv(&buffSize, 1, MPI_LONG, rank, 20, interComm, &status); 91 91 mapBufferSize_.insert(std::make_pair(rank, buffSize)); 92 92 it=(buffers.insert(pair<int,CServerBuffer*>(rank,new CServerBuffer(buffSize)))).first; … … 94 94 else 95 95 { 96 MPI_Get_count(&status,MPI_CHAR,&count); 96 97 ep_lib::MPI_Get_count(&status,MPI_CHAR,&count); 97 98 if (it->second->isBufferFree(count)) 98 99 { 99 100 addr=(char*)it->second->getBuffer(count); 100 MPI_Irecv(addr,count,MPI_CHAR,rank,20,interComm,&pendingRequest[rank]);101 ep_lib::MPI_Irecv(addr,count,MPI_CHAR,rank,20,interComm,&pendingRequest[rank]); 101 102 bufferRequest[rank]=addr; 102 103 } … … 109 110 void CContextServer::checkPendingRequest(void) 110 111 { 111 map<int, MPI_Request>::iterator it;112 map<int,ep_lib::MPI_Request>::iterator it; 112 113 list<int> recvRequest; 113 114 list<int>::iterator itRecv; … … 115 116 int flag; 116 117 int count; 117 MPI_Status status;118 119 for(it=pendingRequest.begin();it!=pendingRequest.end(); it++)118 ep_lib::MPI_Status status; 119 120 for(it=pendingRequest.begin();it!=pendingRequest.end();++it) 120 121 { 121 122 rank=it->first; 122 123 traceOff(); 123 MPI_Test(& it->second, &flag, &status);124 ep_lib::MPI_Test(& it->second, &flag, &status); 124 125 traceOn(); 125 126 if (flag==true) 126 127 { 127 128 recvRequest.push_back(rank); 128 MPI_Get_count(&status,MPI_CHAR,&count);129 ep_lib::MPI_Get_count(&status,MPI_CHAR,&count); 129 130 processRequest(rank,bufferRequest[rank],count); 130 131 } … … 219 220 { 220 221 finished=true; 222 #pragma omp critical (_output) 221 223 info(20)<<"Server Side context <"<<context->getId()<<"> finalized"<<endl; 222 224 std::map<int, StdSize>::const_iterator itbMap = mapBufferSize_.begin(), … … 225 227 for (itMap = itbMap; itMap != iteMap; ++itMap) 226 228 { 227 report(10)<< " Memory report : Context <"<<context->getId()<<"> : server side : memory used for buffer of each connection to client" << endl228 << " +) With client of rank " << itMap->first << " : " << itMap->second << " bytes " << endl;229 //report(10)<< " Memory report : Context <"<<context->getId()<<"> : server side : memory used for buffer of each connection to client" << endl 230 // << " +) With client of rank " << itMap->first << " : " << itMap->second << " bytes " << endl; 229 231 totalBuf += itMap->second; 230 232 } 231 233 context->finalize(); 232 report(0)<< " Memory report : Context <"<<context->getId()<<"> : server side : total memory used for buffer "<<totalBuf<<" bytes"<<endl;234 //report(0)<< " Memory report : Context <"<<context->getId()<<"> : server side : total memory used for buffer "<<totalBuf<<" bytes"<<endl; 233 235 } 234 236 else if (event.classId==CContext::GetType()) CContext::dispatchEvent(event);
Note: See TracChangeset
for help on using the changeset viewer.