VirtualFluids 0.2.0
Parallel CFD LBM Solver
Loading...
Searching...
No Matches
vf::parallel::Communicator Class Referenceabstract

An abstract class for communication between processes in parallel computation. More...

#include <Communicator.h>

Inheritance diagram for vf::parallel::Communicator:
vf::parallel::MPICommunicator vf::parallel::NullCommunicator vf::gpu::CommunicatorDouble

Public Member Functions

 Communicator (const Communicator &)=delete
 
Communicatoroperator= (const Communicator &rhs)=delete
 
virtual ~Communicator ()=default
 
virtual double Wtime ()=0
 
virtual int getBundleID () const =0
 
virtual int getNumberOfBundles () const =0
 
virtual int getProcessID () const =0
 
virtual int getProcessID (int bundle, int rank) const =0
 
virtual bool isRoot () const =0
 
virtual voidgetNativeCommunicator ()=0
 
virtual void sendSerializedObject (std::stringstream &ss, int target)=0
 
virtual void receiveSerializedObject (std::stringstream &ss, int source)=0
 
virtual int getRoot () const =0
 
virtual int getBundleRoot () const =0
 
virtual int getProcessRoot () const =0
 
virtual int getNumberOfProcessesInBundle (int bundle) const =0
 
virtual void barrier ()=0
 
virtual void abort (int errorcode)=0
 
virtual std::vector< std::string > gather (const std::string &str)=0
 
virtual std::vector< intgather (std::vector< int > &values)=0
 
virtual std::vector< floatgather (std::vector< float > &values)=0
 
virtual std::vector< doublegather (std::vector< double > &values)=0
 
virtual std::vector< unsigned long longgather (std::vector< unsigned long long > &values)=0
 
virtual void allGather (std::vector< int > &svalues, std::vector< int > &rvalues)=0
 
virtual void allGather (std::vector< float > &svalues, std::vector< float > &rvalues)=0
 
virtual void allGather (std::vector< double > &svalues, std::vector< double > &rvalues)=0
 
virtual void allGather (std::vector< unsigned long long > &svalues, std::vector< unsigned long long > &rvalues)=0
 
virtual void allGather (std::vector< uint > &svalues, std::vector< uint > &rvalues)=0
 
virtual void allReduceSum (std::vector< float > &svalues)=0
 
virtual void allReduceSum (std::vector< double > &svalues)=0
 
virtual void allReduceSum (std::vector< uint > &svalues)=0
 
virtual void broadcast (int &value)=0
 
virtual void broadcast (float &value)=0
 
virtual void broadcast (double &value)=0
 
virtual void broadcast (long int &value)=0
 
virtual void broadcast (std::vector< int > &values)=0
 
virtual void broadcast (std::vector< float > &values)=0
 
virtual void broadcast (std::vector< double > &values)=0
 
virtual void broadcast (std::vector< long int > &values)=0
 
virtual void receiveSend (uint *buffer_receive, int size_buffer_recv, int neighbor_rank_recv, const uint *buffer_send, int size_buffer_send, int neighbor_rank_send) const =0
 
virtual int getNumberOfProcesses () const =0
 
virtual void send (real *sbuf, int count_s, int nb_rank) const =0
 
virtual double reduceSum (double quantityPerProcess) const =0
 
virtual int mapCudaDevicesOnHosts (const std::vector< unsigned int > &devices, int numberOfDevices) const =0
 
virtual void receiveSend (real *buffer_send, int size_buffer_send, real *buffer_receive, int size_buffer_recv, int neighbor_rank) const =0
 
virtual void receiveNonBlocking (real *rbuf, int count_r, int sourceRank)=0
 
virtual void sendNonBlocking (real *sbuf, int count_s, int destinationRank)=0
 
virtual void send (real *sbuf, int count_s, int destinationRank)=0
 
virtual void waitAll ()=0
 
virtual void resetRequests ()=0
 

Static Public Member Functions

static std::shared_ptr< CommunicatorgetInstance ()
 

Protected Member Functions

 Communicator ()=default
 

Static Protected Attributes

static std::mutex instantiation_mutex = std::mutex()
 
