StarPU Handbook
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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)
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 energy_consumed Energy 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 energy_consumed Energy 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.

void 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).