IOSS  2.0
Ioss::SerializeIO Class Reference

Class SerializeIO is a sentry class which performs serialization for mesh database I/O. More...

#include <Ioss_SerializeIO.h>

Public Member Functions

 SerializeIO (const DatabaseIO *database_io, int manual_owner_processor=-1)
 
 SerializeIO (const SerializeIO &from)=delete
 
SerializeIOoperator= (const SerializeIO &from)=delete
 
 ~SerializeIO ()
 

Static Public Member Functions

static int getOwner ()
 
static int getRank ()
 
static int getSize ()
 
static int getGroupRank ()
 
static int getGroupSize ()
 
static void setGroupFactor (int factor)
 
static bool isEnabled ()
 
static bool inBarrier ()
 
static bool inMyGroup ()
 

Private Attributes

const DatabaseIOm_databaseIO
 Database I/O pointer. More...
 
bool m_activeFallThru
 No barries since my group is running. More...
 
int m_manualOwner
 Manually specified owner. More...
 

Static Private Attributes

static int s_groupFactor = 0
 Grouping factor. More...
 
static int s_size = -1
 Number of processors. More...
 
static int s_rank = -1
 My processor rank. More...
 
static int s_groupSize = -1
 Number of groups. More...
 
static int s_groupRank = -1
 My group rank. More...
 
static int s_owner = -1
 Group currently running. More...
 

Detailed Description

Class SerializeIO is a sentry class which performs serialization for mesh database I/O.

This sentry guards serialization of parallel I/O routines. At construction, it blocks the processes via an MPI barrier, releasing them to execute in groups specified by s_groupSize. At destruction, it continues to block via MPI barriers until all the processor have been released by the constructor.

In the case where the constructor is called, and the sentry is already active and owned by the processes group, the constructor and destrutor simply fall through since the serialization is already in place at a higher level.

The MPI

Constructor & Destructor Documentation

◆ SerializeIO() [1/2]

Ioss::SerializeIO::SerializeIO ( const DatabaseIO database_io,
int  manual_owner_processor = -1 
)
explicit

Creates a new SerializeIO instance.

Parameters
database_ioa DatabaseIO variable ...

◆ SerializeIO() [2/2]

Ioss::SerializeIO::SerializeIO ( const SerializeIO from)
delete

◆ ~SerializeIO()

Ioss::SerializeIO::~SerializeIO ( )

Member Function Documentation

◆ getGroupRank()

static int Ioss::SerializeIO::getGroupRank ( )
inlinestatic

◆ getGroupSize()

static int Ioss::SerializeIO::getGroupSize ( )
inlinestatic

◆ getOwner()

static int Ioss::SerializeIO::getOwner ( )
inlinestatic

◆ getRank()

static int Ioss::SerializeIO::getRank ( )
inlinestatic

◆ getSize()

static int Ioss::SerializeIO::getSize ( )
inlinestatic

◆ inBarrier()

static bool Ioss::SerializeIO::inBarrier ( )
inlinestatic

◆ inMyGroup()

static bool Ioss::SerializeIO::inMyGroup ( )
inlinestatic

◆ isEnabled()

static bool Ioss::SerializeIO::isEnabled ( )
inlinestatic

◆ operator=()

SerializeIO& Ioss::SerializeIO::operator= ( const SerializeIO from)
delete

◆ setGroupFactor()

void Ioss::SerializeIO::setGroupFactor ( int  factor)
static

Member Data Documentation

◆ m_activeFallThru

bool Ioss::SerializeIO::m_activeFallThru
private

No barries since my group is running.

◆ m_databaseIO

const DatabaseIO* Ioss::SerializeIO::m_databaseIO
private

Database I/O pointer.

◆ m_manualOwner

int Ioss::SerializeIO::m_manualOwner
private

Manually specified owner.

◆ s_groupFactor

int Ioss::SerializeIO::s_groupFactor = 0
staticprivate

Grouping factor.

◆ s_groupRank

int Ioss::SerializeIO::s_groupRank = -1
staticprivate

My group rank.

◆ s_groupSize

int Ioss::SerializeIO::s_groupSize = -1
staticprivate

Number of groups.

◆ s_owner

int Ioss::SerializeIO::s_owner = -1
staticprivate

Group currently running.

◆ s_rank

int Ioss::SerializeIO::s_rank = -1
staticprivate

My processor rank.

◆ s_size

int Ioss::SerializeIO::s_size = -1
staticprivate

Number of processors.


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