Size: a a a

2020 October 07

M

MrSmith in Go-go!
Да
источник

p

pragus in Go-go!
MrSmith
Что ну и?
там описывается идиотский кейс: когда все ядра пытаются модифицировать один и тот же регион памяти, и получаем cache contention.
зачем так делать?
источник

M

MrSmith in Go-go!
Поэтому важно понимать, что вы просто не можете налипить гоурутин с одной атомарной переменной и рассчитывать на то что все пройдет хорошо
источник

p

pragus in Go-go!
надо просто пойти сюда и почитать/посмотреть: https://github.com/Kobzol/hardware-effects
источник

M

MrSmith in Go-go!
pragus
там описывается идиотский кейс: когда все ядра пытаются модифицировать один и тот же регион памяти, и получаем cache contention.
зачем так делать?
Потому что во-первых есть униоры, во вторых для динамических систем есть различные сложные состояние о которых можно забыть. Это тоже что пойти в ишью ллвм и говорить - ну кому взбредёт в голову такое писать
источник

p

pragus in Go-go!
MrSmith
Поэтому важно понимать, что вы просто не можете налипить гоурутин с одной атомарной переменной и рассчитывать на то что все пройдет хорошо
да с lock-free/wait-free тоже все не так прекрасно.
источник

M

MrSmith in Go-go!
Хорошее замечание
источник

p

pragus in Go-go!
вообще, know your hardware.
источник

M

MrSmith in Go-go!
Ну вроде как особо упорные строят модели
источник

p

pragus in Go-go!
например, из прекрасного  https://play.golang.org/p/aYjr3k1-7ob
источник

p

pragus in Go-go!
один и тот же код для сортированного слайса будет быстрее, хотя там банальный расчёт суммы элементов
источник

M

MrSmith in Go-go!
Кеш когерентность ну да униор кейсы
источник

p

pragus in Go-go!
кстати, есть cpu где атомарный инкремент стоит столько же, сколько и обычный )
источник

M

MrSmith in Go-go!
Да врятли, все упирается в модель памяти и протокол консенсуса, но если есть готов посмотреть
источник

p

pragus in Go-go!
MrSmith
Да врятли, все упирается в модель памяти и протокол консенсуса, но если есть готов посмотреть
intel atom ;)
источник

M

MrSmith in Go-go!
Охх забыл я где таблица по платформам лежала, ладно поверю на слово
источник

p

pragus in Go-go!
если у тебя нет out of order, то нет и meltdown/spectre
источник

M

MrSmith in Go-go!
Ну это вообшем случае прослушивание сайд эффектов. Вопрос не в том есть ли out of order, вопрос в том текут ли абстракции, ну я вообще мамкин хакер так что врятли чего тут умного скажу
источник

M

MrSmith in Go-go!
источник

M

MrSmith in Go-go!
По мне аналогичная дырка
источник