----------------------------------------------------------------------------------
@MSGID: 2:5055/182 8db7c69d
@PID: jNode ver. 1.5
@TID: jNode ver. 1.5
@CHRS: CP866 2
[](
https://telegra.ph/file/4a6c00889f4a8dad8c08c.jpg)**Нам хоть бревна
катать - лишь бы лежа**
[Вот сколько лет уже существуют многоядерники - столько существует
невидимаяпроблема.](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0
%BC%D0%BC%D0%BD%D0%B0%D1%8F_%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%
B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C)
Имя этой проблемы - lock contention.
Ее стыдливо предпочитают не замечать, думая, что вот виртуализация-то
и порешает все проблемки, как волшебная пуля.
Щаз, ять.
Проблему в большинстве случаев просто не видят (не у всех ОС в
шаговой доступности имеется lockstat), а засада в том, что еще и ядра и
компоненты ОС однопоточные. В лучшем случае thread-safe, с сериализацией на
примитиве блокировки.
Транзакционная память без аппаратной поддержки? Ню-ню, чуваки и
чувихи. Ню-ню. Атомики на мьютексах напомнить? Как оно, не подскажете?
Суть проблемы, однако же, в том, что thread-aware (в отличие от
thread-safe) - это сложна-сложна-сложна, почему так сложна?!
Виртуализация тут не рулит, так как, хотя вы и можете, конечно же,
намазать на суповую тарелку о нескольких десятках ядер ВМки на 2-4 vCPU, но
вот сам гипервизор - это не легковесный LDOM, а полноценная ось, с
однопоточным ядром и компонентами. И там как была сериализация и lock contention
- так и осталась.
Сильвупле.
Соответственно, очень хочу посмотреть, как вы эффективно утилизируете
суповые тарелки - даже не с высоченным параллелизмом, а хотя бы без
сериализации на разделяемых компонентах гипервизоров.
Прорывов в алгоритмике MPP я что-то не наблюдаю, а вот [гонку
суповых тарелок](
https://servernews.ru/1093110) - вполне.
На что они рассчитывают, понятно - а вот на что рассчитываете вы, мне неведомо.
http://fido.ortoped.org.ru/photo_2023-09-18_07-05-02.jpg
--- hssergey station
* Origin: jNode ver. 1.5 (2:5055/182)
SEEN-BY: 301/1 460/58 4500/1 5001/100 5005/49
5015/255 5019/40 5020/715 848
SEEN-BY: 5020/1042 4441 12000 5030/49 1081 5055/182
5058/104 5061/133
SEEN-BY: 5083/444
@PATH: 5055/182 5020/1042 4441