Я просто хочу отметить, что ваш вопрос особенно важен в многоядерной архитектуре, где у нескольких процессоров есть свои собственные частные кэши и общие кэши между несколькими ядрами. Для достижения высокой эффективности и масштабируемости параллельный алгоритм должен демонстрировать хорошую пространственную локальность и временную локальность в кэшах данных.
До Магистерской диссертации Харальда Прокопа алгоритмы и структуры данных разрабатывались с учетом кэш-памяти (с учетом кэш-памяти), например, чтобы уменьшить количество пропусков кэш-памяти, например, B-дерево хорошо известный пример структур данных с учетом кэша, в которых параметр B настраивается с использованием размера кэша ЦП. В модели, не обращающей внимания на кэш, из-за рекурсивной природы алгоритмов, подзадачи в конечном итоге помещаются в кеши, а манипулирование такими подзадачами приводит к небольшому количеству пропусков кеша.
Некоторые приятные свойства не обращающих внимания на кэш алгоритмов не зависят от размеров кэша ЦП, хорошо работают с любой иерархией памяти и оказались оптимальными по сложности кеша. С ростом многоядерного параллелизма алгоритмы, не обращающие внимания на кэш, могут играть важную роль в создании производительных параллельных программ. Я также вижу интересную дискуссию о рекурсивных структурах данных и алгоритмах кеширования в следующей статье http://blogs.msdn.com/b/devdev/archive/2007/06/12/cache-oblivious-data-structures.aspx.