Тест LockFreeStack (состояние переподписки)

Я реализовал стек без блокировки, основанный на примере книги «Параллелизм в действии». Я хотел сравнить его с другими стеками без блокировок, т.е. с boost :: lockfree. Для проведения этих тестов я использовал каркас бенчмарков Google, измеряя время одной операции при разных конфликтах (под операцией я подразумеваю push / pop, которые вызывались в случайном порядке).

Run on (8 X 3400 MHz CPU s)
CPU Caches:
L1 Data 32K (x4)
L1 Instruction 32K (x4)
L2 Unified 256K (x4)
L3 Unified 6144K (x1)
----------------------------------------------------------------------------------
Benchmark                                           Time           CPU Iterations
----------------------------------------------------------------------------------
BM_lockFreeStack/real_time/threads:1              136 ns        136 ns    5145339
BM_lockFreeStack/real_time/threads:2              184 ns        367 ns    3785648
BM_lockFreeStack/real_time/threads:4              207 ns        820 ns    3361952
BM_lockFreeStack/real_time/threads:8              209 ns       1639 ns    3387024
BM_lockFreeStack/real_time/threads:16             167 ns        957 ns    4269504
BM_lockFreeStack/real_time/threads:32             150 ns        590 ns    4866592
BM_boostLockFreeStack/real_time/threads:1          66 ns         66 ns   10510435
BM_boostLockFreeStack/real_time/threads:2         133 ns        265 ns    5713306
BM_boostLockFreeStack/real_time/threads:4         122 ns        475 ns    5809292
BM_boostLockFreeStack/real_time/threads:8         128 ns        944 ns    5432072
BM_boostLockFreeStack/real_time/threads:16        129 ns        989 ns    5461120
BM_boostLockFreeStack/real_time/threads:32        129 ns       1017 ns    5447776

Как видите, я использовал процессор с 8 потоками. Что меня удивляет, так это результаты для потоков 16/32 (lockFreeStack), где среднее время работы меньше результатов для потоков 2/4/8. Подобные результаты согласуются каждый раз, когда я запускаю эти тесты.

Есть ли логическое объяснение этому поведению?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]