Люди, я программировал высокоскоростное программное обеспечение более 20 лет и знаю практически каждый трюк в книге из микро-скамьи, делающей совместную работу, профилирование, многозадачность пользовательского режима, рекурсию хвоста, вы называете ее очень высокоэффективной Linux, Windows и многое другое.
Проблема заключается в том, что я нахожусь в недоумении от того, что происходит, когда несколько потоков интенсивной работы с ЦП подвергаются воздействию многоядерных процессоров.
Результаты производительности в микро-тестах различных способов обмена датами между потоками (на разных ядрах), похоже, не следуют логике.
Ясно, что между ядрами существует некоторое "скрытое взаимодействие", которое не очевидно из моего собственного кода программирования. Я слышал о кеше L1 и других проблемах, но это непрозрачно для меня.
Вопрос: где я могу узнать этот материал? Я ищу подробный справочник о том, как работают многоядерные процессоры, как программировать для использования кэшей памяти или другой аппаратной архитектуры, а не наказывать их.
Любые советы или отличные сайты или книги? После большого Googling, я прихожу пустым.
С уважением, Wayne