NIST Biometric Evaluation Framework
Software components for biometric technology evaluations
be_mpi_csvdistributor.h
Go to the documentation of this file.
1/*
2 * This software was developed at the National Institute of Standards and
3 * Technology (NIST) by employees of the Federal Government in the course
4 * of their official duties. Pursuant to title 17 Section 105 of the
5 * United States Code, this software is not subject to copyright protection
6 * and is in the public domain. NIST assumes no responsibility whatsoever for
7 * its use by other parties, and makes no guarantees, expressed or implied,
8 * about its quality, reliability, or any other characteristic.
9 */
10
11#ifndef BE_MPI_CSVDISTRIBUTOR_H_
12#define BE_MPI_CSVDISTRIBUTOR_H_
13
14#include <memory>
15#include <string>
16
17#include <be_mpi_csvresources.h>
18#include <be_mpi_distributor.h>
19
20namespace BiometricEvaluation
21{
22 namespace MPI
23 {
43 {
44 public:
49 static const std::string CHECKPOINTLINECOUNT;
50
55 static const std::string CHECKPOINTRANDOMSEED;
56
67 const std::string &propertiesFileName,
68 const std::string &delimiter = "");
70
71 protected:
72 void
74 void
75 checkpointSave(const std::string &reason);
76 void
78
79 private:
80 std::unique_ptr<MPI::CSVResources> _resources;
81 uint64_t _distributedLineCount{};
82 };
83 }
84}
85
86#endif /* BE_MPI_CSVDISTRIBUTOR_H_ */
87
An implementation of the MPI::Distrbutor abstraction that distribute lines of a text file via work pa...
static const std::string CHECKPOINTRANDOMSEED
The seed used to randomize the input CSV file lines, "Random Seed".
void checkpointRestore()
Restore from a checkpoint state.
static const std::string CHECKPOINTLINECOUNT
The number of lines that were distributed, "Line Count".
void checkpointSave(const std::string &reason)
Create a checkpoint state.
CSVDistributor(const std::string &propertiesFileName, const std::string &delimiter="")
Construct a CSVDistributor using named properties.
void createWorkPackage(MPI::WorkPackage &workPackage)
Create a work package for distribution.
A class to represent an MPI task that distributes work to other tasks.
A class to represent a piece of work to be acted upon by a processor.
This software was developed at the National Institute of Standards and Technology (NIST) by employees...