uz
Feedback
C++ and other lectures

C++ and other lectures

Kanalga Telegram’da o‘tish

Учебный канал в Телеграм: тут будут анонсы и ссылки на лекции и стримы. Написать автору: @Tilir Boosty автора: https://boosty.to/cpp_lects_rus

Ko'proq ko'rsatish
9 610
Obunachilar
Ma'lumot yo'q24 soatlar
+137 kunlar
+10330 kunlar
Postlar arxiv
Всем привет. Через две недели выступаю вот здесь: https://cppzerocostconf.yandex.ru/cxxzerocostconf_2023 с докладом про векторизацию. Сначала разберём всю боль обычной векторизации, повекторизуем руками некоторые вещи. Потом я представлю масштабируемую векторизацию, это новая концепция которая сейчас набирает обороты в ARM и RISCV. Посмотрим как она решает проблемы. А потом поговорим о том как она создаёт проблемы. Можно рассматривать это как продолжение записанного мной прошлым летом допсеминара про SIMD, см. https://t.me/cpp_lects_rus/27 Вход на площадку свободный, но по регистрации. Которую можно пройти уже сейчас. Меня пока в программе нет, но я появлюсь, доклад согласовали. #conference

Выложили по ссылке мой второй вебинар проведённый в рамках программы вебинаров Российского Альянса RISCV для различных университетов. Кратко рассказываю про инструменты разработчика от начала до конца. В начале рассказываю чем компилятор от линкера отличается. В конце загружаю RISCV Linux на System QEMU. Всё это за полчаса, поэтому плотненько. https://www.youtube.com/watch?v=29iNHEhHmd0 Дальнейшие вебинары там будут вести уже другие спикеры (мы изначально договаривались что мои там первые две лекции). Общий плейлист для желающих следить: https://www.youtube.com/playlist?list=PLJujc0We8tx80x0z8W6v68Iotteb4wK3W

Выложили по ссылке моё выступление на C++Russia 2023. Выступление было на конференции отлично принято коллегами и набрало массу лестных отзывов и высоких оценок. Теперь можно представить его более широкой аудитории. https://www.youtube.com/watch?v=lc3UkIZ4zOY&t=110s В языке C++ есть синтаксис и семантика. Когда мы говорим о синтаксисе, мы говорим о контекстно-независимых конструкциях, которые просто что-то означают. Например, if — это всегда if. Но когда мы говорим о семантике, мы сталкиваемся с необходимостью для компилятора что-то сделать или что-то выяснить: разрешить имя, инстанцировать шаблон, вывести тип, вычислить константное выражение. Можно сказать что в каждый такой момент мы стартуем некий процесс, развивающийся по своим правилам. Этот доклад посвящен описанию взаимодействующих семантических процессов в языке, как с точки зрения внутренностей компилятора, так и с точки зрения стандарта языка.

Выложили по ссылке мой вебинар проведённый в рамках программы вебинаров Российского Альянса RISCV для различных университетов. Кратко рассказываю что такое RISCV и как устроена эта архитектура. Очень общий обзор. https://www.youtube.com/watch?v=3Jv9_jBq1fE В этой серии у меня также будет второй вебинар посвящённый конкретно средствам разработки под RISCV. #conference #toolchain

Выложил своё выступление на конференции Аскон от 25 апреля сего года. По сути это очень сжатый (мне урезали таймслот до 40 минут и я выживал в этих пределах как мог) рассказ про многопоточность с нуля и до транзакционной памяти. Огромная благодарность организаторам за отличные съёмки, монтаж и разрешение выложить на своём канале. https://www.youtube.com/watch?v=R1XcV5vHn0I #conference

Всем привет. После размышлений и консультаций, было решено что пиринговый экзамен по курсу устроим в следующую субботу, 27 мая. В течении недели есть время на подготовку. Проголосовали "за" в опросе 45 человек, вполне достаточно для экзамена. Если решите сдавать, добавляйтесь в группу https://t.me/+RtzEqpc4OKpmYzhi вся остальная информация о формате проведения и прочем — будет там. #official

Моё прошлогоднее выступление на C++ Russia наконец-то выложили в открытый доступ (раньше было только по ссылке). https://www.youtube.com/watch?v=YJd6Ig4ihJ0 Напоминаю что у этого выступления есть follow-up и допглавы: https://www.youtube.com/watch?v=-aE1hD9OWRk где мы погружаемся глубже и разбираем те же вопросы более обстоятельно. #conference #graphics

