Xmipp  v3.23.11-Nereus
Public Member Functions | Protected Attributes | List of all members
MpiMetadataProgram Class Reference

#include <xmipp_mpi.h>

Inheritance diagram for MpiMetadataProgram:
Inheritance graph
[legend]
Collaboration diagram for MpiMetadataProgram:
Collaboration graph
[legend]

Public Member Functions

 MpiMetadataProgram ()
 
 MpiMetadataProgram (const MpiMetadataProgram &)=delete
 
 MpiMetadataProgram (const MpiMetadataProgram &&)=delete
 
 ~MpiMetadataProgram ()
 
MpiMetadataProgramoperator= (const MpiMetadataProgram &)=delete
 
MpiMetadataProgramoperator= (const MpiMetadataProgram &&)=delete
 
void read (int argc, char **argv)
 
void defineParams ()
 
void readParams ()
 
void createTaskDistributor (MetaData &mdIn, size_t blockSize=0)
 
virtual void preProcess ()
 
virtual void finishProcessing ()
 
bool getTaskToProcess (size_t &objId, size_t &objIndex)
 
- Public Member Functions inherited from XmippMpiProgram
void read (int argc, char **argv)
 
virtual int tryRun ()
 
- Public Member Functions inherited from XmippProgram
const char * getParam (const char *param, int arg=0)
 
const char * getParam (const char *param, const char *subparam, int arg=0)
 
int getIntParam (const char *param, int arg=0)
 
int getIntParam (const char *param, const char *subparam, int arg=0)
 
double getDoubleParam (const char *param, int arg=0)
 
double getDoubleParam (const char *param, const char *subparam, int arg=0)
 
float getFloatParam (const char *param, int arg=0)
 
float getFloatParam (const char *param, const char *subparam, int arg=0)
 
void getListParam (const char *param, StringVector &list)
 
int getCountParam (const char *param)
 
bool checkParam (const char *param)
 
bool existsParam (const char *param)
 
void addParamsLine (const String &line)
 
void addParamsLine (const char *line)
 
ParamDefgetParamDef (const char *param) const
 
virtual void run ()
 
virtual void quit (int exit_code=0) const
 
void initProgress (size_t total, size_t stepBin=60)
 
void setProgress (size_t value=0)
 
void endProgress ()
 
void processDefaultComment (const char *param, const char *left)
 
void setDefaultComment (const char *param, const char *comment)
 
virtual void initComments ()
 
void setProgramName (const char *name)
 
void addUsageLine (const char *line, bool verbatim=false)
 
void clearUsage ()
 
void addExampleLine (const char *example, bool verbatim=true)
 
void addSeeAlsoLine (const char *seeAlso)
 
void addKeywords (const char *keywords)
 
const char * name () const
 
virtual void usage (int verb=0) const
 
virtual void usage (const String &param, int verb=2)
 
int version () const
 
virtual void show () const
 
virtual void read (int argc, const char **argv, bool reportErrors=true)
 
virtual void read (int argc, char **argv, bool reportErrors=true)
 
void read (const String &argumentsLine)
 
 XmippProgram ()
 
 XmippProgram (int argc, const char **argv)
 
virtual ~XmippProgram ()
 

Protected Attributes

int blockSize
 
std::vector< size_t > imgsId
 
MpiTaskDistributordistributor =nullptr
 
size_t first
 
size_t last
 
- Protected Attributes inherited from XmippMpiProgram
std::shared_ptr< MpiNodenode
 
size_t nProcs
 
size_t numberOfJobs
 
MPI_Status status
 
- Protected Attributes inherited from XmippProgram
int errorCode
 
ProgramDefprogDef
 Program definition and arguments parser. More...
 
std::map< String, CommentListdefaultComments
 
int argc
 Original command line arguments. More...
 
const char ** argv
 

Additional Inherited Members

- Public Attributes inherited from XmippProgram
bool doRun
 
bool runWithoutArgs
 
int verbose
 Verbosity level. More...
 
int debug
 
- Protected Member Functions inherited from XmippMpiProgram
void setNode (const std::shared_ptr< MpiNode > &node)
 
- Protected Member Functions inherited from XmippProgram
void defineCommons ()
 

Detailed Description

Definition at line 184 of file xmipp_mpi.h.

Constructor & Destructor Documentation

