ESyS-Particle  2.3.4
CheckPointer.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2017 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.apache.org/licenses/LICENSE-2.0 //
10 // //
12 
13 
14 #ifndef CHECKPOINTER_H
15 #define CHECKPOINTER_H
16 
17 // --- MPI includes ---
18 #include <mpi.h>
19 
20 //--- TML includes ---
21 #include "tml/comm/comm.h"
22 
23 #include <string>
24 #include <iostream>
25 
26 
27 namespace esys
28 {
29  namespace lsm
30  {
31  class CheckPointable;
32  }
33 }
34 
39 {
40 public:
43  CheckPointer(esys::lsm::CheckPointable &checkPointable, MPI_Comm mpiComm=MPI_COMM_WORLD);
44 
47  virtual ~CheckPointer();
48 
52  virtual void saveRestartable();
53  virtual void saveDump();
54  virtual void saveThroughMaster(TML_Comm&);
55  virtual void loadCheckPoint();
56 
60  virtual void save(std::ostream &oStream);
61 
62  MPI_Comm getMpiComm() const;
63 
64  void setMpiComm(MPI_Comm mpiComm);
65 
66 private:
68  MPI_Comm m_mpiComm;
69 };
70 
71 #endif
CVarMPIBuffer
MPI send/recv buffer with automagically adjusted size.
Definition: mpivbuf.h:35
Console::Debug
Console & Debug()
set verbose level of next message to "dbg"
CheckPointer::save
virtual void save(std::ostream &oStream)
Definition: CheckPointer.cpp:119
mpibarrier.h
TML_Comm::send_gather
void send_gather(T &, int)
Definition: comm_coll.hpp:357
console.h
CheckPointParams::getPrecision
int getPrecision() const
Definition: CheckPointParams.h:39
esys::lsm::CheckPointable::saveCheckPointData
virtual void saveCheckPointData(std::ostream &oStream)=0
CVarMPIBuffer::receiveBroadcast
virtual void receiveBroadcast(int)
Definition: mpivbuf.cpp:262
CheckPointer::setMpiComm
void setMpiComm(MPI_Comm mpiComm)
Definition: CheckPointer.cpp:44
CMPIBarrier
A convenience class encapsulating an MPI barrier. Includes timing of the wait and a debug message ( v...
Definition: mpibarrier.h:31
esys::lsm::CheckPointable::saveSnapShotData
virtual void saveSnapShotData(std::ostream &oStream)
Definition: CheckPointable.cpp:28
esys::lsm::CheckPointable::loadCheckPointData
virtual void loadCheckPointData(std::istream &iStream)=0
esys
Definition: CheckPointable.cpp:17
CheckPointer::m_pCheckPointable
esys::lsm::CheckPointable * m_pCheckPointable
Definition: CheckPointer.h:67
CheckPointer::CheckPointer
CheckPointer(esys::lsm::CheckPointable &checkPointable, MPI_Comm mpiComm=MPI_COMM_WORLD)
Definition: CheckPointer.cpp:29
CheckPointer::saveRestartable
virtual void saveRestartable()
Definition: CheckPointer.cpp:49
CheckPointParams::getFileName
std::string getFileName() const
Definition: CheckPointParams.cpp:41
mpivbuf.h
CheckPointer::loadCheckPoint
virtual void loadCheckPoint()
Definition: CheckPointer.cpp:103
CheckPointer::saveThroughMaster
virtual void saveThroughMaster(TML_Comm &)
Definition: CheckPointer.cpp:82
comm.h
TML_Comm
abstract base class for communicator
Definition: comm.h:47
CheckPointer::saveDump
virtual void saveDump()
Definition: CheckPointer.cpp:68
CheckPointer::~CheckPointer
virtual ~CheckPointer()
Definition: CheckPointer.cpp:35
CheckPointable.h
CheckPointParams.h
CheckPointParams::unpackFrom
static CheckPointParams unpackFrom(AMPIBuffer *mpiBuff, MPI_Comm mpiComm=MPI_COMM_WORLD)
Definition: CheckPointParams.cpp:56
CheckPointer::getMpiComm
MPI_Comm getMpiComm() const
Definition: CheckPointer.cpp:39
CheckPointer::m_mpiComm
MPI_Comm m_mpiComm
Definition: CheckPointer.h:68
CheckPointParams
Definition: CheckPointParams.h:29
console
Console console
Definition: console.cpp:25
esys::lsm::CheckPointable
Definition: CheckPointable.h:27
CheckPointer.h
CheckPointer
Definition: CheckPointer.h:39
CMPIBarrier::wait
void wait(const char *)
Definition: mpibarrier.cpp:32