PaCO++  0.05
Schedule.h
Go to the documentation of this file.
00001 #ifndef SCHEDULE_BLOC_1D_IS_DEFINED
00002 #define SCHEDULE_BLOC_1D_IS_DEFINED
00003 
00004 #include <vector>
00005 #include <Abstrait.h>
00006 
00007 #include "Type.h"
00008 #include <vector>
00009 #include <iostream>
00010 
00011 using namespace std;
00012 
00014 
00015 // vOut represents what localData/stopo have to send to nodes of dtopo (vOut[].rank is in dtopo space)
00016 void computeSendBlock1D(const GlobalData_t& gd, const LocalData_t &sd, 
00017          const Topology_t &stopo, const Topology_t &dtopo,
00018          const ParisBlock_param_t* param, vector<LocalData_t>& vOut);
00019 
00020 // vOut represents what localData/dtopo have to receive from nodes of stopo (vOut[].rank is in stopo space)
00021 void computeReceiveBlock1D(const GlobalData_t& gd, const LocalData_t &dd, 
00022             const Topology_t &stopo, const Topology_t &dtopo,
00023             const ParisBlock_param_t* param, vector<LocalData_t>& vOut);
00024 
00025 // vOut represents what localData/stopo have to send to nodes of dtopo (vOut[].rank is in dtopo space)
00026 void computeSendRemoteDataBlock1D(const GlobalData_t& gd, const LocalData_t &sd, 
00027               const Topology_t &stopo, const Topology_t &dtopo,
00028               vector<LocalData_t>& vOut, const PaCO::distLoc_t mode);
00029 
00030 
00034 
00035 void computeSendDataBlock1D(const GlobalData_t& gd, const LocalData_t &sd, 
00036              const Topology_t &stopo, const Topology_t &dtopo, const ParisBlock_param_t* param,
00037              vAbstrait& vdarray, vector<unsigned>& destid,
00038              const PaCO::distLoc_t& mode, void* comm);
00039 
00040 bool computeReceiveDataBlock1D(vAbstrait* sdata, const PaCO::distLoc_t& mode,
00041                 const unsigned total, const unsigned rank, const ParisBlock_param_t* param,
00042                 /*out*/ Abstrait* varray, void* comm);
00043 
00047 
00048 void doSchedule(const GlobalData_t& gd, const LocalData_t& ld, const Topology_t &ctopo,
00049       vector<LocalData_t>& sched_send, vector<LocalData_t>& sched_recv, void* comm);
00050 
00054 
00055 unsigned nbofPart(const PaCO::distLoc_t& mode, const unsigned stotal, const unsigned dtotal, const unsigned drank);
00056 unsigned posofPart(const PaCO::distLoc_t& mode, const unsigned dtotal, const unsigned srank);
00057 
00058 #endif