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:

    Beauclerc: You’ve got a good memory for one who drinks.
    Eddie: Drinkin’ don’t bother my memory. If it did, I wouldn’t drink. I couldn’t. You see, I’d forget how good it was. Then where’d I be? I’d start drinkin’ water again.
    Jules Furthman (1888–1960)

    Scholars and artists thrown together are often annoyed at the puzzle of where they differ. Both work from knowledge; but I suspect they differ most importantly in the way their knowledge is come by. Scholars get theirs with conscientious thoroughness along projected lines of logic; poets theirs cavalierly and as it happens in and out of books. They stick to nothing deliberately, but let what will stick to them like burrs where they walk in the fields.
    Robert Frost (1874–1963)