Пиринговый экзамен?
Anonymous voting

Всем привет. Есть такая идея — для всех кто вместе со всеми нами весь год смотрел магистерский курс провести пиринговый экзамен (когда вы пишете задание и оно отправляется на проверку двум людям и вам тоже приходят два задания других людей). Задание будет состоять из двух задач. Одна вида "спроектируйте класс" (нечто многопоточное или с умными указателями или с аллокаторами или всё вместе), другая вида "напишите код" (обычно что-то с корутинами или параллелизмом или вместе). Четыре часа на выполнение (можно не отлаживать код до идеального состояния, достаточно продемонстрировать идею), потом четыре часа на кросс-проверку. Сколько людей хотело бы в таком участвовать в какие-нибудь ближайшие выходные? Сейчас устрою опрос, проголосуйте там если хотите, а этот пост оставлю для комментариев. #official

Выложил последнюю лекцию курса. Она завершает изложение корутин и в отличие от прошлой существенно уходит от изложения прошлого года. Я подключаю многопоточку и она помогает мне раскрыть главную тайну корутин. https://youtu.be/WZhxMwKaXmw Это завершает мой магистерский курс и я сам не верю что мне удалось его записать и выложить. У меня бы это не получилось без Юлия Тарасова https://t.me/botan_razdolb который на всех этих лекциях был оператором и звукорежиссером (и немного продюсером). Базовый курс 2021-22 и магистерский курс 2022-23 вместе это главное что есть на моём канале. Дальнейшие творческие планы -- это записать наконец-то базовый курс по языку C и ассемблеру. Также хочется записать курс по вычислимости. И может быть что-то по бэкендам компиляторов. Летом я скорее всего также запишу и выложу несколько обещанных лекций по системам сборки (я обещал на 1к в телеграме и приближается 10к на ютубе). Ну и ещё бы перезаписать тулчейн с понями, так как слайдов явно добавилось и пони тоже. В общем как мне сказала сейчас ChatGPT когда я попросил её сделать последнюю фразу этого поста: "пусть каждый ваш день будет наполнен сияющими моментами и вдохновением, а ваши мечты сбываются с легкостью. Идите вперед и покоряйте мир своим уникальным блеском".

Выложил первую часть последней лекции лекцию магистерского курса — мы начинаем сопрограммы. https://youtu.be/mDajl0pIUjQ Сначала мы потратим немного времени на обзор разновидностей сопрограмм, потом исследуем их основные части и дальше нас ждёт много интересных упражнений: собственный генератор, исследование объектов ожидания и разбор тонких и сложных проблем.

