Ignore:
Timestamp:
10/21/11 19:01:35 (13 years ago)
Author:
ymipsl
Message:

reprise en main de la version de H. Ozdoba. Correction de différentes erreurs de conception et bug.
Version NEMO operationnel en client/server, interoperabilita avec OASIS, reconstition de fichiers via netcdf4/HDF5

YM

Location:
XMLIO_V2/dev/common/src/xmlio/manager
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/common/src/xmlio/manager/mpi_manager.cpp

    r274 r286  
    1212  
    1313// XMLIOServer headers 
     14#include "xmlioserver.hpp" 
    1415#include "mpi_manager.hpp" 
     16#include "oasis_cinterface.hpp" 
    1517 
    1618 
     
    2123 
    2224   // ---------------------- Initialisation & Finalisation --------------------- 
     25 
     26   bool CMPIManager::Initialized=false ; 
     27   MPI_Comm CMPIManager::CommClient ; 
     28   MPI_Comm CMPIManager::CommServer ; 
     29   MPI_Comm CMPIManager::CommClientServer ; 
     30   int CMPIManager::NbClient ; 
     31   int CMPIManager::NbServer ;    
     32   bool CMPIManager::_IsClient ; 
     33   bool CMPIManager::_IsServer ;    
     34   bool CMPIManager::using_server ; 
     35   bool CMPIManager::using_oasis ; 
     36 
    2337 
    2438   void CMPIManager::Initialise(int * _argc, char *** _argv) 
     
    3145         if (MPI_Init(_argc, _argv) != MPI_SUCCESS) 
    3246            ERROR("CMPIManager::Initialise(arc, argv)", << " MPI Error !"); 
    33       } 
    34  
    35    } 
    36     
     47         Initialized=true ; 
     48      } 
     49 
     50   } 
     51   void CMPIManager::InitialiseClient(int * _argc, char *** _argv) 
     52   { 
     53      int flag = 0; 
     54      using_oasis=CObjectFactory::GetObject<CVariable>("xios","using_oasis")->getData<bool>() ;  
     55      using_server=CObjectFactory::GetObject<CVariable>("xios","using_server")->getData<bool>();  
     56 
     57      Initialized=false ; 
     58 
     59      if (MPI_Initialized(&flag) != MPI_SUCCESS) 
     60         ERROR("CMPIManager::Initialise(arc, argv)", << " MPI Error !"); 
     61 
     62      if (!flag) 
     63      { 
     64         if (using_oasis)  
     65         { 
     66           StdString oasisClientId=CObjectFactory::GetObject<CVariable>("xios","client_id")->getData<StdString>(); 
     67           oasis_init(oasisClientId) ; 
     68         } 
     69         else 
     70         {         
     71           if (MPI_Init(_argc, _argv) != MPI_SUCCESS) 
     72            ERROR("CMPIManager::Initialise(arc, argv)", << " MPI Error !"); 
     73         } 
     74         Initialized=true ; 
     75       } 
     76 
     77   } 
     78    
     79   void CMPIManager::InitialiseServer(int * _argc, char *** _argv) 
     80   { 
     81      int flag = 0; 
     82       
     83      using_oasis=CObjectFactory::GetObject<CVariable>("xios","using_oasis")->getData<bool>();  
     84      using_server=CObjectFactory::GetObject<CVariable>("xios","using_server")->getData<bool>();  
     85    
     86      if (using_oasis) 
     87      { 
     88         StdString oasisServerId=CObjectFactory::GetObject<CVariable>("xios","server_id")->getData<StdString>();  
     89         oasis_init(oasisServerId) ; 
     90      } 
     91      else 
     92      { 
     93         if (MPI_Init(_argc, _argv) != MPI_SUCCESS) 
     94            ERROR("CMPIManager::Initialise(arc, argv)", << " MPI Error !"); 
     95      } 
     96      Initialized=true ; 
     97   } 
     98     
    3799   void CMPIManager::Finalize(void) 
    38100   { 
    39       if (MPI_Finalize() != MPI_SUCCESS) 
    40          ERROR("CMPIManager::Finalize(void)", << " MPI Error !"); 
     101      if (Initialized) 
     102      { 
     103        if (using_oasis) oasis_finalize() ; 
     104        else if (MPI_Finalize() != MPI_SUCCESS) 
     105                ERROR("CMPIManager::Finalize(void)", << " MPI Error !"); 
     106      } 
    41107   } 
    42108    
     
    86152                                    MPI_Comm   _comm_parent) 
    87153   { 
     154      if (_is_server) { _IsServer=true ; _IsClient=false ; } 
     155      else { _IsServer=false ; _IsClient=true; } 
     156 
     157      if (_is_server) 
     158      { 
     159        if (using_oasis) 
     160        { 
     161          StdString oasisClientId=CObjectFactory::GetObject<CVariable>("xios","client_id")->getData<StdString>() ; 
     162          oasis_get_intracomm(_comm_parent,oasisClientId) ; 
     163        } 
     164        else _comm_parent=MPI_COMM_WORLD ; 
     165      } 
     166      else 
     167      { 
     168        if (!using_server) 
     169        { 
     170          NbClient=GetCommSize(_comm_parent) ; 
     171          NbServer=0 ; 
     172          _comm_server = _comm_client = _comm_parent ; 
     173          CommClient=_comm_client ; 
     174          CommServer=_comm_server ; 
     175          CommClientServer=_comm_client_server ; 
     176           return false ; 
     177        } 
     178        if (using_oasis)   
     179        { 
     180          StdString oasisServerId=CObjectFactory::GetObject<CVariable>("xios","server_id")->getData<StdString>() ; 
     181          oasis_get_intracomm(_comm_parent,oasisServerId) ; 
     182        } 
     183      }     
     184       
     185       
    88186      int value = (_is_server) ? 1 : 2; 
    89       std::size_t nbClient = 0, nbServer = 0, nbClientByServer = 0; 
     187      std::size_t nbClient = 0, nbServer = 0 ; 
     188      std::vector<int> nbClientByServer ; 
     189       
    90190      std::vector<int> info, rank_client, rank_server; 
    91191      CMPIManager::AllGather(value, info, _comm_parent); 
     
    99199      nbServer = rank_server.size(); 
    100200       
     201      NbClient=nbClient ; 
     202      NbServer=nbServer ; 
     203       
    101204      if (nbClient == 0) 
    102205         ERROR("CMPIManager::DispatchClient()", << " Aucun client disponible !"); 
     
    104207 
    105208      _comm_client = CMPIManager::CreateComm(CMPIManager::CreateSubGroup( 
    106                      CMPIManager::GetGroupWorld(), rank_client), _comm_parent); 
     209                     CMPIManager::GetGroup(_comm_parent), rank_client), _comm_parent); 
    107210 
    108211      if (nbServer != 0) 
    109212      { 
    110213         std::size_t currentServer = 0; 
    111          nbClientByServer = nbClient/nbServer; 
     214          
     215//         nbClientByServer = nbClient/nbServer; 
    112216         _comm_server = CMPIManager::CreateComm(CMPIManager::CreateSubGroup( 
    113                         CMPIManager::GetGroupWorld(), rank_server), _comm_parent); 
    114  
    115          //std::cout << nbClient << "," << nbServer  << "," << nbClientByServer << std::endl; 
    116  
    117          for (std::size_t mm = 0; mm < nbClient; mm += nbClientByServer) 
     217                        CMPIManager::GetGroup(_comm_parent), rank_server), _comm_parent); 
     218 
     219         for(std::size_t mm=0;mm<nbServer;mm++)  
     220         { 
     221           int x=nbClient/nbServer ; 
     222           if (mm<nbClient%nbServer) x++ ; 
     223           nbClientByServer.push_back(x) ; 
     224         } 
     225 
     226         for (std::size_t mm = 0; mm < nbClient; mm += nbClientByServer[currentServer],currentServer++ ) 
    118227         { 
    119228            std::vector<int> group_rank; 
    120             group_rank.push_back(rank_server[currentServer++]); 
    121             for (std::size_t nn = 0; nn < nbClientByServer; nn++) 
     229            group_rank.push_back(rank_server[currentServer]); 
     230            for (std::size_t nn = 0; nn < nbClientByServer[currentServer]; nn++) 
    122231               group_rank.push_back(rank_client[nn+mm]); 
    123232            MPI_Comm comm_client_server_ = CMPIManager::CreateComm(CMPIManager::CreateSubGroup( 
    124                                            CMPIManager::GetGroupWorld(), group_rank), _comm_parent); 
     233                                           CMPIManager::GetGroup(_comm_parent), group_rank), _comm_parent); 
    125234 
    126235            if (std::find(group_rank.begin(), group_rank.end(), 
     
    132241            group_rank.clear(); 
    133242         } 
     243         CommClient=_comm_client ; 
     244         CommServer=_comm_server ; 
     245         CommClientServer=_comm_client_server ; 
    134246         return (true); 
    135247      } 
     
    137249      { 
    138250         _comm_server = _comm_client; 
     251         CommClient=_comm_client ; 
     252         CommServer=_comm_server ; 
     253         CommClientServer=_comm_client_server ; 
    139254         return (false); 
    140255      } 
     
    149264      if (MPI_Comm_group(MPI_COMM_WORLD, &group) != MPI_SUCCESS) 
    150265         ERROR("CMPIManager::GetGroupWorld()", << " MPI Error !"); 
     266      return (group); 
     267   } 
     268 
     269   MPI_Group CMPIManager::GetGroup(MPI_Comm comm) 
     270   { 
     271      MPI_Group group = 0; 
     272      if (MPI_Comm_group(comm, &group) != MPI_SUCCESS) 
     273         ERROR("CMPIManager::GetGroup()", << " MPI Error !"); 
    151274      return (group); 
    152275   } 
  • XMLIO_V2/dev/common/src/xmlio/manager/mpi_manager.hpp

    r268 r286  
    5252          
    5353            static void Initialise(int * argc, char *** argv); 
     54            static void InitialiseClient(int * argc, char *** argv); 
     55            static void InitialiseServer(int * argc, char *** argv); 
    5456            static void Finalize(void); 
    5557 
     
    5759          
    5860          
    59             static inline int GetCommRank(MPIComm _comm)             
    60             { return (CMPIManager::GetCommRank(MPI_Comm_f2c(_comm))); }    
    61                      
    62             static inline int GetCommSize(MPIComm _comm)             
    63             { return (CMPIManager::GetCommSize(MPI_Comm_f2c(_comm))); } 
    64              
    65             static inline MPIComm GetCommWorld(void)             
    66             { return (MPI_Comm_c2f(MPI_COMM_WORLD)); } 
    67              
    68             static inline MPIComm CreateComm(MPI_Group _group, MPIComm _pcomm = CMPIManager::GetCommWorld()) 
    69             { return (MPI_Comm_c2f(CMPIManager::CreateComm( _group, MPI_Comm_f2c(_pcomm)))); }      
     61            
     62            static inline MPI_Comm GetCommWorld(void)             
     63            { return (MPI_COMM_WORLD); } 
    7064             
    7165            static int GetCommRank(MPI_Comm _comm = MPI_COMM_WORLD); 
    7266            static int GetCommSize(MPI_Comm _comm = MPI_COMM_WORLD);        
    7367             
    74             static MPI_Comm CreateComm(MPI_Group _group, MPI_Comm _pcomm); 
     68            static MPI_Comm CreateComm(MPI_Group _group, MPI_Comm _pcomm=MPI_COMM_WORLD); 
     69 
     70            static inline MPI_Comm GetCommClient(void)  
     71            { return CommClient; }    
     72            static inline MPI_Comm GetCommServer(void)  
     73            { return CommServer; }    
     74            static inline MPI_Comm GetCommClientServer(void)              
     75            { return CommClientServer; }    
     76            static inline int GetNbClient(void)              
     77            { return NbClient; }    
     78            static inline int GetNbServer(void)              
     79            { return NbServer; }    
     80 
     81            static inline bool IsConnected(void)              
     82            { return (NbServer==0)?true:false; }    
     83 
     84            static inline bool IsClient(void)              
     85            { return _IsClient; }    
     86 
     87            static inline bool IsServer(void)              
     88            { return _IsServer; }    
    7589 
    7690         public : // Autre 
     
    7892            static void Barrier(MPI_Comm _comm = MPI_COMM_WORLD); 
    7993             
    80             static inline bool DispatchClient(bool       _is_server, 
    81                                               MPIComm & _comm_client, 
    82                                               MPIComm & _comm_client_server, 
    83                                               MPIComm & _comm_server, 
    84                                               MPIComm   _comm_parent =  CMPIManager::GetCommWorld()) 
    85             { 
    86                MPI_Comm comm_client        = MPI_Comm_f2c(_comm_client); 
    87                MPI_Comm comm_client_server = MPI_Comm_f2c(_comm_client_server); 
    88                MPI_Comm comm_server        = MPI_Comm_f2c(_comm_server); 
    89                MPI_Comm comm_parent        = MPI_Comm_f2c(_comm_parent); 
    90                bool ret = CMPIManager::DispatchClient(_is_server, comm_client, comm_client_server, comm_server, comm_parent); 
    91                _comm_client        = MPI_Comm_c2f(comm_client); 
    92                _comm_client_server = MPI_Comm_c2f(comm_client_server); 
    93                _comm_server        = MPI_Comm_c2f(comm_server);  
    94                return (ret);                           
    95             } 
    96                                        
    97              
    9894            static bool DispatchClient(bool       _is_server, 
    9995                                       MPI_Comm & _comm_client, 
    10096                                       MPI_Comm & _comm_client_server, 
    10197                                       MPI_Comm & _comm_server, 
    102                                        MPI_Comm   _comm_parent = MPI_COMM_WORLD); 
     98                                       MPI_Comm _comm_parent); 
    10399 
    104100         public : // Groupes 
    105101          
    106102            static MPI_Group GetGroupWorld(void); 
     103            static MPI_Group GetGroup(MPI_Comm Comm); 
    107104            static MPI_Group CreateSubGroup(MPI_Group _pgroup, const std::vector<int> & _ranks); 
    108105            static MPI_Group CreateSubGroup(MPI_Group _pgroup, int _min_rank, int _max_rank, int _intval = 1); 
     
    110107         public : // Tests  
    111108          
    112             static inline bool IsMaster(MPIComm _comm) 
    113             { return (CMPIManager::IsMaster(MPI_Comm_f2c(_comm))); } 
    114              
    115             static inline bool IsRank(int _rank, MPIComm _comm) 
    116             { return (CMPIManager::IsRank(_rank, MPI_Comm_f2c(_comm))); } 
     109        
    117110          
    118111            static bool IsMaster(MPI_Comm _comm = MPI_COMM_WORLD); 
     
    126119            static bool Test (MPI_Request & _request); 
    127120 
    128  
    129             static inline bool HasReceivedData(MPIComm _comm, int _src_rank) 
    130             { return (CMPIManager::HasReceivedData(MPI_Comm_f2c(_comm), _src_rank));  } 
    131              
    132             static inline std::size_t GetReceivedDataSize(MPIComm _comm, int _src_rank) 
    133             { return (CMPIManager::GetReceivedDataSize(MPI_Comm_f2c(_comm), _src_rank)); } 
    134              
    135              
    136121             
    137122            static bool HasReceivedData(MPI_Comm _comm, int _src_rank); 
    138123             
    139124            static std::size_t GetReceivedDataSize(MPI_Comm _comm, int _src_rank); 
     125 
    140126            static void Receive(MPI_Comm _comm, int _src_rank, char * _data); 
    141127             
     
    150136         public : // Communication 'complexe' 
    151137          
    152             static inline void SendLinearBuffer(MPIComm _comm, int _dest_rank, CLinearBuffer & _lbuffer, MPI_Request & _request) 
    153             { CMPIManager::SendLinearBuffer(MPI_Comm_f2c(_comm), _dest_rank, _lbuffer, _request); } 
    154              
    155             static inline void ReceiveLinearBuffer(MPIComm _comm, int _src_rank, CLinearBuffer & _lbuffer) 
    156             { CMPIManager::ReceiveLinearBuffer(MPI_Comm_f2c(_comm), _src_rank, _lbuffer); } 
    157              
    158             static inline boost::shared_ptr<CLinearBuffer> ReceiveLinearBuffer(MPIComm _comm, int _src_rank) 
    159             { return (CMPIManager::ReceiveLinearBuffer(MPI_Comm_f2c(_comm), _src_rank)); } 
    160              
    161             static inline void ReceiveCircularBuffer(MPIComm _comm, int _src_rank, CCircularBuffer & _cbuffer) 
    162             { CMPIManager::ReceiveCircularBuffer(MPI_Comm_f2c(_comm), _src_rank, _cbuffer); } 
    163              
    164           
     138 
    165139            static void SendLinearBuffer(MPI_Comm _comm, int _dest_rank, CLinearBuffer & _lbuffer, MPI_Request & _request); 
    166140            static void ReceiveLinearBuffer(MPI_Comm _comm, int _src_rank, CLinearBuffer & _lbuffer); 
     
    175149            static void FreeMemory (void * _data); 
    176150          
     151          private : 
     152           
     153            static bool Initialized ; 
     154            static MPI_Comm CommClient ; 
     155            static MPI_Comm CommServer ; 
     156            static MPI_Comm CommClientServer ; 
     157            static int NbClient ; 
     158            static int NbServer ; 
     159 
     160            static bool _IsClient ; 
     161            static bool _IsServer ; 
     162            static bool using_server ; 
     163            static bool using_oasis ; 
     164             
    177165      }; // class CMPIManager 
    178166       
  • XMLIO_V2/dev/common/src/xmlio/manager/tree_manager.cpp

    r274 r286  
    129129                   
    130130                   
    131 //         std::cout << "Nombre de contexte :" << ctxtnb << std::endl; 
    132131 
    133132         for (StdSize i = 0; i < ctxtnb; i++) 
     
    148147               is.read (const_cast<char *>(id.data()), size * sizeof(char)); 
    149148                
    150 //               std::cout << "context ::::" << id << std::endl; 
    151149                
    152150               CTreeManager::SetCurrentContextId(id);                
     
    187185         os.write (reinterpret_cast<const char*>(&genum) , sizeof(ENodeType));  
    188186         os.write (reinterpret_cast<const char*>(&size) , sizeof(StdSize)); 
    189           
     187 
    190188         for (StdSize i = 0; i < size; i++) 
    191189         { 
     
    232230                      
    233231                  os.write (reinterpret_cast<const char*>(&idsize), sizeof(StdSize)); 
    234                   os.write (id.data(), idsize * sizeof(char));          
     232                  os.write (id.data(), idsize * sizeof(char));   
    235233               }          
    236234               domain->toBinary(os);                
     
    273271         const StdSize size = def_vector.size();   
    274272                   
    275          is.read (reinterpret_cast<char*>(&renum), sizeof(StdSize));    
    276          is.read (reinterpret_cast<char*>(&ctxtnb), sizeof(ENodeType)); 
     273         is.read (reinterpret_cast<char*>(&renum), sizeof(ENodeType));    
     274         is.read (reinterpret_cast<char*>(&ctxtnb), sizeof(StdSize)); 
    277275 
    278276         if (renum != CContextGroup::GetType()) 
     
    282280         if (size != ctxtnb) 
    283281            ERROR("CTreeManager::DomainsFromBinary(StdIStream & is)", 
    284                   << "[ size = " << size << "] Bad context group size !"); 
     282                  << "[ size = " << size << "] != "<<ctxtnb<<" : Bad context group size !"); 
    285283                   
    286284         for (StdSize i = 0; i < ctxtnb; i++) 
     
    330328                      
    331329            // Lecture successive des informations binaires de domaine. 
     330               
    332331            for (StdSize j = 0; j < alldomain_size; j++) 
    333332            { 
     
    352351                  if (domain->getId().compare(id) != 0) 
    353352                     ERROR("CTreeManager::DomainsFromBinary(StdIStream & is)", 
    354                            << "[ id = " << id << "] Bad id !");  
     353                           << "[ id = " <<  id <<" != "<<domain->getId()<< "] Bad id !");  
    355354               } 
    356355               domain->fromBinary(is); 
     
    380379                  if (grid->getId().compare(id) != 0) 
    381380                     ERROR("CTreeManager::DomainsFromBinary(StdIStream & is)", 
    382                            << "[ id = " << id << "] Bad id !");  
     381                           << "[ id = " << id <<" != "<<grid->getId()<< "] Bad id !");  
    383382               } 
    384383               grid->fromBinary(is); 
  • XMLIO_V2/dev/common/src/xmlio/manager/xios_manager.cpp

    r278 r286  
    1717         { 
    1818            // Initialisation de la biliothÚque MPI si nécessaire 
    19             comm::CMPIManager::Initialise(argc, argv); 
     19            comm::CMPIManager::InitialiseServer(argc, argv); 
    2020            ExeName = StdString((*argv)[0]); 
    2121            for (int i = 1; i < *argc; i++) 
     
    4343 
    4444      StdString     CXIOSManager::ClientName("unknown name"); 
    45       comm::MPIComm CXIOSManager::Comm_Client_Server = -1; 
    46       comm::MPIComm CXIOSManager::Comm_Server = -1; 
     45      MPI_Comm CXIOSManager::Comm_Client_Server = MPI_COMM_NULL; 
     46      MPI_Comm CXIOSManager::Comm_Server = MPI_COMM_NULL; 
    4747 
    4848      xios_map<StdString, CXIOSManager::XIOSClient> CXIOSManager::Clients; 
     
    5151       
    5252      void CXIOSManager::RunServer 
    53          (StdString clientName, comm::MPIComm comm_client_server, comm::MPIComm comm_server) 
     53         (StdString clientName, MPI_Comm comm_client_server, MPI_Comm comm_server) 
    5454      { 
    5555         using namespace comm; 
     
    6969         // La quasi-totalité de l'arborescence est obtenue depuis les informations 
    7070         // fournies par le client 1 du sous-groupe. 
    71          StdString main_data_tree = clientBuffer[0]->getString(0);         
     71/*         StdString main_data_tree = clientBuffer[0]->getString(0);         
    7272         tree::CTreeManager::FromBinary(main_data_tree); 
    7373          
     
    7878            tree::CTreeManager::DomainsFromBinary(main_data_tree); 
    7979         } 
     80*/ 
     81 
     82         // Obtention des sous-domaines clients. 
     83         for (StdSize j = 0; j < clientBuffer.size(); j++) 
     84         { 
     85             StdString main_data_tree = clientBuffer[j]->getString(0); 
     86            tree::CTreeManager::FromBinary(main_data_tree); 
     87         } 
     88 
    8089          
    8190         StdOStringStream osss; 
     
    111120      //-------------------------------------------------------------- 
    112121       
    113       void CXIOSManager::ShowInformation_CS(comm::MPIComm comm_client_server) 
     122      void CXIOSManager::ShowInformation_CS(MPI_Comm comm_client_server) 
    114123      { 
    115124         using namespace comm; 
     
    149158         } 
    150159 
    151          comm::CMPIManager::Barrier(); 
     160         comm::CMPIManager::Barrier(comm_client_server); 
    152161          
    153162      } 
     
    155164      //-------------------------------------------------------------- 
    156165       
    157       void CXIOSManager::RunClientServer(comm::MPIComm comm_client_server) 
     166      void CXIOSManager::RunClientServer(MPI_Comm comm_client_server) 
    158167      { 
    159168         using namespace comm; 
     
    171180          
    172181         bool isClient = true, isIncl = false, isIncl_ = false; 
    173          MPIComm comm_client = 0, comm_client_grp = 0; comm_client_server = 0; 
     182         MPI_Comm comm_client = 0, comm_client_grp = 0; comm_client_server = 0; 
    174183 
    175184         for (;iit != eend; iit++) 
     
    187196            { 
    188197               end = start + nbClientPServer; 
    189                MPIComm comm_  =  CMPIManager::CreateComm 
     198               MPI_Comm comm_  =  CMPIManager::CreateComm 
    190199                  (CMPIManager::CreateSubGroup(CMPIManager::GetGroupWorld(), start, end)); 
    191                MPIComm comm__ =  CMPIManager::CreateComm 
     200               MPI_Comm comm__ =  CMPIManager::CreateComm 
    192201                  (CMPIManager::CreateSubGroup(CMPIManager::GetGroupWorld(), start+1, end)); 
    193202                   
     
    212221               if (clieindex.size() == nbClient) 
    213222               { 
    214                   MPIComm comm___ = CMPIManager::CreateComm 
     223                  MPI_Comm comm___ = CMPIManager::CreateComm 
    215224                  (CMPIManager::CreateSubGroup(CMPIManager::GetGroupWorld(), clieindex)); 
    216225                  if (isIncl) comm_client = comm___; 
     
    221230               start = start + nbClientPServer + 1; 
    222231            } 
    223             MPIComm comm____ = CMPIManager::CreateComm 
     232            MPI_Comm comm____ = CMPIManager::CreateComm 
    224233               (CMPIManager::CreateSubGroup(CMPIManager::GetGroupWorld(), servindex)); 
    225234            if (isIncl_) CXIOSManager::Comm_Server = comm____;                
     
    245254      //--------------------------------------------------------------- 
    246255       
    247       void CXIOSManager::RunClient(bool launch, comm::MPIComm comm_client) 
     256      void CXIOSManager::RunClient(bool launch, MPI_Comm comm_client) 
    248257      { 
    249258         if (launch) 
     
    263272 
    264273      void CXIOSManager::AddClient(StdString clientName, StdSize nbClient, StdSize nbClientPServer, 
    265                                    void (*entry_point)(comm::MPIComm, comm::MPIComm, comm::MPIComm)) 
     274                                   void (*entry_point)(MPI_Comm, MPI_Comm, MPI_Comm)) 
    266275      { 
    267276         StdSize nbprocess  = comm::CMPIManager::GetCommSize(comm::CMPIManager::GetCommWorld()); 
  • XMLIO_V2/dev/common/src/xmlio/manager/xios_manager.hpp

    r278 r286  
    2525            StdSize nbClient; 
    2626            StdSize nbClientPServer; 
    27             void (*entry)(comm::MPIComm, comm::MPIComm, comm::MPIComm) ; 
     27            void (*entry)(MPI_Comm, MPI_Comm, MPI_Comm) ; 
    2828         } XIOSClient; 
    2929          
     
    3838         /// Ajout de client en mode CLIENT_SERVER et CLIENT/// 
    3939         static void AddClient(StdString clientName, StdSize nbClient, StdSize nbClientPServer, 
    40                                void (*entry_point)(comm::MPIComm, comm::MPIComm, comm::MPIComm)); 
     40                               void (*entry_point)(MPI_Comm, MPI_Comm, MPI_Comm)); 
    4141 
    4242         /// Lancement des serveurs et/ou des clients /// 
    43          static void RunServer(StdString clientName, 
    44                                comm::MPIComm comm_client_server, comm::MPIComm comm_server); 
    45          static void RunClient(bool launch = false, comm::MPIComm comm_client = 
    46                                                     comm::CMPIManager::GetCommWorld()); 
    47          static void RunClientServer(comm::MPIComm comm_client_server = 
    48                                      comm::CMPIManager::GetCommWorld()); 
     43         static void RunServer(StdString clientName,MPI_Comm comm_client_server,MPI_Comm comm_server); 
     44         static void RunClient(bool launch = false, MPI_Comm comm_client = comm::CMPIManager::GetCommWorld()); 
     45         static void RunClientServer(MPI_Comm comm_client_server = comm::CMPIManager::GetCommWorld()); 
    4946 
    5047      public : 
     
    6663       
    6764         /// Information /// 
    68          static void ShowInformation_CS(comm::MPIComm comm_client_server); 
     65         static void ShowInformation_CS(MPI_Comm comm_client_server); 
    6966 
    7067         /// Variables statiques privées /// 
     
    7572         static XIOSStatus Status; 
    7673         static StdString  ClientName; 
    77          static comm::MPIComm Comm_Client_Server, Comm_Server; 
     74         static MPI_Comm Comm_Client_Server, Comm_Server; 
    7875         static xios_map<StdString, XIOSClient> Clients; 
    7976 
Note: See TracChangeset for help on using the changeset viewer.