On Fri Feb 3 07:42:20 2023 +0000, Rémi Bernon wrote:
I've added a static affinity shuffle, which helps quite a bit. I'm also now keeping track of the group affinity, and release them to their original affinity slot. That also helps memory consumption and improves group re-use if one thread allocates and another one frees. Only allocating thread get an affinity now.
I have another idea: we can transpose the affinity group pointer array. The array will be taken out of `struct bin`, and its new type will be `struct group *affinity_group[32][BLOCK_SIZE_BIN_COUNT];`. This takes advantage of the fact that the number of bins is constant, or at least bounded.