6 #ifndef MYRAMATH_JOBGRAPH_FUSEDJOBGRAPH_H 7 #define MYRAMATH_JOBGRAPH_FUSEDJOBGRAPH_H 14 #include <myramath/MYRAMATH_EXPORT.h> 19 #include <myramath/jobgraph/Options.h> 47 void add_edge(
int g0,
JobID j0,
int g1,
JobID j1);
55 virtual uint64_t n_work()
const;
58 virtual std::string name()
const;
61 virtual void begins(
JobIDs& output)
const;
64 virtual void ends(
JobIDs& output)
const;
67 virtual ::myra::Job* create(
JobID j);
70 virtual std::vector<Job*> create();
73 uint64_t size()
const;
81 typedef std::vector<JobGraph> Subgraphs;
85 typedef std::map<JobID,JobIDs> Map;
113 virtual JobID id()
const override;
116 virtual void parents(
JobIDs& output)
const;
119 virtual void children(
JobIDs& output)
const;
122 virtual uint64_t execute();
125 virtual std::string name()
const;
133 friend class FusedJob;
Abstraction to represent one node of a JobGraph.
Definition: Job.h:25
Abstraction to represent one node of a JobGraph.
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
Contains multiple JobGraph's, fuses them together.
Definition: FusedJobGraph.h:31