NIST Biometric Evaluation Framework
Software components for biometric technology evaluations
Classes | Typedefs | Enumerations | Functions | Variables
BiometricEvaluation::MPI Namespace Reference

Common declarations and functions for the MPI-based functionality. More...

Classes

class  CSVDistributor
 An implementation of the MPI::Distrbutor abstraction that distribute lines of a text file via work packages. More...
 
class  CSVProcessor
 An implementation of a work package processor that will extract lines (and optionally tokenize) a line from a CSV text file. More...
 
class  CSVResources
 
class  Distributor
 A class to represent an MPI task that distributes work to other tasks. More...
 
class  Exception
 
class  Receiver
 A class to represent an MPI task that receives WorkPackages containers from the Distributor. More...
 
class  RecordProcessor
 An implementation of a work package processor that will extract record store keys, and optionally, values, from a WorkPackage. More...
 
class  RecordStoreDistributor
 An implementation of the MPI::Distrbutor abstraction that uses a record store for input to create the work packages. More...
 
class  RecordStoreResources
 A class to represent a set of resources needed by an MPI program using a RecordStore for input. More...
 
class  Resources
 A class to represent a set of resources needed by an MPI program. More...
 
class  Runtime
 Runtime support for the startup/shutdown of MPI jobs. More...
 
class  TerminateJob
 An exception that when thrown from a Task should result in the entire job (all tasks) being shut down by the Distributor. More...
 
class  WorkPackage
 A class to represent a piece of work to be acted upon by a processor. More...
 
class  WorkPackageProcessor
 Represents an object that processes the contents of a work package. More...
 

Typedefs

using taskcmd_t = std::underlying_type< TaskCommand >::type
 Storage type for TaskCommand. More...
 
using taskstat_t = std::underlying_type< TaskStatus >::type
 Storage type for TaskStatus. More...
 
using msgtag_t = std::underlying_type< MessageTag >::type
 Storage type for MessageTag. More...
 

Enumerations

enum class  TaskCommand : int32_t {
  Continue = 0 , Ignore = 1 , Exit = 2 , QuickExit = 3 ,
  TermExit = 4
}
 The command given to an MPI task. More...
 
enum class  TaskStatus : int32_t { OK = 0 , Failed = 1 , Exit = 2 , RequestJobTermination = 3 }
 The status of an MPI distributor or receiver task. More...
 
enum class  MessageTag : int32_t { Control = 0 , Data = 1 , OOB = 2 }
 The types of messages sent between MPI task processes. More...
 

Functions

std::string generateUniqueID ()
 Obtain a unique ID for the current process. More...
 
void printStatus (const std::string &message)
 Print a status message to stdout. More...
 
void logEntry (IO::Logsheet &logsheet)
 Send the current log stream to the log device as a debug entry. More...
 
void logMessage (IO::Logsheet &logsheet, const std::string &message)
 Send a log message to the given Logsheet as a debug entry. More...
 
std::shared_ptr< BiometricEvaluation::IO::LogsheetopenLogsheet (const std::string &url, const std::string &description)
 Open a Logsheet object for a component of the MPI framework. More...
 

Variables

bool Exit
 
bool QuickExit
 
bool TermExit
 
bool checkpointEnable
 
bool doCheckpointRestore
 

Detailed Description

Common declarations and functions for the MPI-based functionality.

Typedef Documentation

◆ taskcmd_t

using BiometricEvaluation::MPI::taskcmd_t = typedef std::underlying_type<TaskCommand>::type

Storage type for TaskCommand.

Definition at line 117 of file be_mpi.h.

◆ taskstat_t

using BiometricEvaluation::MPI::taskstat_t = typedef std::underlying_type<TaskStatus>::type

Storage type for TaskStatus.

Definition at line 133 of file be_mpi.h.

◆ msgtag_t

using BiometricEvaluation::MPI::msgtag_t = typedef std::underlying_type<MessageTag>::type

Storage type for MessageTag.

Definition at line 152 of file be_mpi.h.

Enumeration Type Documentation

◆ TaskCommand

enum class BiometricEvaluation::MPI::TaskCommand : int32_t
strong

The command given to an MPI task.

Enumerator
Continue 

Normal operation.

Ignore 

Ignore the message.

Exit 

Transition to the normal shutdown state.

QuickExit 

Transition to the quick shutdown state.

TermExit 

Transition to the immeditate shutdown state.

Definition at line 102 of file be_mpi.h.

◆ TaskStatus

enum class BiometricEvaluation::MPI::TaskStatus : int32_t
strong

The status of an MPI distributor or receiver task.

Enumerator
OK 

Normal operation.

Failed 

Failed to complete an operation.

Exit 

Transitioned to the shutdown state.

RequestJobTermination 

Requesting that Distributor stops the job.

Definition at line 120 of file be_mpi.h.

◆ MessageTag

enum class BiometricEvaluation::MPI::MessageTag : int32_t
strong

The types of messages sent between MPI task processes.

Enumerator
Control 

A control message (start, exit, etc.)

Data 

A data message.

OOB 

An out-of-band message, used when the normal control/data messaging cannot be used.

Definition at line 136 of file be_mpi.h.

Function Documentation

◆ generateUniqueID()

std::string BiometricEvaluation::MPI::generateUniqueID ( )

Obtain a unique ID for the current process.

The ID is a string that is based on the host name, MPI rank, and process ID, formatted in a manner that can be used to uniquely name files.

Returns
The unique ID for the process.

◆ printStatus()

void BiometricEvaluation::MPI::printStatus ( const std::string &  message)

Print a status message to stdout.

Parameters
[in]messageThe messasge to be printed.

◆ logEntry()

void BiometricEvaluation::MPI::logEntry ( IO::Logsheet logsheet)

Send the current log stream to the log device as a debug entry.

Log messages may be streamed into the Logsheet and written as debug messages to aid tracing. In order to prevent log errors interfering with the MPI job, errors are managed, and therefore, log messages may stop if the Logsheet has failed.

Parameters
[in]logsheetThe open Logsheet to write into.

◆ logMessage()

void BiometricEvaluation::MPI::logMessage ( IO::Logsheet logsheet,
const std::string &  message 
)

Send a log message to the given Logsheet as a debug entry.

In order to prevent log errors interfering with the MPI job, errors are managed, and therefore, log messages may stop if the Logsheet has failed.

Parameters
[in]logsheetThe open Logsheet to write into.
[in]messageThe log message.

◆ openLogsheet()

std::shared_ptr< BiometricEvaluation::IO::Logsheet > BiometricEvaluation::MPI::openLogsheet ( const std::string &  url,
const std::string &  description 
)

Open a Logsheet object for a component of the MPI framework.

If the empty string is passed in as the URL, then a Null Logsheet object is returned.

Parameters
[in]urlThe Uniform Resource Locator for the Logsheet.
[in]descriptionThe description of the Logsheet.
Returns
Shared pointer to the Logsheet object.
Exceptions
Error::ParameterErrorInvalid URL.
Error::ExceptionFailed to create the Logsheet object. The exception string will contain more information.

Variable Documentation

◆ Exit

bool BiometricEvaluation::MPI::Exit
extern

◆ QuickExit

bool BiometricEvaluation::MPI::QuickExit
extern

◆ TermExit

bool BiometricEvaluation::MPI::TermExit
extern

◆ checkpointEnable

bool BiometricEvaluation::MPI::checkpointEnable
extern

◆ doCheckpointRestore

bool BiometricEvaluation::MPI::doCheckpointRestore
extern