Skip to content

cm_design

Ioannis Paraskevakos edited this page Oct 15, 2019 · 2 revisions

We identify three basic components in the campaign manager's design as shown in the figure below:

  1. Planner
  2. Enactor
  3. Bookkeeper

CM design

Component Description:

Planner

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:

  1. State of the Campaign,
  2. Workflow priorities based on user input,
  3. Available resources, and
  4. 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.

Enactor

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

Bookkeeper

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.

Additional components

Dashboard.

The dashboard offers the following capabilities:

  1. Communicate campaigns execution state to the user
  2. Provide methods to input campaigns, workflows
  3. Update a campaign

Ideas

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:

  1. Adding workflows
  2. Change the priority of workflows
  3. Remove workflows that are not executing or executed.
Clone this wiki locally