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

#include <mpi_volume_homogenizer.h>

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

Public Member Functions

 MpiProgVolumeHomogenizer ()
 
 ~MpiProgVolumeHomogenizer ()
 
void read (int argc, char **argv)
 
void synchronize ()
 Synchronize with other processors. More...
 
void gatherResults ()
 Gather alignment. More...
 
- Public Member Functions inherited from ProgVolumeHomogenizer
 ProgVolumeHomogenizer ()
 
void readParams ()
 
void defineParams ()
 
void xmipp2Opencv (const MultidimArray< double > &xmippArray, cv::Mat &opencvMat)
 
void convert2Uint8 (cv::Mat opencvDoubleMat, cv::Mat &opencvUintMat)
 
void opencv2Xmipp (const cv::Mat &opencvMat, MultidimArray< double > &xmippArray)
 
void run ()
 
void parameterList (size_t imgSize, int maxParamsTrial, float *paramList)
 
- 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 quit (int exit_code=0) const
 
virtual int tryRun ()
 
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 ()
 

Public Attributes

MpiNodenode
 
- Public Attributes inherited from ProgVolumeHomogenizer
FileName fnVol
 
FileName fnRef
 
FileName fnSetOfImgIn
 
FileName fnSetOfImgOut
 
int winSize
 
double cutFreq
 
MetaDataDb mdPartialParticles
 
size_t rank
 
size_t Nprocessors
 
double pyr_scale
 
int levels
 
int iterations
 
bool addToInput
 
- Public Attributes inherited from XmippProgram
bool doRun
 
bool runWithoutArgs
 
int verbose
 Verbosity level. More...
 
int debug
 

Additional Inherited Members

- Protected Member Functions inherited from XmippProgram
void defineCommons ()
 
- 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
 

Detailed Description

Validation parameters.

Definition at line 34 of file mpi_volume_homogenizer.h.

Constructor & Destructor Documentation

◆ MpiProgVolumeHomogenizer()

MpiProgVolumeHomogenizer::MpiProgVolumeHomogenizer ( )

Definition at line 29 of file mpi_volume_homogenizer.cpp.

30 {
31  node=NULL;
32 }

◆ ~MpiProgVolumeHomogenizer()

MpiProgVolumeHomogenizer::~MpiProgVolumeHomogenizer ( )

Definition at line 34 of file mpi_volume_homogenizer.cpp.

35 {
36  delete node;
37 }

Member Function Documentation

◆ gatherResults()

void MpiProgVolumeHomogenizer::gatherResults ( )
virtual

Gather alignment.

Reimplemented from ProgVolumeHomogenizer.

Definition at line 52 of file mpi_volume_homogenizer.cpp.

53 {
54  // Write all metadatas
55 
56 
57  if (rank!=0)
58  {
59  FileName fnPartial=formatString("partial_node%03d.xmd",(int)rank);
60  if (mdPartialParticles.size()>0)
61  mdPartialParticles.write(fnPartial);
62  }
63 
64  synchronize();
65 
66  // Now the master takes all of them
67  if (rank==0)
68  {
69  MetaDataDb MDAux;
70  for (size_t otherRank=1; otherRank<Nprocessors; ++otherRank)
71  {
72  FileName fnP = formatString("partial_node%03d.xmd",(int)otherRank);
73 
74  if (fnP.exists())
75  {
76  MDAux.read(fnP);
78  deleteFile(fnP);
79  }
80  }
81  }
82 
83  synchronize();
84 
85 }
void synchronize()
Synchronize with other processors.
void deleteFile(const char *line)
Definition: tools.cpp:280
void write(const FileName &outFile, WriteModeMetaData mode=MD_OVERWRITE) const override
bool exists() const
size_t size() const override
String formatString(const char *format,...)
void read(const FileName &inFile, const std::vector< MDLabel > *desiredLabels=NULL, bool decomposeStack=true) override
void unionAll(const MetaDataDb &mdIn)

◆ read()

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

Definition at line 39 of file mpi_volume_homogenizer.cpp.

40 {
41  node = new MpiNode(argc, argv);
42  rank = node->rank;
44  ProgVolumeHomogenizer::read(argc, (const char **)argv);
45 }
size_t size
Definition: xmipp_mpi.h:52
virtual void read(int argc, const char **argv, bool reportErrors=true)
int argc
Original command line arguments.
Definition: xmipp_program.h:86
const char ** argv
Definition: xmipp_program.h:87
size_t rank
Definition: xmipp_mpi.h:52

◆ synchronize()

void MpiProgVolumeHomogenizer::synchronize ( )
virtual

Synchronize with other processors.

Reimplemented from ProgVolumeHomogenizer.

Definition at line 47 of file mpi_volume_homogenizer.cpp.

48 {
49  node->barrierWait();
50 }
void barrierWait()
Definition: xmipp_mpi.cpp:171

Member Data Documentation

◆ node

MpiNode* MpiProgVolumeHomogenizer::node

Definition at line 37 of file mpi_volume_homogenizer.h.


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