StarPU Internal Handbook

Macros | Functions
topology.h File Reference
`#include <starpu.h>`
`#include <common/config.h>`
`#include <common/list.h>`
`#include <common/fxt.h>`

Go to the source code of this file.

## Macros
#define | STARPU_NOWORKERID
#define | STARPU_ACTIVETHREAD
#define | STARPU_NONACTIVETHREAD

## Functions
int | _starpu_build_topology (struct _starpu_machine_config *config, int no_mp_config)
void | _starpu_destroy_machine_config (struct _starpu_machine_config *config)
void | _starpu_destroy_topology (struct _starpu_machine_config *config)
unsigned | _starpu_topology_get_nhwcpu (struct _starpu_machine_config *config)
unsigned | _starpu_topology_get_nhwpu (struct _starpu_machine_config *config)
unsigned | _starpu_topology_get_nnumanodes (struct _starpu_machine_config *config)
unsigned | _starpu_get_nhyperthreads ()
void | _starpu_topology_filter (hwloc_topology_t topology)
int | _starpu_bind_thread_on_cpu (int cpuid, int workerid, const char *name)
void | _starpu_bind_thread_on_cpus (struct _starpu_combined_worker *combined_worker)
struct _starpu_worker * | _starpu_get_worker_from_driver (struct starpu_driver *d)
int | starpu_memory_nodes_get_numa_count (void)
int | starpu_memory_nodes_numa_id_to_hwloclogid (unsigned id)
int | _starpu_task_data_get_node_on_node (struct starpu_task *task, unsigned index, unsigned target_node)
int | _starpu_task_data_get_node_on_worker (struct starpu_task *task, unsigned index, unsigned worker)

## Function Documentation

## ◆ _starpu_build_topology()

int _starpu_build_topology | ( | struct _starpu_machine_config * | config,
|  | int | no_mp_config
| ) |  |

Detect the number of memory nodes and where to bind the different workers.

## ◆ _starpu_destroy_machine_config()

void _starpu_destroy_machine_config | ( | struct _starpu_machine_config * | config | ) |

Should be called instead of _starpu_destroy_topology when _starpu_build_topology returns a non zero value.

## ◆ _starpu_destroy_topology()

void _starpu_destroy_topology | ( | struct _starpu_machine_config * | config | ) |

Destroy all resources used to store the topology of the machine.

## ◆ _starpu_topology_get_nhwcpu()

unsigned _starpu_topology_get_nhwcpu | ( | struct _starpu_machine_config * | config | ) |

returns the number of physical cpus

## ◆ _starpu_topology_get_nhwpu()

unsigned _starpu_topology_get_nhwpu | ( | struct _starpu_machine_config * | config | ) |

returns the number of logical cpus

## ◆ _starpu_topology_get_nnumanodes()

unsigned _starpu_topology_get_nnumanodes | ( | struct _starpu_machine_config * | config | ) |

returns the number of NUMA nodes

## ◆ _starpu_get_nhyperthreads()

unsigned _starpu_get_nhyperthreads | ( |  | ) |

returns the number of hyperthreads per core

## ◆ _starpu_topology_filter()

void _starpu_topology_filter | ( | hwloc_topology_t | topology | ) |

Small convenient function to filter hwloc topology depending on HWLOC API version

## ◆ _starpu_bind_thread_on_cpu()

int _starpu_bind_thread_on_cpu | ( | int | cpuid,
|  | int | workerid,
|  | const char * | name
| ) |  |

Bind the current thread on the CPU logically identified by "cpuid". The logical ordering of the processors is either that of hwloc (if available), or the ordering exposed by the OS.

## ◆ _starpu_bind_thread_on_cpus()

void _starpu_bind_thread_on_cpus | ( | struct _starpu_combined_worker * | combined_worker | ) |

Bind the current thread on the set of CPUs for the given combined worker.

## ◆ _starpu_task_data_get_node_on_node()

int _starpu_task_data_get_node_on_node | ( | struct starpu_task * | task,
|  | unsigned | index,
|  | unsigned | target_node
| ) |  |

Get the memory node for data number i when task is to be executed on memory node target_node