Здравствуйте, kot--, Вы писали:
K> Скомпилированный с оптимизацией(/O2) по скорости экзешник считает на 20% чем его однопоточный(/O2).
K> Скомпилированный БЕЗ ОПТИМИЗАЦИИ(/Od) — на 77% быстрее однопоточный(/Od).
Как вариант: false sharing (ping-ponging):
http://www.ddj.com/architect/208200273?pgno=3
В неоптимизированной версии данные, которыми оперируют разные потоки, разнесены дальше, а в оптимизированное попадают на одну cache line. Эта cache line постоянно инвалидируется, что замедляет работу программы.