Accelerated Computation Engine
ace_analytic_mpislave.h
1 #ifndef ACE_ANALYTIC_MPISLAVE_H
2 #define ACE_ANALYTIC_MPISLAVE_H
3 #include "ace_analytic_abstractmpi.h"
4 #include "ace_analytic_abstractinput.h"
5 #include "ace_analytic.h"
6 //
7 
8 
9 
10 namespace Ace
11 {
12  namespace Analytic
13  {
24  class MPISlave : public AbstractMPI, public AbstractInput
25  {
26  Q_OBJECT
27  public:
28  virtual bool isFinished() const override final;
29  public:
30  explicit MPISlave(quint16 type);
31  virtual ~MPISlave() override final;
32  protected:
33  virtual void mpiStart(Type type, int platform, int device) override final;
34  virtual QFile* addOutputFile(const QString& path) override final;
35  virtual Ace::DataObject* addOutputData(const QString& path, quint16 type, const EMetadata& system) override final;
36  virtual void saveResult(std::unique_ptr<EAbstractAnalytic::Block>&& result) override final;
37  private slots:
38  void dataReceived(const QByteArray& data, int fromRank);
39  private:
40  void processCode(int code);
41  void process(const QByteArray& data);
42  bool setupOpenCL(int platform, int device);
43  void setupSerial();
47  QMPI& _mpi;
51  AbstractRun* _runner {nullptr};
55  int _workSize {0};
60  bool _finished {false};
61  };
62  }
63 }
64 
65 
66 
67 #endif
Definition: ace_analytic_mpislave.h:24
virtual QFile * addOutputFile(const QString &path) override final
Definition: ace_analytic_mpislave.cpp:145
virtual bool isFinished() const override final
Definition: ace_analytic_mpislave.cpp:33
Definition: ace.h:6
Definition: ace_analytic_abstractinput.h:24
EAbstractAnalytic::Input::Type type(int index) const
Definition: ace_analytic_abstractmanager.cpp:136
MPISlave(quint16 type)
Definition: ace_analytic_mpislave.cpp:50
Definition: ace_qmpi.h:25
virtual void saveResult(std::unique_ptr< EAbstractAnalytic::Block > &&result) override final
Definition: ace_analytic_mpislave.cpp:194
virtual void mpiStart(Type type, int platform, int device) override final
Definition: ace_analytic_mpislave.cpp:91
virtual Ace::DataObject * addOutputData(const QString &path, quint16 type, const EMetadata &system) override final
Definition: ace_analytic_mpislave.cpp:172
Definition: emetadata.h:22
Definition: ace_analytic_abstractmpi.h:22
QVariant data(int index, EAbstractAnalytic::Input::Role role) const
Definition: ace_analytic_abstractmanager.cpp:157
Definition: ace_analytic_abstractrun.h:20
virtual ~MPISlave() override final
Definition: ace_analytic_mpislave.cpp:67
Type
Definition: ace_analytic_abstractmpi.h:29
Definition: ace_dataobject.h:21