Accelerated Computation Engine
|
#include <ace_analytic_mpimaster.h>
Public Member Functions | |
virtual bool | isFinished () const override final |
MPIMaster (quint16 type) | |
virtual | ~MPIMaster () override final |
![]() | |
quint16 | analyticType () const |
int | size () const |
EAbstractAnalytic::Input::Type | type (int index) const |
QVariant | data (int index, EAbstractAnalytic::Input::Role role) const |
QList< QString > | commandLineArguments () const |
void | set (int index, const QVariant &value) |
![]() | |
virtual void | saveResult (std::unique_ptr< EAbstractAnalytic::Block > &&result) |
AbstractInput ()=default | |
~AbstractInput () | |
Protected Member Functions | |
virtual int | index () const override final |
virtual void | writeResult (std::unique_ptr< EAbstractAnalytic::Block > &&result) override final |
![]() | |
virtual void | mpiStart (Type type, int platform, int device) |
AbstractMPI (quint16 type) | |
![]() | |
virtual QFile * | addOutputFile (const QString &path) |
virtual Ace::DataObject * | addOutputData (const QString &path, quint16 type, const EMetadata &system) |
AbstractManager (quint16 type) | |
std::unique_ptr< EAbstractAnalytic::Block > | makeWork (int index) |
void | writeResult (std::unique_ptr< EAbstractAnalytic::Block > &&result, int expectedIndex) |
EAbstractAnalytic * | analytic () |
const EAbstractAnalytic * | analytic () const |
Additional Inherited Members | |
![]() | |
enum | Type { Serial, OpenCL } |
![]() | |
void | initialize () |
void | terminationRequested () |
void | finish () |
![]() | |
void | progressed (int percentComplete) |
void | done () |
void | finished () |
![]() | |
static std::unique_ptr< Ace::Analytic::AbstractManager > | makeManager (quint16 type, int index, int size) |
![]() | |
enum | Code { Terminate = -1, ReadyAsSerial = -2, ReadyAsOpenCL = -3 } |
![]() | |
virtual void | start () override final |
![]() | |
virtual void | start () |
This is the MPI master manager. This manager is used for an MPI run with the node that has world rank 0. The main function of this class is to create new work blocks and assign their execution to other slave nodes within the MPI run, along with getting results back and saving them to the manager's underlying analytic with the indexes being in order. Because this manager does not process blocks itself it has no abstract run object of its own. Also this manager does not start giving out work blocks to slave nodes until they signal they are ready to process them.
|
explicit |
Constructs a new MPI master manager with the given analytic type.
type | The analytic type this manager will use. |
|
finaloverridevirtual |
Properly shuts down the MPI system.
|
finaloverrideprotectedvirtual |
Implements the interface that returns the next expected result block index to maintain order of result blocks.
Reimplemented from Ace::Analytic::AbstractInput.
|
finaloverridevirtual |
Implements the interface that tests if this abstract input is finished and received all result blocks for its analytic.
Implements Ace::Analytic::AbstractInput.
|
finaloverrideprotectedvirtual |
Implements the interface that is called to save the given result block to the underlying analytic and it can be assumed that the index order is maintained from least to greatest.
result | The result block that is processed by this manager's analytic. |
Reimplemented from Ace::Analytic::AbstractInput.