43BbParaNodeMpi::createDatatype(
 
   46   const int nBlocks = 15;
 
   48   MPI_Datatype datatype;
 
   50   MPI_Aint startAddress = 0;
 
   53   int blockLengths[nBlocks];
 
   54   MPI_Aint displacements[nBlocks];
 
   55   MPI_Datatype types[nBlocks];
 
   57   for( 
int i = 0; i < nBlocks; i++ ){
 
   70   displacements[1] = address - startAddress;
 
   75   displacements[2] = address - startAddress;
 
   80   displacements[3] = address - startAddress;
 
   84   types[3] = MPI_LONG_LONG;
 
   90   displacements[4] = address - startAddress;
 
   95   displacements[5] = address - startAddress;
 
  100   displacements[6] = address - startAddress;
 
  105   displacements[7] = address - startAddress;
 
  109   types[7] = MPI_LONG_LONG;
 
  113      MPI_Get_address( &
depth, &address )
 
  115   displacements[8] = address - startAddress;
 
  120   displacements[9] = address - startAddress;
 
  121   types[9] = MPI_DOUBLE;
 
  126   displacements[10] = address - startAddress;
 
  127   types[10] = MPI_DOUBLE;
 
  132   displacements[11] = address - startAddress;
 
  133   types[11] = MPI_DOUBLE;
 
  138   displacements[12] = address - startAddress;
 
  143   displacements[13] = address - startAddress;
 
  148   displacements[14] = address - startAddress;
 
  151         MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
 
  161   const int nBlocks = 8;
 
  163   MPI_Datatype datatype;
 
  165   MPI_Aint startAddress = 0;
 
  166   MPI_Aint address = 0;
 
  168   int blockLengths[nBlocks];
 
  169   MPI_Aint displacements[nBlocks];
 
  170   MPI_Datatype types[nBlocks];
 
  172   for( 
int i = 0; i < nBlocks; i++ ){
 
  180   displacements[0] = 0;
 
  185   displacements[1] = address - startAddress;
 
  190   displacements[2] = address - startAddress;
 
  195   displacements[3] = address - startAddress;
 
  199   types[3] = MPI_LONG_LONG;
 
  205   displacements[4] = address - startAddress;
 
  210   displacements[5] = address - startAddress;
 
  215   displacements[6] = address - startAddress;
 
  220   displacements[7] = address - startAddress;
 
  224   types[7] = MPI_LONG_LONG;
 
  228         MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
 
  243    MPI_Datatype datatype;
 
  246       MPI_Type_commit( &datatype )
 
  252       MPI_Type_free( &datatype )
 
  258      if( commMpi->getRank() != root )
 
  275    MPI_Datatype datatype;
 
  278       MPI_Type_commit( &datatype )
 
  284       MPI_Type_free( &datatype )
 
  299    MPI_Datatype datatype;
 
  302       MPI_Type_commit( &datatype )
 
  308       MPI_Type_free( &datatype )
 
  324    MPI_Datatype datatype;
 
  327       MPI_Type_commit( &datatype )
 
  333       MPI_Type_free( &datatype )
 
  364   MPI_Datatype datatype;
 
  367      MPI_Type_commit( &datatype )
 
  373      MPI_Type_free( &datatype )
 
  393   MPI_Datatype datatype;
 
  396      MPI_Type_commit( &datatype )
 
  402      MPI_Type_free( &datatype )
 
  423   MPI_Datatype datatype;
 
  426      MPI_Type_commit( &datatype )
 
  432      MPI_Type_free( &datatype )
 
BbParaNode extension for MIP communication.
 
int sendSubtreeRootNodeId(ParaComm *comm, int destination, int tag)
send subtree root to be removed
 
MPI_Datatype createDatatype()
create BbParaNode datatype
 
int sendNewSubtreeRoot(ParaComm *comm, int destination)
send new subtree root node
 
int bcast(ParaComm *comm, int root)
broadcast this object
 
int receive(ParaComm *comm, int source)
receive this object
 
MPI_Datatype createDatatypeForNodeId()
create BbParaNode datatype
 
int receiveNewSubtreeRoot(ParaComm *comm, int source)
receive this object
 
int send(ParaComm *comm, int destination)
send this object
 
int receiveSubtreeRootNodeId(ParaComm *comm, int source, int tag)
receive this object
 
double dualBoundValue
dual bound value
 
int mergingStatus
merging status: -1 - no merging node, 0 - checking, 1 - merged (representative) 2 - merged to the oth...
 
double initialDualBoundValue
dual bound value when this node is created This value is updated to precise one when there is guarant...
 
int depth
depth from the root node of original tree
 
int basisInfo
indicate if basis information is including or not
 
Base class of communicator object.
 
virtual int bcast(ParaComm *comm, int root)=0
broadcast function for ParaDiffSubproblem object
 
virtual int send(ParaComm *comm, int dest)=0
send function for ParaDiffSubproblem object
 
virtual int receive(ParaComm *comm, int source)=0
receive function for ParaDiffSubproblem object
 
int diffSubproblemInfo
1: with diffSubproblem, 0: no diffSubproblem
 
ParaDiffSubproblem * diffSubproblem
difference between solving instance data and subproblem data
 
TaskId taskId
solving task information
 
double estimatedValue
estimate value
 
TaskId generatorTaskId
subtree root task id of generator
 
int globalSubtaskIdInLc
Global Subtask ID in Solvers managed by LoadCoordinator.
 
int lcId
LoadCoordinator ID.
 
long long seqNum
sequential number in the subtree
 
SubtaskId subtaskId
subtree id
 
static ScipParaCommTh * comm
 
static const int TagNewSubtreeRootNode
 
#define DEF_PARA_COMM(para_comm, comm)
 
#define MPI_CALL(mpicall)
 
#define PARA_COMM_CALL(paracommcall)