## UfoScheduler

UfoScheduler — Expansion-based scheduler

## Functions

GQuark | ufo_scheduler_error_quark ()

## Types and Values

#define | UFO_SCHEDULER_ERROR
enum | UfoSchedulerError
struct | UfoScheduler
struct | UfoSchedulerClass

## Object Hierarchy

        GObject
        ╰── UfoBaseScheduler
            ╰── UfoScheduler

## Implemented Interfaces

UfoScheduler implements GInitable.

## Description

A scheduler that automatically distributes data according to an expansion policy among different hardware resources. For that, paths of large work are duplicated inside the UfoTaskGraph and assigned to distinct GPUs.

## Functions

### ufo_scheduler_error_quark ()

    GQuark
    ufo_scheduler_error_quark (void);

## Types and Values

### UFO_SCHEDULER_ERROR

    #define UFO_SCHEDULER_ERROR            ufo_scheduler_error_quark()

### enum UfoSchedulerError

#### Members

UFO_SCHEDULER_ERROR_SETUP | Could not start scheduler due to error |

### struct UfoScheduler

    struct UfoScheduler;

The base class scheduler is responsible of assigning command queues to filters (thus managing GPU device resources) and decide if to run a GPU or a CPU. The actual schedule planning can be overriden.

### struct UfoSchedulerClass

    struct UfoSchedulerClass {
    };

UfoScheduler class