Re[3]: Оптимизация: многопоточность
От: мыщъх США http://nezumi-lab.org
Дата: 13.11.09 20:23
Оценка:
Здравствуйте, CyberDemon, Вы писали:

CD>Да там общих то данных практически нет.

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

CD>Еще случайно обнаружил вот какой факт:

CD>если у процесса изменить affinity mask таким образом, чтобы кол-во задействованных ядер совпадало с кол-вом рабочих потоков, то общая производительность резко возрастает. Походу исключаются некоторые промахи кеша.
неудивительно. вы ж закрепили за ядрами "свои" потоки. если их не закрепить, то планировщик оси перебрасывает поток на любое свободное ядро. допустим, поток A1 выполнялся на ядре C1, а поток A2 — на C2. и оба они успели скэшироваться (кэш первого уровня у всех ядер свой собственный). и тут — оба! планировщик кидает A1 на C2 или даже на C3. и привет! а если и процессоров больше одного, то это ласты полные и окончательные, т.к. у них еще и кэш второго уровня у всех свой собственный.

ЗЫ. affinity mask задает не кол-во используемых ядер, а именно закрепляет потоки за ядрами. так что сдается мне, что вы неправильно поняли назначение этой функции.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.