August 4, 2010
многопоточность, многоядерность и кэш-линии
Herb Sutter, Maximize Locality, Minimize Contention
Этож надо иметь талант, чтобы простую истину зафигачить в статью аж на три страницы, две диаграммы и несколько кусков исходного кода.
А можно было просто написать:
Позаботьтесь о том, чтобы данные, обрабатываемые в разных потоках, находились в разных кэш-линиях. Дабы в многоядерной системе разные ядра не блокировали друг-друга из-за необходимости постоянно сбрасывать память, находящуюся в кэше одного ядра в кэш другого.
Немного более грамотно эту тему раскрывает Рихтер в 8 главе "Создания эффективных WIN32-приложений", раздел "Кэш-линии".