www.cemf.ir
IOPattern Class Reference

Public Types

enum  IOType : int { MasterProcessorOnly = 0, AllProcessorsSimilar = 1, MasterProcessorDistribute = 4, AllProcessorsDifferent = 8 }
 Type of input/output. More...
 

Public Member Functions

 IOPattern (IOPattern::IOType iotype)
 
 IOPattern (const IOPattern &)=default
 
 IOPattern (IOPattern &&)=default
 
IOPatternoperator= (const IOPattern &)=default
 
IOPatternoperator= (IOPattern &&)=default
 
 ~IOPattern ()=default
 
bool isMasterProcessorOnly () const
 
bool isAllProcessorSimilar () const
 
bool isMasterProcessorDistribute () const
 
bool isAllProcessorsDifferent () const
 
bool isMaster () const
 
bool isParallel () const
 
bool thisCallRead () const
 
bool thisCallWrite () const
 
bool thisProcReadData () const
 
bool thisProcWriteData () const
 
bool thisProcReadHeader () const
 
bool thisProcWriteHeader () const
 
auto globalSize () const
 
auto globalRank () const
 

Static Public Member Functions

static word exeMode ()
 

Private Attributes

IOType ioType_
 
int globalSize_ = 1
 
int globalRank_ = 0
 
bool isMaster_ = true
 
bool isParallel_ = false
 

Detailed Description

Definition at line 32 of file IOPattern.hpp.

Member Enumeration Documentation

◆ IOType

enum IOType : int

Type of input/output.

MasterProcessorOnly: Read or write is done on master processor and the data on master processor is affected.

MasterProcessorDistribute: Read is done on master processor, but the data should be distributed between processors based on an externally specified pattern. Write is done on master processor and the data is collected from all processors (collection is done based on the externally specified pattern).

AllProcessorsSimilar: Read is done on all processors and processors read the same data. Write is done on master processor, since all processors have the same copy of data.

Enumerator
MasterProcessorOnly 
AllProcessorsSimilar 
MasterProcessorDistribute 
AllProcessorsDifferent 

Definition at line 52 of file IOPattern.hpp.

Constructor & Destructor Documentation

◆ IOPattern() [1/3]

Definition at line 23 of file IOPattern.cpp.

◆ IOPattern() [2/3]

IOPattern ( const IOPattern )
default

◆ IOPattern() [3/3]

IOPattern ( IOPattern &&  )
default

◆ ~IOPattern()

~IOPattern ( )
default

Member Function Documentation

◆ operator=() [1/2]

IOPattern& operator= ( const IOPattern )
default

◆ operator=() [2/2]

IOPattern& operator= ( IOPattern &&  )
default

◆ isMasterProcessorOnly()

bool isMasterProcessorOnly ( ) const
inline

Definition at line 88 of file IOPattern.hpp.

References IOPattern::ioType_, and IOPattern::MasterProcessorOnly.

Referenced by IOPattern::thisCallRead(), IOPattern::thisCallWrite(), and IOPattern::thisProcReadData().

+ Here is the caller graph for this function:

◆ isAllProcessorSimilar()

bool isAllProcessorSimilar ( ) const
inline

Definition at line 94 of file IOPattern.hpp.

References IOPattern::AllProcessorsSimilar, and IOPattern::ioType_.

◆ isMasterProcessorDistribute()

bool isMasterProcessorDistribute ( ) const
inline

Definition at line 100 of file IOPattern.hpp.

References IOPattern::ioType_, and IOPattern::MasterProcessorDistribute.

Referenced by IOPattern::thisProcReadData().

+ Here is the caller graph for this function:

◆ isAllProcessorsDifferent()

bool isAllProcessorsDifferent ( ) const
inline

Definition at line 106 of file IOPattern.hpp.

References IOPattern::AllProcessorsDifferent, and IOPattern::ioType_.

Referenced by IOPattern::thisProcWriteData().

+ Here is the caller graph for this function:

◆ isMaster()

bool isMaster ( ) const
inline

◆ isParallel()

bool isParallel ( ) const
inline

Definition at line 118 of file IOPattern.hpp.

References IOPattern::isParallel_.

◆ thisCallRead()

bool thisCallRead ( ) const
inline

Definition at line 124 of file IOPattern.hpp.

References IOPattern::isMaster(), and IOPattern::isMasterProcessorOnly().

+ Here is the call graph for this function:

◆ thisCallWrite()

bool thisCallWrite ( ) const
inline

Definition at line 131 of file IOPattern.hpp.

References IOPattern::isMaster(), and IOPattern::isMasterProcessorOnly().

+ Here is the call graph for this function:

◆ thisProcReadData()

bool thisProcReadData ( ) const
inline

Definition at line 138 of file IOPattern.hpp.

References IOPattern::isMaster(), IOPattern::isMasterProcessorDistribute(), and IOPattern::isMasterProcessorOnly().

Referenced by Field< uint32x3 >::read(), and IOPattern::thisProcReadHeader().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ thisProcWriteData()

bool thisProcWriteData ( ) const
inline

Definition at line 146 of file IOPattern.hpp.

References IOPattern::isAllProcessorsDifferent(), and IOPattern::isMaster().

Referenced by stationaryWall::write(), conveyorBeltMotion::write(), rotatingAxisMotion::write(), vibratingMotion::write(), insertion::write(), multiTriSurface::write(), and Field< uint32x3 >::write().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ thisProcReadHeader()

bool thisProcReadHeader ( ) const
inline

Definition at line 153 of file IOPattern.hpp.

References IOPattern::thisProcReadData().

+ Here is the call graph for this function:

◆ thisProcWriteHeader()

bool thisProcWriteHeader ( ) const
inline

Definition at line 159 of file IOPattern.hpp.

References IOPattern::isMaster().

+ Here is the call graph for this function:

◆ globalSize()

auto globalSize ( ) const
inline

Definition at line 165 of file IOPattern.hpp.

References IOPattern::globalSize_.

◆ globalRank()

auto globalRank ( ) const
inline

Definition at line 171 of file IOPattern.hpp.

References IOPattern::globalRank_.

◆ exeMode()

pFlow::word exeMode ( )
static

Definition at line 32 of file IOPattern.cpp.

References processors::globalRunTypeName().

+ Here is the call graph for this function:

Member Data Documentation

◆ ioType_

◆ globalSize_

int globalSize_ = 1
private

Definition at line 65 of file IOPattern.hpp.

Referenced by IOPattern::globalSize().

◆ globalRank_

int globalRank_ = 0
private

Definition at line 67 of file IOPattern.hpp.

Referenced by IOPattern::globalRank().

◆ isMaster_

bool isMaster_ = true
private

Definition at line 69 of file IOPattern.hpp.

Referenced by IOPattern::isMaster().

◆ isParallel_

bool isParallel_ = false
private

Definition at line 71 of file IOPattern.hpp.

Referenced by IOPattern::isParallel().


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