многопоточность — локальное хранилище ядра процессора в Stack Overflow

Я думал о том, чтобы иметь мьютекс и данные для каждого кэша (или для каждого ядра, предполагая, что каждое ядро ​​имеет свой собственный кэш в целевой архитектуре), чтобы попытаться оптимизировать параллельный алгоритм с целью минимизации очистки кэша и пропусков между ядрами. Цель, которую я имел в виду, состояла в том, чтобы попытаться уменьшить количество кеш-памяти для других потоков и обеспечить больше параллелизма и производительности в системе. Какова обычная стратегия достижения чего-то подобного в C ++? Как я могу попытаться определить, к какой строке кэша поток будет обращаться к мьютексу и данным потока, хранящимся в кеше, ближайшем к этому потоку?

Я слышал о людях, которые делают подобные вещи с параллельными алгоритмами, но я понятия не имею, с чего начать пытаться реализовать что-то подобное.

Например, я вижу это в справочных страницах Linux — http://man7.org/linux/man-pages/man2/getcpu.2.html, это заставляет меня думать, что такого рода оптимизации выполняются на практике.

(Это может быть слишком широкий вопрос. Я буду готов переместить его на другой сайт, изменить теги или полностью отказаться от вопроса, если люди так думают, дайте мне знать)

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]