StarPU Handbook

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Data Structures | Macros | Functions
Profiling

## Data Structures
struct | starpu_profiling_task_info
struct | starpu_profiling_worker_info
struct | starpu_profiling_bus_info

## Macros
#define | STARPU_PROFILING_DISABLE
#define | STARPU_PROFILING_ENABLE

## Functions
int | starpu_profiling_status_set (int status)
int | starpu_profiling_status_get (void)
void | starpu_profiling_init ()
void | starpu_profiling_set_id (int new_id)
int | starpu_profiling_worker_get_info (int workerid, struct starpu_profiling_worker_info *worker_info)
int | starpu_bus_get_profiling_info (int busid, struct starpu_profiling_bus_info *bus_info)
int | starpu_bus_get_count (void)
int | starpu_bus_get_id (int src, int dst)
int | starpu_bus_get_src (int busid)
int | starpu_bus_get_dst (int busid)
double | starpu_timing_timespec_delay_us (struct timespec *start, struct timespec *end)
double | starpu_timing_timespec_to_us (struct timespec *ts)
void | starpu_profiling_bus_helper_display_summary (void)
void | starpu_profiling_worker_helper_display_summary (void)
void | starpu_data_display_memory_stats ()

## Detailed Description

## Data Structure Documentation

struct starpu_profiling_task_info

This structure contains information about the execution of a task. It is accessible from the field starpu_task::profiling_info if profiling was enabled.

Data Fields
struct timespec | submit_time | Date of task submission (relative to the initialization of StarPU).
struct timespec | push_start_time | Time when the task was submitted to the scheduler.
struct timespec | push_end_time | Time when the scheduler finished with the task submission.
struct timespec | pop_start_time | Time when the scheduler started to be requested for a task, and eventually gave that task.
struct timespec | pop_end_time | Time when the scheduler finished providing the task for execution.
struct timespec | acquire_data_start_time | Time when the worker started fetching input data.
struct timespec | acquire_data_end_time | Time when the worker finished fetching input data.
struct timespec | start_time | Date of task execution beginning (relative to the initialization of StarPU).
struct timespec | end_time | Date of task execution termination (relative to the initialization of StarPU).
struct timespec | release_data_start_time | Time when the worker started releasing data.
struct timespec | release_data_end_time | Time when the worker finished releasing data.
struct timespec | callback_start_time | Time when the worker started the application callback for the task.
struct timespec | callback_end_time | Time when the worker finished the application callback for the task.
int | workerid | Identifier of the worker which has executed the task.
uint64_t | used_cycles | Number of cycles used by the task, only available in the MoviSim
uint64_t | stall_cycles | Number of cycles stalled within the task, only available in the MoviSim
double | power_consumed | Power consumed by the task, only available in the MoviSim

struct starpu_profiling_worker_info

This structure contains the profiling information associated to a worker. The timing is provided since the previous call to starpu_profiling_worker_get_info()

Data Fields
struct timespec | start_time | Starting date for the reported profiling measurements.
struct timespec | total_time | Duration of the profiling measurement interval.
struct timespec | executing_time | Time spent by the worker to execute tasks during the profiling measurement interval.
struct timespec | sleeping_time | Time spent idling by the worker during the profiling measurement interval.
int | executed_tasks | Number of tasks executed by the worker during the profiling measurement interval.
uint64_t | used_cycles | Number of cycles used by the worker, only available in the MoviSim
uint64_t | stall_cycles | Number of cycles stalled within the worker, only available in the MoviSim
double | power_consumed | Power consumed by the worker, only available in the MoviSim

struct starpu_profiling_bus_info

todo

Data Fields
struct timespec | start_time | Time of bus profiling startup.
struct timespec | total_time | Total time of bus profiling.
int long long | transferred_bytes | Number of bytes transferred during profiling.
int | transfer_count | Number of transfers during profiling.

## Macro Definition Documentation

STARPU_PROFILING_DISABLE

This value is used when calling the function starpu_profiling_status_set() to disable profiling.

STARPU_PROFILING_ENABLE

This value is used when calling the function starpu_profiling_status_set() to enable profiling.

## Function Documentation

int starpu_profiling_status_set | ( | int | status | ) |

This function sets the profiling status. Profiling is activated by passing STARPU_PROFILING_ENABLE in status. Passing STARPU_PROFILING_DISABLE disables profiling. Calling this function resets all profiling measurements. When profiling is enabled, the field starpu_task::profiling_info points to a valid structure starpu_profiling_task_info containing information about the execution of the task. Negative return values indicate an error, otherwise the previous status is returned.

int starpu_profiling_status_get | ( | void |  | ) |

Return the current profiling status or a negative value in case there was an error.

int starpu_profiling_init | ( | void |  | ) |

This function resets performance counters and enable profiling if the environment variable STARPU_PROFILING is set to a positive value.

void starpu_profiling_set_id | ( | int | new_id | ) |

This function sets the ID used for profiling trace filename. It needs to be called before starpu_init().

int starpu_profiling_worker_get_info | ( | int | workerid,
|  | struct starpu_profiling_worker_info * | worker_info
| ) |  |

Get the profiling info associated to the worker identified by `workerid`, and reset the profiling measurements. If the argument `worker_info` is NULL, only reset the counters associated to worker `workerid`. Upon successful completion, this function returns 0. Otherwise, a negative value is returned.

int starpu_bus_get_profiling_info | ( | int | busid,
|  | struct starpu_profiling_bus_info * | bus_info
| ) |  |

todo

int starpu_bus_get_count | ( | void |  | ) |

Return the number of buses in the machine

int starpu_bus_get_id | ( | int | src,
|  | int | dst
| ) |  |

Return the identifier of the bus between `src` and `dst`

int starpu_bus_get_src | ( | int | busid | ) |

Return the source point of bus `busid`

int starpu_bus_get_dst | ( | int | busid | ) |

Return the destination point of bus `busid`

double starpu_timing_timespec_delay_us | ( | struct timespec * | start,
|  | struct timespec * | end
| ) |  |

Returns the time elapsed between `start` and `end` in microseconds.

double starpu_timing_timespec_to_us | ( | struct timespec * | ts | ) |

Converts the given timespec `ts` into microseconds

void starpu_profiling_bus_helper_display_summary | ( | void |  | ) |

Displays statistics about the bus on stderr. if the environment variable STARPU_BUS_STATS is defined. The function is called automatically by starpu_shutdown().

void starpu_profiling_worker_helper_display_summary | ( | void |  | ) |

Displays statistics about the workers on stderr if the environment variable STARPU_WORKER_STATS is defined. The function is called automatically by starpu_shutdown().

void starpu_data_display_memory_stats | ( |  | ) |

Display statistics about the current data handles registered within StarPU. StarPU must have been configured with the configure option --enable-memory-stats (see Memory Feedback).