static std::shared_ptr< Communicatorinstance = std::shared_ptr<Communicator>()
 

Detailed Description

An abstract class for communication between processes in parallel computation.

Definition at line 49 of file Communicator.h.

Constructor & Destructor Documentation

◆ Communicator() [1/2]

vf::parallel::Communicator::Communicator ( const Communicator )
delete

◆ ~Communicator()

virtual vf::parallel::Communicator::~Communicator ( )
virtualdefault

◆ Communicator() [2/2]

vf::parallel::Communicator::Communicator ( )
protecteddefault

Member Function Documentation

◆ abort()

virtual void vf::parallel::Communicator::abort ( int  errorcode)
pure virtual

◆ allGather() [1/5]

virtual void vf::parallel::Communicator::allGather ( std::vector< double > &  svalues,
std::vector< double > &  rvalues 
)
pure virtual

◆ allGather() [2/5]

virtual void vf::parallel::Communicator::allGather ( std::vector< float > &  svalues,
std::vector< float > &  rvalues 
)
pure virtual

◆ allGather() [3/5]

virtual void vf::parallel::Communicator::allGather ( std::vector< int > &  svalues,
std::vector< int > &  rvalues 
)
pure virtual

◆ allGather() [4/5]

virtual void vf::parallel::Communicator::allGather ( std::vector< uint > &  svalues,
std::vector< uint > &  rvalues 
)
pure virtual

◆ allGather() [5/5]

virtual void vf::parallel::Communicator::allGather ( std::vector< unsigned long long > &  svalues,
std::vector< unsigned long long > &  rvalues 
)
pure virtual

◆ allReduceSum() [1/3]

virtual void vf::parallel::Communicator::allReduceSum ( std::vector< double > &  svalues)
pure virtual

◆ allReduceSum() [2/3]

virtual void vf::parallel::Communicator::allReduceSum ( std::vector< float > &  svalues)
pure virtual

◆ allReduceSum() [3/3]

virtual void vf::parallel::Communicator::allReduceSum ( std::vector< uint > &  svalues)
pure virtual

◆ barrier()

virtual void vf::parallel::Communicator::barrier ( )
pure virtual

◆ broadcast() [1/8]

virtual void vf::parallel::Communicator::broadcast ( double value)
pure virtual

◆ broadcast() [2/8]

virtual void vf::parallel::Communicator::broadcast ( float value)
pure virtual

◆ broadcast() [3/8]

virtual void vf::parallel::Communicator::broadcast ( int value)
pure virtual

◆ broadcast() [4/8]

virtual void vf::parallel::Communicator::broadcast ( long int value)
pure virtual

◆ broadcast() [5/8]

virtual void vf::parallel::Communicator::broadcast ( std::vector< double > &  values)
pure virtual

◆ broadcast() [6/8]

virtual void vf::parallel::Communicator::broadcast ( std::vector< float > &  values)
pure virtual

◆ broadcast() [7/8]

virtual void vf::parallel::Communicator::broadcast ( std::vector< int > &  values)
pure virtual

◆ broadcast() [8/8]

virtual void vf::parallel::Communicator::broadcast ( std::vector< long int > &  values)
pure virtual

◆ gather() [1/5]

virtual std::vector< std::string > vf::parallel::Communicator::gather ( const std::string &  str)
pure virtual

◆ gather() [2/5]

virtual std::vector< double > vf::parallel::Communicator::gather ( std::vector< double > &  values)
pure virtual

◆ gather() [3/5]

virtual std::vector< float > vf::parallel::Communicator::gather ( std::vector< float > &  values)
pure virtual

◆ gather() [4/5]

virtual std::vector< int > vf::parallel::Communicator::gather ( std::vector< int > &  values)
pure virtual

◆ gather() [5/5]

virtual std::vector< unsigned long long > vf::parallel::Communicator::gather ( std::vector< unsigned long long > &  values)
pure virtual

◆ getBundleID()

virtual int vf::parallel::Communicator::getBundleID ( ) const
pure virtual

◆ getBundleRoot()

