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