Motr  M0
m0_pdclust_instance::tile_cache Struct Reference

#include <pdclust.h>

Collaboration diagram for m0_pdclust_instance::tile_cache:
Collaboration graph

Data Fields

uint64_t tc_tile_no
 
uint32_t * tc_permute
 
uint32_t * tc_inverse
 
uint32_t * tc_lcode
 

Detailed Description

Caches information about the most recently used tile.

Some auxiliary data, such as permutations, used by layout mapping function is relatively expensive to re-compute. To reduce the overhead, such information is cached.

Currently only information for a single tile is cached. More sophisticated schemes are possible.

Definition at line 184 of file pdclust.h.

Field Documentation

◆ tc_inverse

uint32_t* tc_inverse

Inverse column permutation.

Invariant
tc_permute[tc_inverse[x]] == x
tc_inverse[tc_permute[x]] == x

Definition at line 202 of file pdclust.h.

◆ tc_lcode

uint32_t* tc_lcode

Lehmer code of permutation. This array of m0_pdclust_layout::pl_P elements is used to generate tc_permute[] and tc_inverse[] arrays. Strictly speaking, it is not needed after above arrays are built, but it is kept for completeness.

Technically speaking, this array is a lexicographic number of permutation written in factorial number system (see HLD for references).

See also
http://en.wikipedia.org/wiki/Lehmer_code

Definition at line 217 of file pdclust.h.

◆ tc_permute

uint32_t* tc_permute

Column permutation for this tile. This is an array of m0_pdclust_layout::pl_P elements, each element less than m0_pdclust_layout::pl_P without duplicates.

Definition at line 194 of file pdclust.h.

◆ tc_tile_no

uint64_t tc_tile_no

Tile to which caches information pertains.

Definition at line 186 of file pdclust.h.


The documentation for this struct was generated from the following file: