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

#include <mpi_reconstruct_significant.h>

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

Public Member Functions

 MpiProgReconstructSignificant ()=default
 
 MpiProgReconstructSignificant (const MpiProgReconstructSignificant &)=delete
 
 MpiProgReconstructSignificant (const MpiProgReconstructSignificant &&)=delete
 
 ~MpiProgReconstructSignificant ()
 
MpiProgReconstructSignificantoperator= (const MpiProgReconstructSignificant &)=delete
 
MpiProgReconstructSignificantoperator= (const MpiProgReconstructSignificant &&)=delete
 
void read (int argc, char **argv)
 
void synchronize ()
 Synchronize with other processors. More...
 
void gatherAlignment ()
 Gather alignment. More...
 
- Public Member Functions inherited from ProgReconstructSignificant
 ProgReconstructSignificant ()
 Empty constructor. More...
 
virtual void readParams ()
 Read arguments from command line. More...
 
void defineParams ()
 Read arguments from command line. More...
 
void show ()
 
void run ()
 
void produceSideinfo ()
 Produce side info: fill arrays with relevant transformation matrices. More...
 
void reconstructCurrent ()
 Reconstruct current volume. More...
 
void generateProjections ()
 Generate projections from the current volume. More...
 
void numberOfProjections ()
 
void alignImagesToGallery ()
 Align images to gallery projections. More...
 
- 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 =nullptr
 
- Public Attributes inherited from ProgReconstructSignificant
FileName fnIn
 
FileName fnDir
 
FileName fnSym
 
FileName fnInit
 
FileName fnFirstGallery
 
double alpha0
 
double alphaF
 
double deltaAlpha2
 
int Niter
 
bool keepIntermediateVolumes
 
double angularSampling
 
double maxShift
 
double tilt0
 
double tiltF
 
bool useImed
 
bool strict
 
double angDistance
 
int Nvolumes
 
bool applyFisher
 
bool doReconstruct
 
bool useForValidation
 
size_t numOrientationsPerParticle
 
bool dontCheckMirrors
 
size_t rank
 
size_t Nprocessors
 
MetaDataDb mdIn
 
size_t Xdim
 
std::vector< MetaDataDbmdReconstructionPartial
 
std::vector< MetaDataDbmdReconstructionProjectionMatching
 
MultidimArray< double > cc
 
MultidimArray< double > weight
 
std::vector< std::vector< GalleryImage > > mdGallery
 
std::vector< Image< double > > gallery
 
std::vector< AlignmentTransforms *> galleryTransforms
 
int iter
 
double currentAlpha
 
- 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

Significant reconstruction parameters.

Definition at line 37 of file mpi_reconstruct_significant.h.

Constructor & Destructor Documentation

◆ MpiProgReconstructSignificant() [1/3]

MpiProgReconstructSignificant::MpiProgReconstructSignificant ( )
default

◆ MpiProgReconstructSignificant() [2/3]

MpiProgReconstructSignificant::MpiProgReconstructSignificant ( const MpiProgReconstructSignificant )
delete

◆ MpiProgReconstructSignificant() [3/3]

MpiProgReconstructSignificant::MpiProgReconstructSignificant ( const MpiProgReconstructSignificant &&  )
delete

◆ ~MpiProgReconstructSignificant()

MpiProgReconstructSignificant::~MpiProgReconstructSignificant ( )

Definition at line 28 of file mpi_reconstruct_significant.cpp.

29 {
30  delete node;
31 }

Member Function Documentation

◆ gatherAlignment()

void MpiProgReconstructSignificant::gatherAlignment ( )
virtual

Gather alignment.

Reimplemented from ProgReconstructSignificant.

Definition at line 47 of file mpi_reconstruct_significant.cpp.

