# Place

A Place represents a single thread of execution in Pheet and its corresponding data-structures. By default, Pheet creates a single place per processor core.

## Methods

### Getting the place id

procs_t get_id()

The id of a place is an unsigned integer in the range [0;P-1], where P is the number of places in the system. Place id's are ordered by locality, so it is guaranteed that a place x+1 is at least as close to place x as place x+2.

### Getting the memory distance between two places

procs_t get_distance(Self* other) const

Gives a relative memory distance between two places. The distance value does not say anything about the cost of memory accesses except that a memory access between two places with distance x is at least as expensive as between two places with distance x-1.

To simplify the implementation of NUMA-aware algorithms we also provide a method for calculating the NUMA distance in newer schedulers. It will return 0 for the distance between places on the same NUMA node.

procs_t get_numa_distance(Self* other) const