Generators¶
TaskGenerators are instances whose purpose is to create tasks to be
executed. This is similar to the way Kernels work. A TaskGenerator will
generate Task
objects for you which will be translated into a
radical.pilot.ComputeUnitDescription
and executed. In simple terms:
The task generator creates the bash scripts for you that run a task.
A task generator will be initialized with all parameters needed to make it work and it will now what needs to be staged to be used.
Add generators to project¶
To add a generator to the project for later usage. You pick the
Project.generators()
store and just Bundle.add()
it.
Consider a store to work like a set()
in python. It contains
objects only once and is not ordered.
Therefore we need a name to find the objects later. Of course you can
always iterate over all objects, but the order is not given.
To be precise there is an order in the time of creation of the object, but it is only accurate to seconds and it really is the time it was created and not stored.
project.generators.add(engine)
project.generators.add(modeller)
Note, that you cannot add the same engine twice. But if you create a new engine it will be considered different and hence you can store it again.
Classes¶
TaskGenerator () |
A generator helper for Task object creation |
Engine () |
An generator for trajectory simulation tasks |
Analysis () |
A generator for tasks that represent analysis of trajectories |