StarPU Handbook
starpu_task.h File Reference
#include <starpu.h>
#include <errno.h>
#include <assert.h>
#include <cuda.h>

Go to the source code of this file.

Data Structures

struct  starpu_codelet
 
struct  starpu_data_descr
 
struct  starpu_task
 

Macros

#define STARPU_NOWHERE
 
#define STARPU_CPU
 
#define STARPU_CUDA
 
#define STARPU_OPENCL
 
#define STARPU_MIC
 
#define STARPU_MPI_MS
 
#define STARPU_CODELET_SIMGRID_EXECUTE
 
#define STARPU_CODELET_SIMGRID_EXECUTE_AND_INJECT
 
#define STARPU_CODELET_NOPLANS
 
#define STARPU_CUDA_ASYNC
 
#define STARPU_OPENCL_ASYNC
 
#define STARPU_MAIN_RAM
 
#define STARPU_TASK_INIT
 
#define STARPU_TASK_INVALID
 
#define STARPU_MULTIPLE_CPU_IMPLEMENTATIONS
 
#define STARPU_MULTIPLE_CUDA_IMPLEMENTATIONS
 
#define STARPU_MULTIPLE_OPENCL_IMPLEMENTATIONS
 
#define STARPU_VARIABLE_NBUFFERS
 
#define STARPU_SPECIFIC_NODE_LOCAL
 
#define STARPU_SPECIFIC_NODE_CPU
 
#define STARPU_SPECIFIC_NODE_SLOW
 
#define STARPU_SPECIFIC_NODE_FAST
 
#define STARPU_TASK_TYPE_NORMAL
 
#define STARPU_TASK_TYPE_INTERNAL
 
#define STARPU_TASK_TYPE_DATA_ACQUIRE
 
#define STARPU_TASK_INITIALIZER
 
#define STARPU_TASK_GET_NBUFFERS(task)
 
#define STARPU_TASK_GET_HANDLE(task, i)
 
#define STARPU_TASK_GET_HANDLES(task)
 
#define STARPU_TASK_SET_HANDLE(task, handle, i)
 
#define STARPU_CODELET_GET_MODE(codelet, i)
 
#define STARPU_CODELET_SET_MODE(codelet, mode, i)
 
#define STARPU_TASK_GET_MODE(task, i)
 
#define STARPU_TASK_SET_MODE(task, mode, i)
 
#define STARPU_CODELET_GET_NODE(codelet, i)
 
#define STARPU_CODELET_SET_NODE(codelet, __node, i)
 

Typedefs

typedef void(* starpu_cpu_func_t) (void **, void *)
 
typedef void(* starpu_cuda_func_t) (void **, void *)
 
typedef void(* starpu_opencl_func_t) (void **, void *)
 
typedef void(* starpu_mic_kernel_t) (void **, void *)
 
typedef starpu_mic_kernel_t(* starpu_mic_func_t) (void)
 
typedef void(* starpu_mpi_ms_kernel_t) (void **, void *)
 
typedef starpu_mpi_ms_kernel_t(* starpu_mpi_ms_func_t) (void)
 

Enumerations

enum  starpu_codelet_type { STARPU_SEQ , STARPU_SPMD , STARPU_FORKJOIN }
 
enum  starpu_task_status {
  STARPU_TASK_INIT , STARPU_TASK_INIT , STARPU_TASK_BLOCKED , STARPU_TASK_READY ,
  STARPU_TASK_RUNNING , STARPU_TASK_FINISHED , STARPU_TASK_BLOCKED_ON_TAG , STARPU_TASK_BLOCKED_ON_TASK ,
  STARPU_TASK_BLOCKED_ON_DATA , STARPU_TASK_STOPPED
}
 

Functions

void starpu_task_init (struct starpu_task *task)
 
void starpu_task_clean (struct starpu_task *task)
 
struct starpu_taskstarpu_task_create (void) STARPU_ATTRIBUTE_MALLOC
 
void starpu_task_destroy (struct starpu_task *task)
 
int starpu_task_submit (struct starpu_task *task) STARPU_WARN_UNUSED_RESULT
 
int starpu_task_submit_to_ctx (struct starpu_task *task, unsigned sched_ctx_id)
 
int starpu_task_finished (struct starpu_task *task) STARPU_WARN_UNUSED_RESULT
 
int starpu_task_wait (struct starpu_task *task) STARPU_WARN_UNUSED_RESULT
 
int starpu_task_wait_array (struct starpu_task **tasks, unsigned nb_tasks) STARPU_WARN_UNUSED_RESULT
 
int starpu_task_wait_for_all (void)
 
int starpu_task_wait_for_n_submitted (unsigned n)
 
int starpu_task_wait_for_all_in_ctx (unsigned sched_ctx_id)
 
int starpu_task_wait_for_n_submitted_in_ctx (unsigned sched_ctx_id, unsigned n)
 
int starpu_task_wait_for_no_ready (void)
 
int starpu_task_nready (void)
 
int starpu_task_nsubmitted (void)
 
void starpu_iteration_push (unsigned long iteration)
 
void starpu_iteration_pop (void)
 
void starpu_do_schedule (void)
 
void starpu_codelet_init (struct starpu_codelet *cl)
 
void starpu_codelet_display_stats (struct starpu_codelet *cl)
 
struct starpu_taskstarpu_task_get_current (void)
 
int starpu_task_get_current_data_node (unsigned i)
 
const char * starpu_task_get_model_name (struct starpu_task *task)
 
const char * starpu_task_get_name (struct starpu_task *task)
 
struct starpu_taskstarpu_task_dup (struct starpu_task *task)
 
void starpu_task_set_implementation (struct starpu_task *task, unsigned impl)
 
unsigned starpu_task_get_implementation (struct starpu_task *task)
 
void starpu_create_sync_task (starpu_tag_t sync_tag, unsigned ndeps, starpu_tag_t *deps, void(*callback)(void *), void *callback_arg)
 
void starpu_create_callback_task (void(*callback)(void *), void *callback_arg)
 
void starpu_task_watchdog_set_hook (void(*hook)(void *), void *hook_arg)
 

Macro Definition Documentation

◆ STARPU_TASK_INVALID

#define STARPU_TASK_INVALID

old name for STARPU_TASK_INIT