StarPU Internal Handbook
memory_nodes.h File Reference
#include <starpu.h>
#include <common/config.h>
#include <datawizard/coherency.h>
#include <datawizard/memalloc.h>
#include <datawizard/node_ops.h>
#include <common/utils.h>
#include <core/workers.h>
#include <core/simgrid.h>

Go to the source code of this file.

Data Structures

struct  _starpu_cond_and_worker
 
struct  _starpu_memory_node_descr
 

Macros

#define starpu_node_get_kind
 
#define starpu_memory_nodes_get_count
 
#define starpu_worker_get_memory_node
 

Functions

void _starpu_memory_nodes_init (void)
 
void _starpu_memory_nodes_deinit (void)
 
static void _starpu_memory_node_add_nworkers (unsigned node)
 
void _starpu_worker_drives_memory_node (struct _starpu_worker *worker, unsigned memnode)
 
static struct _starpu_node_ops_starpu_memory_node_get_node_ops (unsigned node)
 
static unsigned _starpu_memory_node_get_nworkers (unsigned node)
 
static void _starpu_simgrid_memory_node_set_host (unsigned node, starpu_sg_host_t host)
 
static starpu_sg_host_t _starpu_simgrid_memory_node_get_host (unsigned node)
 
unsigned _starpu_memory_node_register (enum starpu_node_kind kind, int devid, struct _starpu_node_ops *node_ops)
 
void _starpu_memory_node_register_condition (struct _starpu_worker *worker, starpu_pthread_cond_t *cond, unsigned nodeid)
 
static struct _starpu_memory_node_descr_starpu_memory_node_get_description (void)
 
static enum starpu_node_kind _starpu_node_get_kind (unsigned node)
 
static unsigned _starpu_memory_nodes_get_count (void)
 
static unsigned _starpu_worker_get_memory_node (unsigned workerid)
 

Variables

char _starpu_worker_drives_memory [STARPU_NMAXWORKERS][STARPU_MAXNODES]
 
struct _starpu_memory_node_descr _starpu_descr
 

Data Structure Documentation

◆ _starpu_cond_and_worker

struct _starpu_cond_and_worker
Data Fields
starpu_pthread_cond_t * cond
struct _starpu_worker * worker

◆ _starpu_memory_node_descr

struct _starpu_memory_node_descr
Data Fields
unsigned nnodes
enum starpu_node_kind nodes[STARPU_MAXNODES]
struct _starpu_node_ops * node_ops[STARPU_MAXNODES]
int devid[STARPU_MAXNODES]
unsigned nworkers[STARPU_MAXNODES]
starpu_sg_host_t host[STARPU_MAXNODES]
starpu_pthread_rwlock_t conditions_rwlock
struct _starpu_cond_and_worker conditions_attached_to_node[STARPU_MAXNODES][STARPU_NMAXWORKERS]
struct _starpu_cond_and_worker conditions_all[STARPU_MAXNODES *STARPU_NMAXWORKERS]
unsigned total_condition_count
unsigned condition_count[STARPU_MAXNODES]

Function Documentation

◆ _starpu_worker_drives_memory_node()

void _starpu_worker_drives_memory_node ( struct _starpu_worker worker,
unsigned  memnode 
)

same utility as _starpu_memory_node_add_nworkers

◆ _starpu_worker_get_memory_node()

static unsigned _starpu_worker_get_memory_node ( unsigned  workerid)
inlinestatic

This workerid may either be a basic worker or a combined worker

We have a combined worker