Описание тега false-sharing

Ложное совместное использование - это условие, при котором в параллельных программах строки кэша памяти используются двумя или более потоками, а запись в одну строку кэша вынуждает другие ядра, работающие с той же строкой, повторно проверять свой кеш. Это антипаттерн параллелизма.

Вопросы с этим тегом должны касаться предполагаемой или реальной проблемы ложного совместного доступа.

Ложное совместное использование - это состояние, при котором в параллельных программах строки кэша памяти разделяются двумя или более потоками. Запись в одну строку кэша заставит другие ядра, работающие в той же строке, повторно проверить свой кеш. Это антипаттерн параллелизма.

введите описание изображения здесь

Обратите внимание, что на диаграмме выше поток 1 записывает в A, а не в B, однако поток 2 должен повторно проверить свой кеш, чтобы продолжить вычисления.

Распространенные способы устранения ложного совместного использования включают сохранение локального результата потока для обновления в совместно используемом интервале после завершения вычислений и / или размещение смежных блоков памяти, которые совместно используются, так, чтобы они не находились в одной строке кэша.

Дополнительная информация:

Википедия

Статья в блоге C++ Today