Last change
on this file since 2236 was
2236,
checked in by ymipsl, 3 years ago
|
Fix problem in remoteConnector when computing grid to sent to server.
Some optimisations when grid is not distributed need knowledge of the workflow view.
New CGridClientServerConnector class created based on CGridRemoteConnector.
YM
|
-
Property svn:eol-style set to
native
-
Property svn:executable set to
*
|
File size:
1.3 KB
|
Line | |
---|
1 | #include "grid_client_server_remote_connector.hpp" |
---|
2 | |
---|
3 | namespace xios |
---|
4 | { |
---|
5 | /** |
---|
6 | * \brief class constructor. |
---|
7 | * \param srcView List of sources views. |
---|
8 | * \param dstView List of remotes views. |
---|
9 | * \param localComm Local MPI communicator |
---|
10 | * \param remoteSize Size of the remote communicator |
---|
11 | */ |
---|
12 | CGridClientServerRemoteConnector::CGridClientServerRemoteConnector(vector<CLocalView*>& srcFullView, vector<CLocalView*>& srcWorkflowView, vector<CDistributedView*>& dstView, MPI_Comm localComm, int remoteSize) |
---|
13 | : CGridRemoteConnector(srcFullView, dstView, localComm, remoteSize) , srcWorkflowView_(srcWorkflowView) |
---|
14 | {} |
---|
15 | |
---|
16 | |
---|
17 | void CGridClientServerRemoteConnector::computeConnector(void) |
---|
18 | { |
---|
19 | CGridRemoteConnector workflowRemoteConnector(srcWorkflowView_,dstView_,localComm_,remoteSize_) ; |
---|
20 | workflowRemoteConnector.computeConnector() ; |
---|
21 | computeViewDistribution() ; |
---|
22 | |
---|
23 | for(int i=0;i<srcView_.size();i++) isSrcViewDistributed_[i] = isSrcViewDistributed_[i] || workflowRemoteConnector.getIsSrcViewDistributed()[i] ; |
---|
24 | computeConnectorMethods() ; |
---|
25 | computeRedondantRanks() ; |
---|
26 | |
---|
27 | for(auto& rank : rankToRemove_) |
---|
28 | if (workflowRemoteConnector.getRankToRemove().count(rank)!=0) |
---|
29 | for(auto& element : elements_) element.erase(rank) ; |
---|
30 | } |
---|
31 | |
---|
32 | } |
---|
Note: See
TracBrowser
for help on using the repository browser.