Ignore:
Timestamp:
06/05/18 19:14:40 (3 years ago)
Author:
yushan
Message:

Test_client 6*8 clients 2 servers OK. TO DO : intercomm->intracomm, comm_free_intercomm

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_openmp/extern/ep_dev/ep_message.cpp

    r1517 r1522  
    2323     
    2424    if(EP_PendingRequests->size() == 0) return 0; 
     25     
     26    show_EP_PendingRequests(EP_PendingRequests); 
    2527     
    2628    MPI_Status status; 
     
    3032    std::list<MPI_Request* >::iterator it; 
    3133     
     34//    show_EP_PendingRequests(EP_PendingRequests); 
     35     
    3236     
    3337    for(it = EP_PendingRequests->begin(); it!=EP_PendingRequests->end(); it++) 
    3438    {  
     39      if(*(*it) == 0) 
     40      { 
     41        EP_PendingRequests->erase(it); 
     42         
     43        memcheck("EP_PendingRequests["<<ep_rank<<"]->size() = " << EP_PendingRequests->size()); 
     44        it = EP_PendingRequests->begin(); 
     45        continue; 
     46      } 
     47       
     48      if((*(*it))->state == 2) 
     49      { 
     50        EP_PendingRequests->erase(it); 
     51         
     52        memcheck("EP_PendingRequests["<<ep_rank<<"]->size() = " << EP_PendingRequests->size()); 
     53        it = EP_PendingRequests->begin(); 
     54        continue; 
     55      } 
     56       
    3557      Message_Check(((*(*it))->comm)); 
    3658    } 
     59     
     60     
    3761 
    3862 
    3963    for(it = EP_PendingRequests->begin(); it!=EP_PendingRequests->end(); ) 
    4064    { 
     65      if(*(*it) == 0) 
     66      { 
     67        EP_PendingRequests->erase(it); 
     68         
     69        memcheck("EP_PendingRequests["<<ep_rank<<"]->size() = " << EP_PendingRequests->size()); 
     70        it = EP_PendingRequests->begin(); 
     71        continue; 
     72      } 
     73       
     74      if((*(*it))->state == 2) 
     75      { 
     76        EP_PendingRequests->erase(it); 
     77         
     78        memcheck("EP_PendingRequests["<<ep_rank<<"]->size() = " << EP_PendingRequests->size()); 
     79        it = EP_PendingRequests->begin(); 
     80        continue; 
     81      } 
     82       
    4183      if((*(*it))->state == 0) 
    4284      { 
     
    81123      } 
    82124       
    83       if((*(*it))->state == 2) 
    84       { 
    85         int ep_rank = ((*(*it))->comm)->ep_comm_ptr->size_rank_info[0].first; 
    86         memcheck("delete "<< (*(*it)) <<" : in ep_lib::Request_Check, delete (*(*it))"); 
    87         delete (*(*it)); 
    88          
    89         EP_PendingRequests->erase(it); 
    90         memcheck("EP_PendingRequests["<<ep_rank<<"]->size() = " << EP_PendingRequests->size()); 
    91         it = EP_PendingRequests->begin(); 
    92         continue; 
    93       } 
    94       else it++; 
    95     } 
     125      it++; 
     126    } 
     127     
     128    show_EP_PendingRequests(EP_PendingRequests); 
    96129  } 
    97130   
     
    170203    return MPI_SUCCESS; 
    171204  } 
    172  
    173  
    174    
    175    
    176    
    177205 
    178206 
     
    241269    return MPI_SUCCESS; 
    242270  } 
     271   
     272   
     273   
     274  void show_EP_PendingRequests(std::list< ep_lib::MPI_Request* > * EP_PendingRequest) 
     275  { 
     276#ifdef _showinfo 
     277    std::list<MPI_Request* >::iterator it; 
     278     
     279    int i=0; 
     280     
     281    for(it = EP_PendingRequests->begin(); it!=EP_PendingRequests->end(); it++) 
     282    {  
     283      if(*(*it) == 0) 
     284      { 
     285        EP_PendingRequests->erase(it); 
     286             
     287        memcheck("EP_PendingRequests["<<ep_rank<<"]->size() = " << EP_PendingRequests->size()); 
     288        it = EP_PendingRequests->begin(); 
     289        continue; 
     290      } 
     291       
     292      if((*(*it))->state == 2) 
     293      { 
     294        EP_PendingRequests->erase(it); 
     295         
     296        memcheck("EP_PendingRequests["<<ep_rank<<"]->size() = " << EP_PendingRequests->size()); 
     297        it = EP_PendingRequests->begin(); 
     298        continue; 
     299      } 
     300           
     301      if((*(*it))->ep_src>6) 
     302        printf("EP_PendingRequests[%d] : ep_src = %d, ep_tag = %d, type = %d, state = %d, comm = %d\n", i, (*(*it))->ep_src, (*(*it))->ep_tag, (*(*it))->type, (*(*it))->state, to_mpi_comm(((*(*it))->comm)->mpi_comm)); 
     303      i++; 
     304    } 
     305#endif 
     306 
     307  } 
    243308 
    244309   
Note: See TracChangeset for help on using the changeset viewer.