-
Notifications
You must be signed in to change notification settings - Fork 0
cm_design
We identify three basic components in the campaign manager's design as shown in the figure below:
- Planner
- Enactor
- Bookkeeper
The planner is the component of the campaign manager that is responsible to decide a plan. The plan is decided based on information such as:
- State of the Campaign,
- Workflow priorities based on user input,
- Available resources, and
- Objective function
The planner is executing the planning algorithm when a new plan needs to be derived, otherwise it waits. Because the planner is not required to execute all the time, it can be triggered via an event.
The enactor is the component that receives a plan from the planner and enacts upon it. The enactor receives a set of workflows along with their priorities, and submits them to EnTK. The enactor communicates with the planner to receive a plan, and the bookkeeper to inform what is happening with the workflows.
The enactor is should always alive and monitoring the execution of workflows via RADICAL-EnTK
The bookkeeper is the component that maps what EnTK does compared to what the user provided. The bookkeeper know the state of execution of the campaign. In addition, the bookkeeper informs the planner to update the plan, in case of failures, resource dynamicity, and plan deviation.
The dashboard offers the following capabilities:
- Communicate campaigns execution state to the user
- Provide methods to input campaigns, workflows
- Update a campaign
Implementation aspects: All three components should run concurrently. Communication between them can be done either through events or signals. From all the components the enactor should be running all the time. The planner and bookkeeper should sleep and wake up as needed.
The campaign state should be persistent. The user should be able to query and edit some aspects of the campaign. Operations that should be supported are:
- Adding workflows
- Change the priority of workflows
- Remove workflows that are not executing or executed.