source: XIOS/dev/XIOS_DEV_CMIP6/src/distribution.cpp @ 1474

Last change on this file since 1474 was 1129, checked in by mhnguyen, 7 years ago

Updating two-level server.
Each client now can play the role of server: It can forward data to other clients or write data like a server.
Each client must combine all data received from other client(s) before forward them or write them on files

+) Correct some bugs of exchange data_index in domain and axis
+) Reorder some functions in context.cpp to make sure that all necessary attributes are available before computing index
+) Add the mapping index for client to write data.

Test
+) On Curie
+) test_client and test_complete
+) Mode:

  • Only one level: Correct
  • Two levels: Work if using ddt (bug)

+) Only zoom is tested but other transformations should work
+) No reading test

File size: 699 bytes
Line 
1/*!
2   \file distribution.hpp
3   \author Ha NGUYEN
4   \since 13 Jan 2015
5   \date 09 Feb 2015
6
7   \brief Index distribution on server side.
8 */
9#include "distribution.hpp"
10
11namespace xios {
12
13CDistribution::CDistribution(int rank, int dims, const CArray<size_t,1>& globalIndex)
14  : rank_(rank), dims_(dims), globalIndex_(globalIndex.shape())
15{
16  if (0 != globalIndex.numElements())
17    globalIndex_ = globalIndex;
18}
19
20const CArray<size_t,1>& CDistribution:: getGlobalIndex() const 
21{ 
22  return globalIndex_; 
23}
24
25CDistribution::~CDistribution()
26{ /* Nothing to do */ }
27
28int CDistribution::getDims() const
29{
30  return dims_;
31}
32
33int CDistribution::getRank() const
34{
35  return rank_;
36}
37
38} // namespace xios
Note: See TracBrowser for help on using the repository browser.