Ignore:
Timestamp:
09/07/11 14:25:56 (13 years ago)
Author:
hozdoba
Message:
 
Location:
XMLIO_V2/dev/dev_rv/src4/xmlio/mpi
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/dev_rv/src4/xmlio/mpi/mpi_interface.cpp

    r256 r267  
    253253   // ------------------------- Communication 'complexe' ----------------------- 
    254254          
    255    //void SendLinearBuffer(MPIComm comm, int dest_rank, CLinearBuffer & buff, MPIRequest & request); 
    256    //void ReceiveLinearBuffer(MPIComm comm, int src_rank, CLinearBuffer & buff); 
    257    //boost::shared_ptr<CLinearBuffer> ReceiveLinearBuffer(MPIComm comm, int src_rank); 
    258    //void ReceiveCircularBuffer(MPIComm comm, int src_rank, CCircularBuffer & buff); 
     255   void CMPIManager::SendLinearBuffer(MPI_Comm _comm, int _dest_rank, CLinearBuffer & _lbuffer, MPI_Request & _request) 
     256   { 
     257      CMPIManager::Send(_comm, _dest_rank, _lbuffer, _lbuffer.getUsedSize(), _request); 
     258      buff.clear(); 
     259   } 
     260    
     261   void CMPIManager::ReceiveLinearBuffer(MPI_Comm _comm, int _src_rank, CLinearBuffer & _lbuffer) 
     262   { 
     263      CMPIManager::Receive(_comm, _src_rank, _lbuffer); 
     264      _lbuffer.computeBufferData(); 
     265   } 
     266    
     267   boost::shared_ptr<CLinearBuffer> CMPIManager::ReceiveLinearBuffer(MPI_Comm _comm, int _src_rank) 
     268   { 
     269      boost::shared_ptr<CLinearBuffer> buff_ptr 
     270         (new CLinearBuffer(CMPIManager::GetReceivedDataSize(_comm, _src_rank))); 
     271      CMPIManager::ReceiveLinearBuffer(_comm, _src_rank, *buff_ptr); 
     272      return (buff_ptr); 
     273   } 
     274    
     275   void CMPIManager::ReceiveCircularBuffer(MPI_Comm _comm, int _src_rank, CCircularBuffer & _cbuffer) 
     276   { 
     277      std::size_t data_size  = CMPIManager::GetReceivedDataSize(_comm, _src_rank); 
     278      std::size_t data_begin = buff.prepareNextDataPosition(data_size); 
     279      CMPIManager::Receive(comm, src_rank, buff.getData(data_begin)); 
     280      _cbuffer.updateNbRequests(data_begin, data_begin + data_size); 
     281   } 
    259282 
    260283   // ---------------------- Mémoire (non fonctionnel ....) -------------------- 
  • XMLIO_V2/dev/dev_rv/src4/xmlio/mpi/mpi_interface.hpp

    r256 r267  
    100100         public : // Communication 'complexe' 
    101101          
    102             // static void SendLinearBuffer(MPIComm comm, int dest_rank, CLinearBuffer & buff, MPIRequest & request); 
    103             // static void ReceiveLinearBuffer(MPIComm comm, int src_rank, CLinearBuffer & buff); 
    104             // static boost::shared_ptr<CLinearBuffer> ReceiveLinearBuffer(MPIComm comm, int src_rank); 
    105             // static void ReceiveCircularBuffer(MPIComm comm, int src_rank, CCircularBuffer & buff); 
     102            static void SendLinearBuffer(MPI_Comm _comm, int _dest_rank, CLinearBuffer & _lbuffer, MPI_Request & _request); 
     103            static void ReceiveLinearBuffer(MPI_Comm _comm, int _src_rank, CLinearBuffer & _lbuffer); 
     104            static boost::shared_ptr<CLinearBuffer> ReceiveLinearBuffer(MPI_Comm _comm, int _src_rank); 
     105            static void ReceiveCircularBuffer(MPI_Comm _comm, int _src_rank, CCircularBuffer & _cbuffer); 
    106106 
    107107         public : // Mémoire (non fonctionnel ....) 
Note: See TracChangeset for help on using the changeset viewer.