Data Structure Alignment - Allocating Memory Aligned To Cache Lines

Allocating Memory Aligned To Cache Lines

It would be beneficial to allocate memory aligned to cache lines. If an array is partitioned for more than one thread to operate on, having the sub-array boundaries unaligned to cache lines could lead to performance degradation. Here is an example to allocate memory (double array of size 10) aligned to cache of 64 bytes.

#include double *foo(void) { double *var;//create array of size 10 int ok; ok = posix_memalign((void**)&var, 64, 10*sizeof(double)); if(ok != 0) return NULL; return var; }

Read more about this topic:  Data Structure Alignment

Famous quotes containing the words memory and/or lines:

    Memory is like a purse,—if it be over-full that it cannot shut, all will drop out of it. Take heed of a gluttonous curiosity to feed on many things, lest the greediness of the appetite of thy memory spoil the digestion thereof.
    Thomas Fuller (1608–1661)

    There is something to be said for government by a great aristocracy which has furnished leaders to the nation in peace and war for generations; even a Democrat like myself must admit this. But there is absolutely nothing to be said for government by a plutocracy, for government by men very powerful in certain lines and gifted with the “money touch,” but with ideals which in their essence are merely those of so many glorified pawnbrokers.
    Theodore Roosevelt (1858–1919)