compscicenter.ru/ Лекция №9 курса «Параллельное программирование» (весна 2022) Преподаватель - Евгений Калишенко Страница лекции на сайте CS центра: bit.ly/3wKZM5i
КОМЕНТАРІ: 26
@serj22114 дні тому
На х86 если для атомика указать тип relaxed, будут ли добавлены барьеры памяти acqured relize или никаких барьеров памяти не будет?
@it_cpp54Рік тому
47:45 надеюсь парню сказали, что он что-то неправильно делает. Зачем вообще видео с его стороны, он же ничего не показывает ?
@user-iCuaebtAi92610 місяців тому
эпично, а можно как-то пройти эти курсы с лабами ???
@maksimus.ssirotkin11243 місяці тому
Есть ли разница в том что несколько потоков запущенно на одном ядре или на разных, применимо ли это все к потокам на одном ядре?
@it_cpp54Рік тому
Потоки одного процесса могут исполняться на разных ядрах/цпу ? Если да, то такое ощущение что брокер может выполнять функцию примитива синхронизации.
@Re_murrРік тому
Не совсем понятно зачем ядру ждать ответа на посланный им read/invalidate? К тому же его в этом ответе обманывают. Получается что мы просто ждем что сообщение дойдет до invalidate очереди другого процесса, как будто оно может не дойти? Не совсем понятно
@aleksanderaksenov1363Рік тому
Классная лекция,но если бы найти упорядоченные материалы в электронном виде ,потому как материал интересный но тяжело на слух воспринимать
@CadovvlРік тому
а можно ссылку на статью с табличкой про модели памяти?
@asd1qwe18 місяців тому
Memory Barriers: a Hardware View for Software Hackers Paul E. McKenney Linux Technology Center IBM Beaverton
@Cadovvl8 місяців тому
@@asd1qwe1 ❤🧡💛💙💜💜🤎🖤🤍
@ValentinNechayevРік тому
Звук у всех лекций очень тихий, сложно слушать. Рекомендую обновить.
@user-nx6cb9lo3zРік тому
Очень интересно! 😊👍👍👍
@BENDER48865 місяців тому
Возможно, запоздалый вопрос. Меня смущает выражение "команды могут выполняться не последовательно и менять своё положение в коде, если нет барьера". Что это значит выполняться непоследовательно? Это идёт вразрес с лекцией. То есть к примеру у нас есть код: if (a) b = 1; То есть считывание из a может произойти после записи 1 в b? Но ведь в лекции говорилось о том, что команды считываются последовательно, просто в текущий момент времени в кэше может быть значение a не синхронизировано с кэшем другого ядра и поэтому a вернёт неверное значение. То же самое и для b. А что значит "выполняться они будут непоследовательно"? Как это связано со всей этой магией с буферами и кэшем?
@user-go6zg7bp4q4 місяці тому
тема просто более сложная, чем рассказал лектор, Реордеринг вполне может выдать эквивалентный код вашему: b=1; if (!a) b=0; если изначально оно было 0, конечно же. Нужно глубоко копать, чтобы разобраться
@BENDER48864 місяці тому
@@user-go6zg7bp4q да, я как раз и нахожусь в процессе более глубокого копания. Может сможете подсказать какое-нибудь видео, объясняющее эту тему более подробно?
@user-go6zg7bp4q4 місяці тому
@@BENDER4886 По С++ не знаю таких видео. Но в книгах по параллельному программированию должна быть инфа об этом
@BENDER48864 місяці тому
@@user-go6zg7bp4q ок, спасибо, поищу
@it_cpp54Рік тому
6:38 продолжает работать. Планировщик кладет спать поток кторый работает с данным кэшом?
@AndreyhelloРік тому
Профессор, не томи, покажи пальцем, куда что вставлять.
@Re_murrРік тому
Интересно, почему не сделать общий кеш между всеми ядрами? Столько проблем сразу уйдет
@asd1qwe18 місяців тому
а сколько добавится?
@user-nx6cb9lo3zРік тому
А когда b не равно нулю? Как это происходит? Как это получается? 🙂
@Re_murrРік тому
Тут нужен специалист по чтению мыслей ) Задайте вопрос с контекстом, пожалуйста. Возможно я смогу ответить
@svetayoung5277Рік тому
Если я это дольше послушаю, это перестанет звучать как китайский...