StarPU Handbook - StarPU Applications
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_WORKER_TO_MASK(worker_archtype)
 
#define STARPU_CPU
 
#define STARPU_CUDA
 
#define STARPU_HIP
 
#define STARPU_OPENCL
 
#define STARPU_MAX_FPGA
 
#define STARPU_MPI_MS
 
#define STARPU_TCPIP_MS
 
#define STARPU_CODELET_SIMGRID_EXECUTE
 
#define STARPU_CODELET_SIMGRID_EXECUTE_AND_INJECT
 
#define STARPU_CODELET_NOPLANS
 
#define STARPU_CUDA_ASYNC
 
#define STARPU_HIP_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_HIP_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_SPECIFIC_NODE_LOCAL_OR_CPU
 
#define STARPU_SPECIFIC_NODE_NONE
 
#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_hip_func_t) (void **, void *)
 
typedef void(* starpu_opencl_func_t) (void **, void *)
 
typedef void(* starpu_max_fpga_func_t) (void **, void *)
 
typedef int(* starpu_bubble_func_t) (struct starpu_task *t, void *arg)
 
typedef void(* starpu_bubble_gen_dag_func_t) (struct starpu_task *t, void *arg)
 
typedef struct _starpu_trs_epoch * starpu_trs_epoch_t
 

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
 
struct starpu_taskstarpu_task_create_sync (starpu_data_handle_t handle, enum starpu_data_access_mode mode) STARPU_ATTRIBUTE_MALLOC
 
void starpu_task_destroy (struct starpu_task *task)
 
void starpu_task_set_destroy (struct starpu_task *task)
 
int starpu_task_submit (struct starpu_task *task)
 
int starpu_task_submit_nodeps (struct starpu_task *task)
 
int starpu_task_submit_to_ctx (struct starpu_task *task, unsigned sched_ctx_id)
 
int starpu_task_finished (struct starpu_task *task)
 
int starpu_task_wait (struct starpu_task *task)
 
int starpu_task_wait_array (struct starpu_task **tasks, unsigned nb_tasks)
 
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_ft_prologue (void *check_ft)
 
struct starpu_taskstarpu_task_ft_create_retry (const struct starpu_task *meta_task, const struct starpu_task *template_task, void(*check_ft)(void *))
 
void starpu_task_ft_failed (struct starpu_task *task)
 
void starpu_task_ft_success (struct starpu_task *meta_task)
 
void starpu_task_watchdog_set_hook (void(*hook)(void *), void *hook_arg)
 
char * starpu_task_status_get_as_string (enum starpu_task_status status)
 
void starpu_set_limit_min_submitted_tasks (int limit_min)
 
void starpu_set_limit_max_submitted_tasks (int limit_min)
 
struct starpu_transaction * starpu_transaction_open (int(*do_start_func)(void *buffer, void *arg), void *do_start_arg)
 
void starpu_transaction_next_epoch (struct starpu_transaction *p_trs, void *do_start_arg)
 
void starpu_transaction_close (struct starpu_transaction *p_trs)
 

Variables

struct starpu_codelet starpu_codelet_nop
 

Macro Definition Documentation

◆ STARPU_TASK_INVALID

#define STARPU_TASK_INVALID

old name for STARPU_TASK_INIT