6 #ifndef MYRAMATH_JOBGRAPH_PARALLELJOBGRAPH_H 7 #define MYRAMATH_JOBGRAPH_PARALLELJOBGRAPH_H 14 #include <myramath/MYRAMATH_EXPORT.h> 19 #include <myramath/jobgraph/Options.h> 45 virtual uint64_t n_work()
const;
48 virtual std::string name()
const;
51 virtual void begins(
JobIDs& output)
const;
54 virtual void ends(
JobIDs& output)
const;
57 virtual ::myra::Job* create(
JobID j);
60 virtual std::vector<Job*> create();
63 uint64_t size()
const;
66 virtual ::myra::JobGraphBase* clone()
const;
74 typedef std::vector<JobGraph> Subgraphs;
97 virtual JobID id()
const;
100 virtual void parents(
JobIDs& output)
const;
103 virtual void children(
JobIDs& output)
const;
106 virtual uint64_t execute();
109 virtual std::string name()
const;
112 virtual ~ParallelJob();
117 friend class ParallelJob;
Abstraction to represent one node of a JobGraph.
Definition: Job.h:25
Abstraction to represent one node of a JobGraph.
Contains multiple JobGraph's, can execute() them all in parallel.
Definition: ParallelJobGraph.h:27
Type erasure class that wraps JobGraphBase, gives it value semantics.
Definition: JobGraph.h:64
Base/contract class for all other JobGraph's.
Definition: JobGraph.h:30
Abstraction for representing a directed acyclic graph of Job's.
Key type used to identify the Job's of a JobGraph.
Key type used to identify the Job's of a JobGraph.
Definition: JobID.h:60
std::vector< JobID > JobIDs
Useful typedef.
Definition: JobID.h:118