virtual int vf::parallel::Communicator::getBundleRoot ( ) const
pure virtual

◆ getInstance()

std::shared_ptr< Communicator > vf::parallel::Communicator::getInstance ( )
static

Definition at line 42 of file Communicator.cpp.

◆ getNativeCommunicator()

virtual void * vf::parallel::Communicator::getNativeCommunicator ( )
pure virtual

◆ getNumberOfBundles()

virtual int vf::parallel::Communicator::getNumberOfBundles ( ) const
pure virtual

◆ getNumberOfProcesses()

virtual int vf::parallel::Communicator::getNumberOfProcesses ( ) const
pure virtual

◆ getNumberOfProcessesInBundle()

virtual int vf::parallel::Communicator::getNumberOfProcessesInBundle ( int  bundle) const
pure virtual

◆ getProcessID() [1/2]

virtual int vf::parallel::Communicator::getProcessID ( ) const
pure virtual

◆ getProcessID() [2/2]

virtual int vf::parallel::Communicator::getProcessID ( int  bundle,
int  rank 
) const
pure virtual

◆ getProcessRoot()

virtual int vf::parallel::Communicator::getProcessRoot ( ) const
pure virtual

◆ getRoot()

virtual int vf::parallel::Communicator::getRoot ( ) const
pure virtual

◆ isRoot()

virtual bool vf::parallel::Communicator::isRoot ( ) const
pure virtual

◆ mapCudaDevicesOnHosts()

virtual int vf::parallel::Communicator::mapCudaDevicesOnHosts ( const std::vector< unsigned int > &  devices,
int  numberOfDevices 
) const
pure virtual

◆ operator=()

Communicator & vf::parallel::Communicator::operator= ( const Communicator rhs)
delete

◆ receiveNonBlocking()

virtual void vf::parallel::Communicator::receiveNonBlocking ( real rbuf,
int  count_r,
int  sourceRank 
)
pure virtual

◆ receiveSend() [1/2]

virtual void vf::parallel::Communicator::receiveSend ( real buffer_send,
int  size_buffer_send,
real buffer_receive,
int  size_buffer_recv,
int  neighbor_rank 
) const
pure virtual

◆ receiveSend() [2/2]

virtual void vf::parallel::Communicator::receiveSend ( uint buffer_receive,
int  size_buffer_recv,
int  neighbor_rank_recv,
const uint buffer_send,
int  size_buffer_send,
int  neighbor_rank_send 
) const
pure virtual

◆ receiveSerializedObject()

virtual void vf::parallel::Communicator::receiveSerializedObject ( std::stringstream &  ss,
int  source 
)
pure virtual

◆ reduceSum()

virtual double vf::parallel::Communicator::reduceSum ( double  quantityPerProcess) const
pure virtual

◆ resetRequests()

virtual void vf::parallel::Communicator::resetRequests ( )
pure virtual

◆ send() [1/2]

virtual void vf::parallel::Communicator::send ( real sbuf,
int  count_s,
int  destinationRank 
)
pure virtual

◆ send() [2/2]

virtual void vf::parallel::Communicator::send ( real sbuf,
int  count_s,
int  nb_rank 
) const
pure virtual

◆ sendNonBlocking()

virtual void vf::parallel::Communicator::sendNonBlocking ( real sbuf,
int  count_s,
int  destinationRank 
)
pure virtual

◆ sendSerializedObject()

virtual void vf::parallel::Communicator::sendSerializedObject ( std::stringstream &  ss,
int  target 
)
pure virtual

◆ waitAll()

virtual void vf::parallel::Communicator::waitAll ( )
pure virtual

◆ Wtime()

virtual double vf::parallel::Communicator::Wtime ( )
pure virtual

Member Data Documentation

◆ instance

std::shared_ptr< Communicator > vf::parallel::Communicator::instance = std::shared_ptr<Communicator>()
staticprotected

Definition at line 121 of file Communicator.h.

◆ instantiation_mutex

std::mutex vf::parallel::Communicator::instantiation_mutex = std::mutex()
staticprotected

Definition at line 119 of file Communicator.h.


The documentation for this class was generated from the following files: