AQUAgpusph 5.0.4
Loading...
Searching...
No Matches
Aqua::CalcServer::MPISync::Exchanger Class Reference

Interprocess array synchronization base class. More...

#include <MPISync.hpp>

Inheritance diagram for Aqua::CalcServer::MPISync::Exchanger:
Collaboration diagram for Aqua::CalcServer::MPISync::Exchanger:

Data Structures

struct  MPIType
 Data structure to store the type information required by MPI. More...

Public Member Functions

 Exchanger (const std::string name, const std::string vars_prefix, InputOutput::ArrayVariable *mask, const std::vector< InputOutput::ArrayVariable * > fields, const std::vector< void * > field_hosts, const uicl proc)
 ~Exchanger ()
const std::string name () const
 Parent tool name.
uicl proc () const
 Processor.

Static Public Member Functions

static const MPIType typeToMPI (std::string t)
 MPI type descriptor.

Protected Attributes

std::string _var_prefix
 Variables prefix.
InputOutput::ArrayVariable_mask
 Mask.
std::vector< InputOutput::ArrayVariable * > _fields
 Field.
uicl _proc
 Processor.
size_t _n
 Total number of elements.
std::vector< void * > _fields_host
 Host memory arrays to download, send, receive and upload the data.

Detailed Description

Interprocess array synchronization base class.

This class is used to setup host storages for the send & receive operations, to provide some helper functions to translate between OpenCL types and MPI ones

Constructor & Destructor Documentation

◆ Exchanger()

Aqua::CalcServer::MPISync::Exchanger::Exchanger ( const std::string name,
const std::string vars_prefix,
InputOutput::ArrayVariable * mask,
const std::vector< InputOutput::ArrayVariable * > fields,
const std::vector< void * > field_hosts,
const uicl proc )

Constructor

Parameters
nameThe same name that the owner tool (See Aqua::CalcServer::MPISync)
vars_prefixThe unique prefix to register new variables (See Aqua::CalcServer::Tool::varPrefix())
maskAlready sorted mask
fieldsAlready sorted fields
field_hostsAllocated host memory to temporary copy the data, while it is sent to another process or it is uploaded to the computational device either
procProcess to which the data shall be sent
Here is the call graph for this function:

◆ ~Exchanger()

Aqua::CalcServer::MPISync::Exchanger::~Exchanger ( )
inline

Destructor.

Member Function Documentation

◆ name()

const std::string Aqua::CalcServer::MPISync::Exchanger::name ( ) const
inline

Parent tool name.

Returns
Parent tool name

◆ proc()

uicl Aqua::CalcServer::MPISync::Exchanger::proc ( ) const
inline

Processor.

Returns
Processor

◆ typeToMPI()

const MPIType Aqua::CalcServer::MPISync::Exchanger::typeToMPI ( std::string t)
static

MPI type descriptor.

Parameters
tType string
Returns
MPI type descriptor. In case type cannot be handled, a MPI::DATATYPE_NULL type will be returned

Field Documentation

◆ _fields

std::vector<InputOutput::ArrayVariable*> Aqua::CalcServer::MPISync::Exchanger::_fields
protected

Field.

◆ _fields_host

std::vector<void*> Aqua::CalcServer::MPISync::Exchanger::_fields_host
protected

Host memory arrays to download, send, receive and upload the data.

◆ _mask

InputOutput::ArrayVariable* Aqua::CalcServer::MPISync::Exchanger::_mask
protected

Mask.

◆ _n

size_t Aqua::CalcServer::MPISync::Exchanger::_n
protected

Total number of elements.

◆ _proc

uicl Aqua::CalcServer::MPISync::Exchanger::_proc
protected

Processor.

◆ _var_prefix

std::string Aqua::CalcServer::MPISync::Exchanger::_var_prefix
protected

Variables prefix.


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