Кто-нибудь знает об опубликованных тестах издержек блокировки вместо того, чтобы полагаться только на атомарные операции / встроенные функции (в многопроцессорной системе) только?
Меня особенно интересуют общие выводы, например что-то вроде «независимо от платформы, блокировка, по крайней мере, в X раз медленнее, чем внутренняя. ”(Вот почему я не могу просто сравнить себя.)
Меня интересуют прямые сравнения, напримернасколько быстрее используется
#pragma omp atomic
++x;
вместо
#pragma omp critical
++x;
(при условии, что любое другое обновление x
также критично).
По сути, мне нужноэто оправдывает сложную реализацию без блокировки вместо простой реализации блокировки, где голодание не является проблемой.Традиционно считается, что, хотя блокировка проще, реализации без блокировки имеют массу преимуществ.Но мне трудно найти надежные данные.