◆ MpiMetadataProgram() [1/3]

MpiMetadataProgram::MpiMetadataProgram ( )
inline

Constructor

Definition at line 195 of file xmipp_mpi.h.

195 {}

◆ MpiMetadataProgram() [2/3]

MpiMetadataProgram::MpiMetadataProgram ( const MpiMetadataProgram )
delete

◆ MpiMetadataProgram() [3/3]

MpiMetadataProgram::MpiMetadataProgram ( const MpiMetadataProgram &&  )
delete

◆ ~MpiMetadataProgram()

MpiMetadataProgram::~MpiMetadataProgram ( )

Destructor

Definition at line 279 of file xmipp_mpi.cpp.

280 {
281  delete distributor;
282 }
MpiTaskDistributor * distributor
Definition: xmipp_mpi.h:190

Member Function Documentation

◆ createTaskDistributor()

void MpiMetadataProgram::createTaskDistributor ( MetaData mdIn,
size_t  blockSize = 0 
)

Create task distributor

Definition at line 302 of file xmipp_mpi.cpp.

304 {
305  size_t size = mdIn.size();
306  if (blockSize < 1)
307  blockSize = XMIPP_MAX(1, size/(node->size * 5));
308  else if (blockSize > size)
309  blockSize = size;
310 
311  mdIn.findObjects(imgsId);
313 }
#define XMIPP_MAX(x, y)
Definition: xmipp_macros.h:193
std::shared_ptr< MpiNode > node
Definition: xmipp_mpi.h:164
virtual void findObjects(std::vector< size_t > &objectsOut, const MDQuery &query) const =0
virtual size_t size() const =0
std::vector< size_t > imgsId
Definition: xmipp_mpi.h:189
MpiTaskDistributor * distributor
Definition: xmipp_mpi.h:190

◆ defineParams()

void MpiMetadataProgram::defineParams ( )
virtual

◆ finishProcessing()

virtual void MpiMetadataProgram::finishProcessing ( )
inlinevirtual

◆ getTaskToProcess()

bool MpiMetadataProgram::getTaskToProcess ( size_t &  objId,
size_t &  objIndex 
)

Get task to process

Definition at line 316 of file xmipp_mpi.cpp.

317 {
318  bool moreTasks = true;
319  if (first > last)
320  moreTasks = distributor->getTasks(first, last);
321  if (moreTasks)
322  {
323  objIndex = first;
324  objId = imgsId[first++];
325  return true;
326  }
328  return false;
329 }
bool getTasks(size_t &first, size_t &last)
std::vector< size_t > imgsId
Definition: xmipp_mpi.h:189
MpiTaskDistributor * distributor
Definition: xmipp_mpi.h:190

◆ operator=() [1/2]

MpiMetadataProgram& MpiMetadataProgram::operator= ( const MpiMetadataProgram )
delete

◆ operator=() [2/2]

MpiMetadataProgram& MpiMetadataProgram::operator= ( const MpiMetadataProgram &&  )
delete

◆ preProcess()

virtual void MpiMetadataProgram::preProcess ( )
inlinevirtual

◆ read()

void MpiMetadataProgram::read ( int  argc,
char **  argv 
)

Read arguments

Definition at line 284 of file xmipp_mpi.cpp.

285 {
287  last = 0;
288  first = 1;
289 }
int argc
Original command line arguments.
Definition: xmipp_program.h:86
const char ** argv
Definition: xmipp_program.h:87
void read(int argc, char **argv)
Definition: xmipp_mpi.cpp:240

◆ readParams()

void MpiMetadataProgram::readParams ( )
virtual

Member Data Documentation

◆ blockSize

int MpiMetadataProgram::blockSize
protected

Divide the job in this number block with this number of images

Definition at line 188 of file xmipp_mpi.h.

◆ distributor

MpiTaskDistributor* MpiMetadataProgram::distributor =nullptr
protected

Definition at line 190 of file xmipp_mpi.h.

◆ first

size_t MpiMetadataProgram::first
protected

Definition at line 191 of file xmipp_mpi.h.

◆ imgsId

std::vector<size_t> MpiMetadataProgram::imgsId
protected

Definition at line 189 of file xmipp_mpi.h.

◆ last

size_t MpiMetadataProgram::last
protected

Definition at line 191 of file xmipp_mpi.h.


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