StarPU Handbook

Data Structures | Functions
Running Drivers

## Data Structures
struct | starpu_driver
union | starpu_driver.id

## Functions
int | starpu_driver_run (struct starpu_driver *d)
void | starpu_drivers_request_termination (void)
int | starpu_driver_init (struct starpu_driver *d)
int | starpu_driver_run_once (struct starpu_driver *d)
int | starpu_driver_deinit (struct starpu_driver *d)

## Detailed Description

## Data Structure Documentation

## ◆ starpu_driver

struct starpu_driver

structure for a driver

Data Fields
enum starpu_worker_archtype | type | Type of the driver. Only STARPU_CPU_WORKER, STARPU_CUDA_WORKER and STARPU_OPENCL_WORKER are currently supported.
union starpu_driver.id | id | Identifier of the driver.

## ◆ starpu_driver.id

union starpu_driver.id

Identifier of the driver.

Data Fields
unsigned | cpu_id |
unsigned | cuda_id |
cl_device_id | opencl_id |

## Function Documentation

## ◆ starpu_driver_run()

int starpu_driver_run | ( | struct starpu_driver * | d | ) |

Initialize the given driver, run it until it receives a request to terminate, deinitialize it and return 0 on success. Return `-EINVAL` if starpu_driver::type is not a valid StarPU device type (STARPU_CPU_WORKER, STARPU_CUDA_WORKER or STARPU_OPENCL_WORKER).

This is the same as using the following functions: calling starpu_driver_init(), then calling starpu_driver_run_once() in a loop, and finally starpu_driver_deinit().

## ◆ starpu_drivers_request_termination()

void starpu_drivers_request_termination | ( | void |  | ) |

Notify all running drivers that they should terminate.

## ◆ starpu_driver_init()

int starpu_driver_init | ( | struct starpu_driver * | d | ) |

Initialize the given driver. Return 0 on success, `-EINVAL` if starpu_driver::type is not a valid starpu_worker_archtype.

## ◆ starpu_driver_run_once()

int starpu_driver_run_once | ( | struct starpu_driver * | d | ) |

Run the driver once, then return 0 on success, `-EINVAL` if starpu_driver::type is not a valid starpu_worker_archtype.

## ◆ starpu_driver_deinit()

int starpu_driver_deinit | ( | struct starpu_driver * | d | ) |

Deinitialize the given driver. Return 0 on success, `-EINVAL` if starpu_driver::type is not a valid starpu_worker_archtype.