Всем привет. И снова настало время обратиться за небольшой помощью к залу. В своей лекции про многопоточность я использую илл
+3
Всем привет. И снова настало время обратиться за небольшой помощью к залу. В своей лекции про многопоточность я использую иллюстрацию замечательного русского художника В. Г. Сутеева (три котёнка это три потока, труба это критическая секция. И вот я подумал почему бы не попросить картинку у нейросети. Я использовал Кандинского 2.1 и пытался формулировать запросы. Запросы были такие: "три котёнка в трубе", "три котёнка ползут по трубе", "три котёнка внутри трубы". Я сгенерировал наверное изображений тридцать, прикладываю три самых симпатичных. Но это всё не то. Мне нужна картинка как три котёнка забегают в лежащую на земле трубу по одному. Приглашаются эксперты в общении с нейросетями. Будет здоров если вы добьётесь от любой распространённой нейросетки какой надо картинки и расскажете мне и всем нам как вы это сделали, а мы поучимся. #llm #questions

На канале введена система тегов. #c_graduate -- изложение на C для первого курса #cpp_graduate -- изложение на C++ для второго курса #cpp_postgraduate -- изложение на C++ для магистратуры #toolchain -- что-то про системы компиляции, а также ассемблеры линкеры и всё такое #official -- под этим тегом я говорю от своего лица, обычно какие-то технические вещи и объявления. #questions -- предложения что-то обсудить #conference -- что-то касающееся конференций в которых я участвую #talks -- обзоры чужих докладов #llm -- общение с микроволновками #torrent -- публичная выкладка пакетами #combinatorics -- что-то про комбинаторику #graphics -- что-то про GPU или GPGPU #knuth -- вольные переводы Дональда Кнута Размечены все существующие посты. Если найдёте ошибки в разметке сообщайте. #official

Выложил новую лекцию по C++. На этот раз она посвящена параллелизму. https://youtu.be/nvjQTt2RM8A После того как мы выбрались из атомиков, она гораздо более расслабленная. Начнём мы с рассмотрения параллелизма через политики стандартных алгоритмов. Далее исследуем варианты написания собственных параллельных алгоритмов через std::async. Далее нас ждут GPGPU и основы SYCL. В конце придёт время для того чтобы заглянуть в будущее и посмотреть что встретит нас в 2026-м году и далее.

Выложил финальную лекцию по атомикам. На этой лекции мы завершаем рассмотрение этой огромной темы. Наконец-то мы напишем bounded lock-free queue и снимем замеры. Но до этого нам предстоит разобраться с моделями памяти и теорией относительности. Лекция заканчивается большим списком литературы. https://youtu.be/Y1q_Z2T2UcE

Немного контента для гурманов. Шестой уже по счёту черновик допсеминара для первого курса по лексическому и синтаксическому анализу (рассматривается рекурсивный спуск, изложение на С). В чистовом варианте т.е. с видео и обработанным звуком в публичном доступе планирую в следующем году. https://youtu.be/pZntrD8a6dc

Выложил вторую лекцию по атомикам. Искренне ей горжусь так как впервые мне удалось, если можно так выразится, правильно расставить телегу и лошадь. Ранее я методически ориентировался на Саттера с его juggling razor blades, но, как показала практика, Саттер уделяет много внимания более редкой и экзотической проблеме ABA, упуская более распространённую и насущную проблему гонки вокруг удаления в lock-free программах (reclamation problem). https://youtu.be/hb_kREmFnX0 Начнём мы с того, что погрузимся в неприятные части атомиков. Начав с рассмотрения уже знакомых нам проблем проектирования, таких как API races (а также посмотрев способ их решения через формальные методы), мы пойдём к более сложным и специфичным проблемам. Первая такая проблема это и будет тот самый reclamaition -- ранний отзыв указателя. Вторая проблема это ABA. Мы поговорим о том какими способами (как аппаратными так и на уровне языка) мы решаем такие проблемы. Закончим мы тем, что потрогаем вопросы переупорядочения. В первые пять минут — ещё раз объяснение про иерархию свободы от блокировок. Никогда не устаю такое объяснять.

Выложил очередную лекцию магистерского курса — вторую лекцию про атомики. Эта лекция — нечто, чем я в этом году обоснованно горжусь. Всегда ранее я недостаточно хорошо освещал этот материал (и мне даже удивительно насколько мало людей замечали подвох). Мало того, в знаменитом докладе Саттера, который Juggling razor blades содержится та же ошибка — рассматривая более тяжёлую и редкую проблему ABA он вообще не уделяет внимание более простой и распространённой проблеме отзыва указателя. И вообще в сети не так просто найти эталонно хорошее изложение таких вещей. И вот мне кажется, что на этот раз у меня получилось правильно расставить телегу и лошадь. https://youtu.be/hb_kREmFnX0 Начнём мы с рассмотрения уже знакомых нам проблем проектирования, таких как API races (а также посмотрев способ их решения через формальные методы). А вот потом мы пойдём к более сложным и специфичным проблемам. Первая такая проблема это тот самый reclamaition -- конкурентное удаление или ранний отзыв указателя в lock-free программах. Вторая проблема это то самое ABA. Мы поговорим о том какими способами (как аппаратными так и на уровне языка) мы решаем такие проблемы. Закончим мы тем, что потрогаем лапкой вопросы переупорядочения.

Благодаря моему бывшему студенту и коллеге Саше, который сейчас работает в Канаде, получил возможность поэкспериментировать с ChatGPT4. Прикладываю лог попытки использовать её для решения на языке C задачи HWF (это задача для первого курса). user это я. assistant это нейросеть. В конце я сдался -- она так и не смогла ничего понять и пройти контест.

return 1; } Теперь функция next_turn ищет оптимальное количество спичек для взятия, проверяя, что после хода противника останется достаточное количество спичек, чтобы выиграть игру. Если оптимальный ход недоступен, функция возвращает 1, чтобы взять одну спичку и надеяться на ошибку противника. Эта реализация должна работать правильно на входных данных, которые вы указали. --- Здесь я сдался -- она так и не смогла ничего понять и пройти контест.