Changeset 1847 for XIOS/dev/dev_ym/XIOS_COUPLING/src/node/grid.hpp
- Timestamp:
- 01/06/20 14:46:09 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/grid.hpp
r1794 r1847 315 315 // Maybe we need a flag to determine whether a client wants to write. TODO " 316 316 317 /** Map storing received data on server side. This map is the equivalent of storeIndex_client, but for data not received from model318 * instead that f or client. This map is used to concatenate data received from several clients into a single array on server side317 /** Map storing received data on server side. This map is the equivalent to the storeIndex_client, but for data received from client 318 * instead that from model. This map is used to concatenate data received from several clients into a single array on server side 319 319 * which match the local workflow grid. 320 320 * outLocalIndexStoreOnClient_[client_rank] -> Array of index from client of rank "client_rank" 321 321 * outLocalIndexStoreOnClient_[client_rank](index of buffer from client) -> local index of the workflow grid 322 322 * The map is created in CGrid::computeClientIndex and filled upon receiving data in CField::recvUpdateData(). 323 * Symetrically it is also used to send data from a server to sev ral client for reading case. */323 * Symetrically it is also used to send data from a server to several client for reading case. */ 324 324 map<int, CArray<size_t, 1> > outLocalIndexStoreOnClient_; 325 325 … … 327 327 /** Indexes calculated based on server-like distribution. 328 328 * They are used for writing/reading data and only calculated for server level that does the writing/reading. 329 * Along with localIndexToWriteOnClient, these indexes are used to correctly place incoming data. */ 330 CArray<size_t,1> localIndexToWriteOnServer; 329 * Along with localIndexToWriteOnClient, these indexes are used to correctly place incoming data. 330 * size of the array : numberWrittenIndexes_ : number of index written in a compressed way 331 * localIndexToWriteOnServer_(compressed_written_index) : -> local uncompressed index that will be written in the file */ 332 CArray<size_t,1> localIndexToWriteOnServer_; 331 333 332 334 /** Indexes calculated based on client-like distribution. 333 335 * They are used for writing/reading data and only calculated for server level that does the writing/reading. 334 * Along with localIndexToWriteOnServer, these indexes are used to correctly place incoming data. */ 335 CArray<size_t,1> localIndexToWriteOnClient; 336 337 CArray<size_t,1> indexFromClients; 338 336 * Along with localIndexToWriteOnServer, these indexes are used to correctly place incoming data. 337 * size of the array : numberWrittenIndexes_ 338 * localIndexToWriteOnClient_(compressed_written_index) -> local index of the workflow grid*/ 339 CArray<size_t,1> localIndexToWriteOnClient_; 339 340 340 341 private: … … 344 345 std::set<CContextClient*> clientsSet; 345 346 346 /** Map storing received indexes. Key = sender rank, value = index array. */ 347 map<int, CArray<size_t, 1> > outGlobalIndexFromClient_; 347 /** Map storing received indexes on server side sent by clients. Key = sender rank, value = global index array. 348 Later, the global indexes received will be mapped onto local index computed with the local distribution. 349 outGlobalIndexFromClient_[rank] -> array of global index send by client of rank "rank" 350 outGlobalIndexFromClient_[rank](n) -> global index of datav n sent by client 351 */ 352 map<int, CArray<size_t, 1> > outGlobalIndexFromClient_; 348 353 349 354 bool isChecked; … … 394 399 bool hasTransform_; 395 400 396 /** Map storing global indexes of server-like (band-wise) distribution for sending to receivers. 397 * Key = size of receiver's intracomm. 401 /** Map storing global indexes of server-like (band-wise) distribution for sending to receivers (client side). 402 * Key = size of receiver's intracomm (i.e. number of servers) 403 * ~ map<int, umap<int, std::vector<size_t> >> globalIndexOnServer_ 404 * globalIndexOnServer_[servers_size] -> map for a distribution of size "servers_size" (number of servers) 405 * globalIndexOnServer_[servers_size][server_rank] -> array of global index managed by server of rank "server_rank" 406 * globalIndexOnServer_[servers_size][server_rank][n] -> global index of data to be send to the server by client based on sub element of the grid. 407 * -> grid masking is not included. 398 408 */ 399 409 // std::map<CContextClient*, CClientServerMapping::GlobalIndexMap> globalIndexOnServer_;
Note: See TracChangeset
for help on using the changeset viewer.