Accelerated Computation Engine
|
#include <ace_analytic_abstractmpi.h>
Public Types | |
enum | Type { Serial, OpenCL } |
Protected Types | |
enum | Code { Terminate = -1, ReadyAsSerial = -2, ReadyAsOpenCL = -3 } |
Protected Slots | |
virtual void | start () override final |
![]() | |
virtual void | start () |
Protected Member Functions | |
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 | |
![]() | |
void | initialize () |
void | terminationRequested () |
void | finish () |
![]() | |
void | progressed (int percentComplete) |
void | done () |
void | finished () |
![]() | |
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) |
![]() | |
static std::unique_ptr< Ace::Analytic::AbstractManager > | makeManager (quint16 type, int index, int size) |
This represents the common resources required for both master and slave MPI managers. The primary purpose of this class is to have each local rank 0 node assign the different resources of the system to all nodes which share them in the same local rank. The one interface this abstract class has is called for starting the MPI run of a slave node, assigning them a specific resource to use. The master node with local rank 0 skips itself in assigning resources since it does not execute blocks like a slave node. This class also defines special codes passed between master and slave nodes.
|
protected |
Defines the resource types that slave nodes can be assigned to execute as.
Enumerator | |
---|---|
Serial | Defines the serial resource which causes a slave node to run in plain serial mode with no OpenCL device. Defines the OpenCL resource which causes the slave node to run in accelerated OpenCL mode with a given platform and device index. |
|
explicitprotected |
Constructs a new abstract MPI object with the given analytic type.
type | Analytic type that is used for this manager's analytic run. |
|
protectedvirtual |
This interface is called to start this MPI manager as a slave node with the given resource type and optional platform and device index. The platform and device index is only used if the given resource type is OpenCL. The default implementation throws an exception because if this is called it should be implemented.
type | The resource type this MPI slave node runs as. |
platform | The optional platform index for the resource type if it is OpenCL. |
device | The optional device index for the resource type if it is OpenCL. |
Reimplemented in Ace::Analytic::MPISlave.
|
finaloverrideprotectedvirtualslot |
Implements the interface that is called once to begin the analytic run for this manager after all argument input has been set. This implementation assigns the resources of the local system only if this MPI node is local rank 0.