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

#include <mpi_validation_nontilt.h>

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

Public Member Functions

void read (int argc, char **argv)
 
void synchronize ()
 Synchronize with other processors. More...
 
void gatherClusterability ()
 Gather alignment. More...
 
- Public Member Functions inherited from ProgValidationNonTilt
void readParams ()
 
void defineParams ()
 
void run ()
 
 ProgValidationNonTilt ()
 
void obtainSumU (const MetaData &tempMd, std::vector< double > &sum_u, std::vector< double > &H0)
 
void obtainSumU_2 (const MetaData &mdGallery, const MetaData &tempMd, std::vector< double > &sum_u, std::vector< double > &H0)
 
void obtainSumW (const MetaData &tempMd, double &sum_W, std::vector< double > &sum_u, std::vector< double > &H, const double factor)
 
- 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

std::unique_ptr< MpiNodenode
 
- Public Attributes inherited from ProgValidationNonTilt
FileName fnDir
 
FileName fnSym
 
FileName fnInit
 
FileName fnParticles
 
MetaDataDb mdPartial
 
size_t rank
 
size_t Nprocessors
 
bool useSignificant
 
double significance_noise
 
- 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 37 of file mpi_validation_nontilt.h.

Member Function Documentation

◆ gatherClusterability()

void MpiProgValidationNonTilt::gatherClusterability ( )
virtual

Gather alignment.

Reimplemented from ProgValidationNonTilt.

Definition at line 41 of file mpi_validation_nontilt.cpp.

42 {
43  /*
44  // Share all Ps and image index
45  MultidimArray<double> aux;
46  if (rank==0)
47  aux.resizeNoCopy(cc);
48  MPI_Reduce(MULTIDIM_ARRAY(weight), MULTIDIM_ARRAY(aux), MULTIDIM_SIZE(weight), MPI_DOUBLE, MPI_MAX, 0, MPI_COMM_WORLD);
49  if (rank==0)
50  weight=aux;
51  MPI_Reduce(MULTIDIM_ARRAY(cc), MULTIDIM_ARRAY(aux), MULTIDIM_SIZE(cc), MPI_DOUBLE, MPI_MAX, 0, MPI_COMM_WORLD);
52  if (rank==0)
53  cc=aux;
54 */
55  // Write all metadatas
56  if (rank!=0)
57  {
58  FileName fnPartial=formatString("%s/partial_node%03d.xmd",fnDir.c_str(),(int)rank);
59  if (mdPartial.size()>0)
60  mdPartial.write(fnPartial);
61  }
62 
63  synchronize();
64 
65  // Now the master takes all of them
66  if (rank==0)
67  {
68  MetaDataDb MDAux;
69  for (size_t otherRank=1; otherRank<Nprocessors; ++otherRank)
70  {
71  FileName fnP = formatString("%s/partial_node%03d.xmd",fnDir.c_str(),(int)otherRank);
72 
73  if (fnP.exists())
74  {
75  MDAux.read(fnP);
76  mdPartial.unionAll(MDAux);
77  deleteFile(fnP);
78  }
79  }
80  }
81 
82  synchronize();
83 
84 }
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 MpiProgValidationNonTilt::read ( int  argc,
char **  argv 
)

Definition at line 28 of file mpi_validation_nontilt.cpp.

29 {
30  node = std::make_unique<MpiNode>(argc, argv);
31  rank = node->rank;
32  Nprocessors = node->size;
33  ProgValidationNonTilt::read(argc, (const char **)argv);
34 }
virtual void read(int argc, const char **argv, bool reportErrors=true)
int argc
Original command line arguments.
Definition: xmipp_program.h:86
std::unique_ptr< MpiNode > node
const char ** argv
Definition: xmipp_program.h:87

◆ synchronize()

void MpiProgValidationNonTilt::synchronize ( )
virtual

Synchronize with other processors.

Reimplemented from ProgValidationNonTilt.

Definition at line 36 of file mpi_validation_nontilt.cpp.

37 {
38  node->barrierWait();
39 }
std::unique_ptr< MpiNode > node

Member Data Documentation

◆ node

std::unique_ptr<MpiNode> MpiProgValidationNonTilt::node

Definition at line 40 of file mpi_validation_nontilt.h.


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