Scippy

UG

Ubiquity Generator framework

paraCommMpi.h File Reference

ParaComm extension for MPI communication. More...

#include <thread>
#include <mutex>
#include <mpi.h>
#include <stdexcept>
#include <iostream>
#include <ostream>
#include <fstream>
#include <sstream>
#include <string>
#include <iomanip>
#include <deque>
#include "paraDef.h"
#include "paraComm.h"
#include "paraInstance.h"
#include "paraDiffSubproblem.h"
#include "paraSolution.h"
#include "paraParamSetMpi.h"
#include "paraTimerMpi.h"

Go to the source code of this file.

Classes

class  ParaCommMpi
 Communicator object for MPI communications. More...
 

Namespaces

 UG
 

Macros

#define MPI_CALL(mpicall)
 
#define TAG_TRACE(call, fromTo, sourceDest, tag)
 
#define DEF_PARA_COMM(para_comm, comm)   ParaCommMpi *para_comm = dynamic_cast< ParaCommMpi* >(comm)
 

Detailed Description

ParaComm extension for MPI communication.

Author
Yuji Shinano

Definition in file paraCommMpi.h.

Macro Definition Documentation

◆ DEF_PARA_COMM

#define DEF_PARA_COMM (   para_comm,
  comm 
)    ParaCommMpi *para_comm = dynamic_cast< ParaCommMpi* >(comm)

Definition at line 485 of file paraCommMpi.h.

◆ MPI_CALL

#define MPI_CALL (   mpicall)
Value:
do \
{ \
int _error_value_; \
_error_value_ = ( mpicall ); \
if( _error_value_ != MPI_SUCCESS ) \
{ \
std::cout << "[MPI ERROR: " << __FILE__ << "] func = " \
<< __func__ << ", line = " << __LINE__ << ": " \
<< "error_code = " << _error_value_ << std::endl; \
MPI_Abort(MPI_COMM_WORLD, 1); \
} \
} while (0)

Definition at line 68 of file paraCommMpi.h.

Referenced by ScipDiffParamSetMpi::bcast(), ScipParaSolutionMpi::bcast(), BbParaNodeMpi::bcast(), ScipParaDiffSubproblemMpi::bcast(), ParaParamSetMpi::bcast(), ScipParaInstanceMpi::bcast(), ParaCommMpi::bcast(), ScipParaRacingRampUpParamSetMpi::createDatatype(), ScipParaSolutionMpi::createDatatype(), BbParaNodeMpi::createDatatype(), BbParaCalculationStateMpi::createDatatype(), BbParaSolverTerminationStateMpi::createDatatype(), BbParaSolverStateMpi::createDatatype(), ScipDiffParamSetMpi::createDatatype1(), ScipParaInitialStatMpi::createDatatype1(), ScipParaInstanceMpi::createDatatype1(), ParaParamSetMpi::createDatatype1(), ScipDiffParamSetMpi::createDatatype2(), ScipParaInitialStatMpi::createDatatype2(), ScipParaInstanceMpi::createDatatype2(), ParaParamSetMpi::createDatatype2(), ScipParaInstanceMpi::createDatatype3(), ScipParaDiffSubproblemMpi::createDatatypeBendersLinearConss1(), ScipParaDiffSubproblemMpi::createDatatypeBendersLinearConss2(), ScipParaDiffSubproblemMpi::createDatatypeBoundChnages(), ScipParaDiffSubproblemMpi::createDatatypeBoundDisjunctions1(), ScipParaDiffSubproblemMpi::createDatatypeBoundDisjunctions2(), ScipParaDiffSubproblemMpi::createDatatypeBranchLinearConss1(), ScipParaDiffSubproblemMpi::createDatatypeBranchLinearConss2(), ScipParaDiffSubproblemMpi::createDatatypeBranchSetppcConss1(), ScipParaDiffSubproblemMpi::createDatatypeBranchSetppcConss2(), ScipParaDiffSubproblemMpi::createDatatypeCounters(), BbParaNodeMpi::createDatatypeForNodeId(), ScipParaDiffSubproblemMpi::createDatatypeLinearConss1(), ScipParaDiffSubproblemMpi::createDatatypeLinearConss2(), ScipParaDiffSubproblemMpi::createDatatypeVarBranchStats(), ScipParaDiffSubproblemMpi::createDatatypeVarValueVars1(), ScipParaDiffSubproblemMpi::createDatatypeVarValueVars2(), ScipParaSolutionMpi::createPreDatatype(), ScipParaCommMpi::init(), ParaCommMpi::init(), ParaCommMpi::iProbe(), ParaCommMpi::iSend(), ParaCommMpi::iUsend(), ParaCommMpi::probe(), ScipParaRacingRampUpParamSetMpi::receive(), ScipDiffParamSetMpi::receive(), ScipParaSolutionMpi::receive(), BbParaSolverStateMpi::receive(), ScipParaInitialStatMpi::receive(), BbParaCalculationStateMpi::receive(), ScipParaDiffSubproblemMpi::receive(), BbParaNodeMpi::receive(), BbParaSolverTerminationStateMpi::receive(), ParaCommMpi::receive(), BbParaNodeMpi::receiveNewSubtreeRoot(), BbParaNodeMpi::receiveSubtreeRootNodeId(), ScipDiffParamSetMpi::send(), ScipParaRacingRampUpParamSetMpi::send(), ScipParaSolutionMpi::send(), BbParaSolverStateMpi::send(), BbParaCalculationStateMpi::send(), ScipParaInitialStatMpi::send(), ScipParaDiffSubproblemMpi::send(), BbParaNodeMpi::send(), BbParaSolverTerminationStateMpi::send(), ParaCommMpi::send(), BbParaNodeMpi::sendNewSubtreeRoot(), BbParaNodeMpi::sendSubtreeRootNodeId(), ParaIsendRequest::test(), ParaCommMpi::ubcast(), ParaCommMpi::ureceive(), ParaCommMpi::usend(), ParaIsendRequest::wait(), ParaCommMpi::waitSpecTagFromSpecSource(), and ParaCommMpi::waitToken().

◆ TAG_TRACE

#define TAG_TRACE (   call,
  fromTo,
  sourceDest,
  tag 
)
Value:
if( tagTraceFlag ) \
{ \
*tos << (MPI_Wtime() - startTime) << " [Rank = " << myRank << "] " << #call << " " << #fromTo \
<< " " << sourceDest << " with Tag = " << getTagString(tag) << std::endl; \
}
const char * getTagString(int tag)
get Tag string for debugging

Definition at line 81 of file paraCommMpi.h.