Skip to content

Commit 2ad4942

Browse files
committed
add results.md to task1
1 parent 5349827 commit 2ad4942

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

task1/results.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
### Технические характеристики оборудования, на котором проводился эксперимент:
2+
* CPU - AMD Ryzen 7 6800H
3+
* RAM - 16 GB @ 6400Mhz
4+
* Операционная система - Windows 11
5+
* Версия компилятора Kotlin - 1.9.22
6+
* JVM - OpenJDK 21.0.2
7+
8+
9+
### Численный эксперимент
10+
11+
12+
Все эксперименты проводились на 8 и 16 потоках.
13+
14+
8 потоков:
15+
16+
| Operations | Elimination Backoff (ops/ms) | Lockfree (ops/ms) | Acceleration |
17+
|------------------|------------------------------|---------------------|-------|
18+
| 50% push 50% pop | 48153.100 ± 4433.199 | 6037.749 ± 147.801 | 7.976 |
19+
| 75% push 25% pop | 19209.239 ± 4158.492 | 4664.322 ± 815.313 | 4.118 |
20+
| 25% push 75% pop | 41811.707 ± 9603.372 | 6050.935 ± 3184.432 | 6.910 |
21+
22+
16 потоков:
23+
24+
| Operations | Elimination Backoff (ops/ms) | Lockfree (ops/ms) | Acceleration |
25+
|------------------|------------------------------|---------------------|-------|
26+
| 50% push 50% pop | 37249.368 ± 3230.023 | 2964.065 ± 181.665 | 10.112 |
27+
| 75% push 25% pop | 18468.032 ± 3752.513 | 3460.063 ± 702.415 | 5.389 |
28+
| 25% push 75% pop | 33184.18 ± 6153.023 | 3890.015 ± 1479.412 | 8.530 |
29+
30+
31+
### Комментарии
32+
33+
Сразу бросается в глаза зависимость ускорения от количестса потоков, где в лучшем случае мы видим прирост в 28% (при
34+
равно количестве операций).
35+
36+
Рассмотрим отношение операций и производительности на примере 16 потоков:
37+
Сравнивая полученные результаты с результами из [статьи](https://people.csail.mit.edu/shanir/publications/Lock_Free.pdf), можно сказать, что прирост производительности при 50% push 50% pop совпал.
38+
Касаемо случая с 25% push 75% pop, прирост получается чуть меньше за счёт меньшего числа коллизий.
39+
40+
Что интересно, эксперимент с 75% push 25% pop имеет ту же особенность, но при этом скорость стека с elimination гораздо ниже двух
41+
предыдущих случаев. Можно предположить, что из-за операции push размер памяти, занимаемый стеком увеличевается, и
42+
это приводит к снижению производительности обоих стеков, причем у стека elimination замедляется прирост по сравнению
43+
со стеком Трайбера (всего 438%).
44+
45+

0 commit comments

Comments
 (0)