When using the Optimization Server, you will find the following concepts:
- The Master is a Rest-API application that stands for the main entry point to the Optimization server.
- The Workers are the nodes that execute CPU-intensive computations, like optimization. They consist in
docker-based applications that can easily be scaled.
- The Clients are built-in applications used to interact with the master.
For example, the Web console is a web client that allows to create and monitor jobs.
- Task: a task describes a kind of work that Optimization Server can execute on a worker. A task has an identifier,
a description, inputs and outputs. See in Custom workers Section how to define tasks.
- Job: a job is a task instance, that is executed by Optimization Server. Job creation is being given inputs, that
should be a sub-set of the inputs declared in the related task. The job is ran on a worker and its output(s) should be a
sub-set of the outputs declared in the related task. Several jobs can run in parallel, thus the execution order of jobs is not guarantee.
- Bucket: a bucket represents a job input or output data.
- Job Flow: a job flow is a graph of jobs, eg: a set of jobs and relations between these jobs. A typical use case is
a “map-reduce” kind of optimization, with a root job that divides the model into sub-models and creates children jobs to
solve these sub-models on other workers. In this example, the job flow would be a “star” with the root job being the
parent of all the other jobs. Job flows can be visualized in the web console. See in
Map-reduce kind of task Section how to create sub-jobs.