Search code examples
language-agnosticcachingmulticore

What advantages are there to programming for a non-cache-coherent multi-core machine?


What advantages are there to programming for a non-cache-coherent multi-core machine? Cache_coherence has many benefits, but how would one take advantage of the opposite of this feature - an independent cache for each individual core. What programming paradigm and to what particular practical problems would such an architecture be beneficial over a cache-coherent one?


Solution

  • What programming paradigm

    Message passing.

    and to what particular practical problems would such an architecture be beneficial over a cache-coherent one?

    Pattern matching - the input block of memory could very well be "read-only": the "output" result can very well be placed in separate blocks waiting for a "reducer" of some sort.

    Of course, this is just an example amongst many I am sure.


    Just to make things clear: the principal reasons for going with "non-cache-coherent" architecture are cost & speed (assuming the problems at hand are more efficiently tackled using this architecture).