48 {
49  // Share weights and cc volumes
51  if (rank==0)
52  aux.resizeNoCopy(cc);
53  xmipp_MPI_Reduce(MULTIDIM_ARRAY(weight), MULTIDIM_ARRAY(aux), MULTIDIM_SIZE(weight), MPI_DOUBLE, MPI_MAX, 0, MPI_COMM_WORLD);
54  if (rank==0)
55  weight=aux;
56  xmipp_MPI_Reduce(MULTIDIM_ARRAY(cc), MULTIDIM_ARRAY(aux), MULTIDIM_SIZE(cc), MPI_DOUBLE, MPI_MAX, 0, MPI_COMM_WORLD);
57  if (rank==0)
58  cc=aux;
59 
60  // Write all metadatas
61  if (rank!=0)
62  for (size_t n=0; n<mdReconstructionPartial.size(); ++n)
63  {
64  FileName fnPartial=formatString("%s/partial_node%03d_%03d.xmd",fnDir.c_str(),(int)rank,(int)n);
65  FileName fnProjectionMatching=formatString("%s/projmatch_node%03d_%03d.xmd",fnDir.c_str(),(int)rank,(int)n);
66 
67  if (mdReconstructionPartial[n].size()>0)
68  mdReconstructionPartial[n].write(fnPartial);
70  mdReconstructionProjectionMatching[n].write(fnProjectionMatching);
71  }
72  synchronize();
73 
74  // Now the master takes all of them
75  if (rank==0)
76  {
77  MetaDataDb MDAux;
78  for (size_t otherRank=1; otherRank<Nprocessors; ++otherRank)
79  {
80  for (size_t n=0; n<mdReconstructionPartial.size(); ++n)
81  {
82  FileName fnPartial=formatString("%s/partial_node%03d_%03d.xmd",fnDir.c_str(),(int)otherRank,(int)n);
83  FileName fnProjectionMatching=formatString("%s/projmatch_node%03d_%03d.xmd",fnDir.c_str(),(int)otherRank,(int)n);
84 
85  if (fnPartial.exists())
86  {
87  MDAux.read(fnPartial);
88  mdReconstructionPartial[n].unionAll(MDAux);
89  deleteFile(fnPartial);
90  }
91  if (fnProjectionMatching.exists())
92  {
93  MDAux.read(fnProjectionMatching);
94  mdReconstructionProjectionMatching[n].unionAll(MDAux);
95  deleteFile(fnProjectionMatching);
96  }
97  }
98  }
99  }
100 
101  // std::cout << "synchronize" << std::endl;
102  synchronize();
103 
104 }
void xmipp_MPI_Reduce(void *send_data, void *recv_data, size_t count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm communicator, size_t blockSize)
Definition: xmipp_mpi.cpp:331
void write(std::ostream &os, const datablock &db)
Definition: cif2pdb.cpp:3747
#define MULTIDIM_SIZE(v)
void resizeNoCopy(const MultidimArray< T1 > &v)
#define MULTIDIM_ARRAY(v)
void deleteFile(const char *line)
Definition: tools.cpp:280
std::vector< MetaDataDb > mdReconstructionProjectionMatching
MultidimArray< double > weight
bool exists() const
void synchronize()
Synchronize with other processors.
String formatString(const char *format,...)
void read(const FileName &inFile, const std::vector< MDLabel > *desiredLabels=NULL, bool decomposeStack=true) override
int * n
std::vector< MetaDataDb > mdReconstructionPartial

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ read()

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

Definition at line 33 of file mpi_reconstruct_significant.cpp.

34 {
35  node = new MpiNode(argc, argv);
36  rank = node->rank;
38 
40 }
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 MpiProgReconstructSignificant::synchronize ( )
virtual

Synchronize with other processors.

Reimplemented from ProgReconstructSignificant.

Definition at line 42 of file mpi_reconstruct_significant.cpp.

43 {
44  node->barrierWait();
45 }
void barrierWait()
Definition: xmipp_mpi.cpp:171

Member Data Documentation

◆ node

MpiNode* MpiProgReconstructSignificant::node =nullptr

Definition at line 40 of file mpi_reconstruct_significant.h.


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