Чтобы писать действительно эффективные многопоточные приложения (а иногда даже просто рабочие), необходимо знать о моделях памяти и барьерах памяти. Посмотрите пару видео на эту тему.
1️⃣ Модель памяти C++ - Андрей Янковский (Яндекс C++ Party) + слайды.
2️⃣ Почему C++ atomics именно такие (академия Яндекса).
Кстати, в лекциях CSC ⤴️ (в частности, №11 и №12), которые я отправлял выше, тоже обсуждается эта тема. В чём-то подробнее, в чём-то нет.
А также в цикле статей про lock-free структуры данных ⤴️ (в частности, про барьеры памяти и модель памяти).
#видео #параллелизм #модельпамяти #барьеры
1️⃣ Модель памяти C++ - Андрей Янковский (Яндекс C++ Party) + слайды.
2️⃣ Почему C++ atomics именно такие (академия Яндекса).
Кстати, в лекциях CSC ⤴️ (в частности, №11 и №12), которые я отправлял выше, тоже обсуждается эта тема. В чём-то подробнее, в чём-то нет.
А также в цикле статей про lock-free структуры данных ⤴️ (в частности, про барьеры памяти и модель памяти).
#видео #параллелизм #модельпамяти #барьеры
Сегодня не буду грузить вас большими объёмами информации. Дам лишь пару ссылок на статьи, которые, надеюсь, будут вам интересны.
1️⃣ Топ 20 ошибок при работе с многопоточностью на С++ и способы избежать их (Хабр, 2019) + очень похожая статья 20 типичных ошибок многопоточности в C++ (Otus, 2018) — выбирайте любую 😊
2️⃣ Почему они не умеют писать многопоточные программы (2014)
#статья #параллелизм #ошибки
1️⃣ Топ 20 ошибок при работе с многопоточностью на С++ и способы избежать их (Хабр, 2019) + очень похожая статья 20 типичных ошибок многопоточности в C++ (Otus, 2018) — выбирайте любую 😊
2️⃣ Почему они не умеют писать многопоточные программы (2014)
#статья #параллелизм #ошибки
Как при написании параллельного кода не мучиться из-за блокировок? Транзакционная память — перспективная технология управления доступом к совместно используемой памяти.
О ней сегодня несколько статей с Хабра:
1️⃣ Введение в транзакционную память от Мориса Херлихи (2021)
2️⃣ «Проще ответить, чем продолжать молчать» — большое интервью с отцом транзакционной памяти, Морисом Херлихи (2019)
3️⃣ Транзакционная память: история и развитие (2014)
4️⃣ Транзакционная память и многопоточность (2011)
#статья #параллелизм #транзакционнаяпамять
О ней сегодня несколько статей с Хабра:
1️⃣ Введение в транзакционную память от Мориса Херлихи (2021)
2️⃣ «Проще ответить, чем продолжать молчать» — большое интервью с отцом транзакционной памяти, Морисом Херлихи (2019)
3️⃣ Транзакционная память: история и развитие (2014)
4️⃣ Транзакционная память и многопоточность (2011)
#статья #параллелизм #транзакционнаяпамять
Сегодня, в свой день рождения, хочу предложить вам книгу 🥳
Книга, что называется, must have.
Уильямс Энтони. C++. Практика многопоточного программирования. — СПб.: Питер, 2020. — 640 с.: ил. — (Серия «Для профессионалов»). ISBN 978-5-4461-0831-2
Ссылка ведёт на сайт издательства, но книгу несложно найти и в электронном виде в открытых источниках 😜
Также даю ссылку на исходные коды примеров из книги. И на отрывок из книги.
Кто уже читал, поделитесь впечатлениями в нашем чате. Знаете другие хорошие книги по теме параллельного программирования, высокопроизводительных вычислений, GPGPU, профилирования, оптимизации? Напишите о них! ✌️
#книга #параллелизм #cpp
Книга, что называется, must have.
Уильямс Энтони. C++. Практика многопоточного программирования. — СПб.: Питер, 2020. — 640 с.: ил. — (Серия «Для профессионалов»). ISBN 978-5-4461-0831-2
Ссылка ведёт на сайт издательства, но книгу несложно найти и в электронном виде в открытых источниках 😜
Также даю ссылку на исходные коды примеров из книги. И на отрывок из книги.
Кто уже читал, поделитесь впечатлениями в нашем чате. Знаете другие хорошие книги по теме параллельного программирования, высокопроизводительных вычислений, GPGPU, профилирования, оптимизации? Напишите о них! ✌️
#книга #параллелизм #cpp
Сегодня поговорим о мощнейшей (при этом бесплатной) библиотеке от Intel — oneTBB (oneAPI Threading Building Blocks).
Кто не знает, что такое oneAPI, читайте статью Intel oneAPI Toolkit — Intel Studio на новый лад (Хабр, 2021).
Порыл я интернет на эту тему, однако кроме официальной документации нашёл не так много:
✅ Лекции от CSC про OpenMP и Intel TBB (2020 год, со слайдами)
Статьи (Хабр):
1️⃣ oneTBB: интеграция и сборка через CMake (2022)
2️⃣ Использование Intel TBB для создания многопоточных приложений (2010)
3️⃣ Вычисление числа Пи с помощью Intel Threading Building Blocks (2015)
4️⃣ Параллельное программирование с помощью вычислительного графа (2012)
4️⃣🅰️ Вычислительные Графы, Спекулятивные Замки и Арены для Задач в Intel® Threading Building Blocks (2014)
4️⃣🅱️ Вычислительные Графы, Спекулятивные Замки и Арены для Задач в Intel® Threading Building Blocks (продолжение) (2014)
#статья #видео #библиотека #параллелизм #tbb
Кто не знает, что такое oneAPI, читайте статью Intel oneAPI Toolkit — Intel Studio на новый лад (Хабр, 2021).
Порыл я интернет на эту тему, однако кроме официальной документации нашёл не так много:
✅ Лекции от CSC про OpenMP и Intel TBB (2020 год, со слайдами)
Статьи (Хабр):
1️⃣ oneTBB: интеграция и сборка через CMake (2022)
2️⃣ Использование Intel TBB для создания многопоточных приложений (2010)
3️⃣ Вычисление числа Пи с помощью Intel Threading Building Blocks (2015)
4️⃣ Параллельное программирование с помощью вычислительного графа (2012)
4️⃣🅰️ Вычислительные Графы, Спекулятивные Замки и Арены для Задач в Intel® Threading Building Blocks (2014)
4️⃣🅱️ Вычислительные Графы, Спекулятивные Замки и Арены для Задач в Intel® Threading Building Blocks (продолжение) (2014)
#статья #видео #библиотека #параллелизм #tbb
В одно сообщение всё не вошло, вот продолжение...
🔸 Репозиторий oneTBB
🔸 Официальная документация по oneTBB
🔸 Спецификация в формате HTML
🔸 Страница загрузки спецификаций всей oneAPI (доступен формат PDF)
🔸 Страница oneTBB на сайте Intel (в России открывается только через прокси/VPN)
Ну и на сладенькое:
🔥 Свежая книга на русском языке: Восс М., Асенхо Р., Рейндерс Дж. Параллельное программирование на C++ с помощью библиотеки TBB / пер. с англ. А. А. Слинкина. — М.: ДМК Пресс, 2020. — 674 с.: ил. ISBN 978-5-97060-864-7.
Ссылка, как обычно, на издательство(и на рутрекере, как вы понимаете, она тоже есть) 😁
P.S. Есть классная книга? Документация на русском? Хороший курс по теме — пишите в чат! ✌️
#книга #документация #библиотека #параллелизм #tbb
🔸 Репозиторий oneTBB
🔸 Официальная документация по oneTBB
🔸 Спецификация в формате HTML
🔸 Страница загрузки спецификаций всей oneAPI (доступен формат PDF)
🔸 Страница oneTBB на сайте Intel (в России открывается только через прокси/VPN)
Ну и на сладенькое:
🔥 Свежая книга на русском языке: Восс М., Асенхо Р., Рейндерс Дж. Параллельное программирование на C++ с помощью библиотеки TBB / пер. с англ. А. А. Слинкина. — М.: ДМК Пресс, 2020. — 674 с.: ил. ISBN 978-5-97060-864-7.
Ссылка, как обычно, на издательство
#книга #документация #библиотека #параллелизм #tbb
Что почитать на выходных? Подборочка с Хабра.
Многопоточность:
1️⃣ Консистентно о Консенсусе (2021)
2️⃣ Подключаем к Экселю GPU и ускоряем Эксель в 300 раз (2022)
3️⃣ Как одной строкой сделать 24-ядерный сервер медленнее ноутбука (2022)
Процессоры и серверы:
4️⃣ Первые слайды с информацией о Ryzen 7000 (2022) + AMD представила Ryzen 7000 — 5-нм процессоры на Zen 4 с новым сокетом, частотой выше 5 ГГц и графикой RDNA 2 (3dnews). Подобных статей куча, но инфа +/- одинаковая (т.е. более детальных подробностей найти проблематично).
Ещё поговаривают (правда, уже давно), что в Ryzen 7000 будет поддержка AVX-512 (только не очень понятно в каких моделях... и реально ли будет — вы как думаете?)
5️⃣ Планы Intel до 2024 — самое главное (2022)
6️⃣ Как будут собирать российские серверы в новых условиях (2022)
Обсудим в чате? 😉
#статья #параллелизм #gpgpu #cpu
Многопоточность:
1️⃣ Консистентно о Консенсусе (2021)
2️⃣ Подключаем к Экселю GPU и ускоряем Эксель в 300 раз (2022)
3️⃣ Как одной строкой сделать 24-ядерный сервер медленнее ноутбука (2022)
Процессоры и серверы:
4️⃣ Первые слайды с информацией о Ryzen 7000 (2022) + AMD представила Ryzen 7000 — 5-нм процессоры на Zen 4 с новым сокетом, частотой выше 5 ГГц и графикой RDNA 2 (3dnews). Подобных статей куча, но инфа +/- одинаковая (т.е. более детальных подробностей найти проблематично).
Ещё поговаривают (правда, уже давно), что в Ryzen 7000 будет поддержка AVX-512 (только не очень понятно в каких моделях... и реально ли будет — вы как думаете?)
5️⃣ Планы Intel до 2024 — самое главное (2022)
6️⃣ Как будут собирать российские серверы в новых условиях (2022)
Обсудим в чате? 😉
#статья #параллелизм #gpgpu #cpu
Устройство операционных систем и процессоров — большие, местами сложные темы, с которыми полезно познакомиться каждому программисту, а не только разработчикам параллельных приложений. Не всем есть смысл сильно углубляться, но общее представление поможет каждому писать более эффективный код.
Сегодня копнём в сторону операционных систем.
Кому не хочется смотреть многочасовые курсы лекций:
🔸 Что такое операционная система и как она работает?
Более расширенная версия (того же лектора):
🔸 Архитектура операционной системы (на примере Linux), осень 2017
Кому хочется познакомиться поглубже (звук местами лажает, особенно на первых лекциях, но потом будет всё ок):
🔸 Операционные системы (2020/2021)
#видео #курс #lowlevel #ос
Сегодня копнём в сторону операционных систем.
Кому не хочется смотреть многочасовые курсы лекций:
🔸 Что такое операционная система и как она работает?
Более расширенная версия (того же лектора):
🔸 Архитектура операционной системы (на примере Linux), осень 2017
Кому хочется познакомиться поглубже (звук местами лажает, особенно на первых лекциях, но потом будет всё ок):
🔸 Операционные системы (2020/2021)
#видео #курс #lowlevel #ос
Сегодня поговорим об асинхронном программировании. Что это, зачем, как работает и как этим пользоваться?
Крепитесь, ниже будет много всего 💪
What is this?
1️⃣ Для начала предлагаю почитать статью на proglib: Асинхронное программирование: концепция, реализация, примеры (2018).
2️⃣ Далее — обсуждение на SO. Там же есть ссылка на полезную статью об асинхронности т.н. IO-Bound операций, когда задействованы внешние относительно CPU устройства.
3️⃣ Ну и, наконец, Хабр: Асинхронность в программировании (2019)
Теперь статьи, видео и курсы с разбивкой по языкам...
JavaScript:
🔸 Асинхронное программирование в однопоточных средах JavaScript (Хабр, 2021)
🔸 Асинхронное программирование (полный курс) (2019), то же самое: YouTube.
🔸 Асинхронное программирование в JavaScript (Callback, Promise, RxJs ) (Хабр, 2019)
🔸 Символы, генераторы, async/await и асинхронные итераторы в JavaScript: их сущность, взаимосвязь и варианты использования (Хабр, 2018)
Продолжение в следующем посте...
#статья #видео #курс #асинхронность #js
Крепитесь, ниже будет много всего 💪
What is this?
1️⃣ Для начала предлагаю почитать статью на proglib: Асинхронное программирование: концепция, реализация, примеры (2018).
2️⃣ Далее — обсуждение на SO. Там же есть ссылка на полезную статью об асинхронности т.н. IO-Bound операций, когда задействованы внешние относительно CPU устройства.
3️⃣ Ну и, наконец, Хабр: Асинхронность в программировании (2019)
Теперь статьи, видео и курсы с разбивкой по языкам...
JavaScript:
🔸 Асинхронное программирование в однопоточных средах JavaScript (Хабр, 2021)
🔸 Асинхронное программирование (полный курс) (2019), то же самое: YouTube.
🔸 Асинхронное программирование в JavaScript (Callback, Promise, RxJs ) (Хабр, 2019)
🔸 Символы, генераторы, async/await и асинхронные итераторы в JavaScript: их сущность, взаимосвязь и варианты использования (Хабр, 2018)
Продолжение в следующем посте...
#статья #видео #курс #асинхронность #js
Идём дальше... 🙄
C#:
🔸 Асинхронные потоки от Стивена Клири (Хабр, 2021)
🔸 Асинхронный рассинхрон: антипаттерны в работе с async/await в .NET (Хабр, 2019)
🔸 Платный курс C# асинхронное программирование.
В открытом доступе на YouTube есть, по крайней мере, 2 урока из курса (2019):
🔹 Введение в асинхронное программирование. C# Асинхронное программирование.
🔹 Как работает async/await? Асинхронные методы С#. C# Асинхронное программирование.
🔸 Видео курс C# Professional. Урок 15. Async Await (Александр Шевчук, 2015)
C++:
🔸 Асинхронность в С++20. Доклад в Яндексе (Хабр, 2021)
🔸 Анатомия асинхронных фреймворков в С++ и других языках (Хабр, 2021)
🔸 Корутины C++20 в примерах (Хабр, 2020)
🔸 Асинхронная разработка на C++ (YouTube, C++ Russia, 2019)
Небольшой цикл статей на Хабр:
🔸 Асинхронность: назад в будущее (2013)
🔸 Асинхронность 2: телепортация сквозь порталы (2014)
🔸 Асинхронность 3: Субъекторная модель (2017)
Доклады Яндекс (YouTube):
🔹 Введение в асинхронное программирование - Пузыревский Иван (2014)
🔹 Асинхронное программирование и сопрограммы - Григорий Демченко (2014)
🔹 Асинхронная разработка на C++ под мобильные устройства - Дмитрий Жестилевский (2014)
Python:
🔸Асинхронный python без головной боли (Хабр, 2021)
🔸Курс Асинхронность в Python (YouTube, 2018)
🔸Мини-курс Асинхронное программирование на Python 3 (YouTube, 2018)
Лекции Яндекс (Школа бэкенд-разработки, YouTube, 2020):
🔸 Асинхронное программирование. Лекция 1 – Эдуард Жук
🔸 Асинхронное программирование. Лекция 2 – Александр Васин
🔸 Асинхронное программирование. Лекция 3 – Дмитрий Орлов
🔹 Бонус: Асинхронное программирование на практике – Дмитрий Орлов (2021)
Java:
🔸 Реактивное программирование на Java: как, зачем и стоит ли? Часть I (2021)
🔸 Реактивное программирование на Java: как, зачем и стоит ли? Часть II (2021)
🔸 Aсинхронное программирование в Java // бесплатный урок OTUS (TouTube, 2018)
🔸 Асинхронное программирование в Java 8: видео доклада (YouTube, Dev Labs, 2016)
🔸 Континуации в Java (Хабр, 2016)
🔹 Большой плейлист с видео на русском и английском языках: #java#concurrency (YouTube)
Go:
🔸 Лекции по Go 3/3. Эффективная асинхронность (concurrency) в Go (YouTube, 2018)
🔸 Как ошибиться с конкурентностью в Go / Алексей Палажченко (Percona) (YouTube, 2020)
🔸 Асинхронность или просто горутины в Golang, начало. Основы работы с горутинами! (YouTube, 2021)
🔸 Изучаем Golang. Урок 9. Многопоточность. Горутины и каналы (YouTube, 2021)
🔸 Делаем асинхронность асинхронной, разбираемся в планировщике Go, ругаем Linux (Хабр, 2021)
🔸 Планирование в Go: Часть I — Планировщик ОС (Хабр, 2019)
🔸 Планирование в Go: Часть II — Планировщик Go (Хабр, 2020)
Может быть интересно:
🔹 Асинхронная бизнес-логика в наши дни (Хабр, 2018)
🔹 Какие изменения нужны языку Rust, чтобы писать асинхронный код стало проще (Хабр, 2021)
🔹 «Мы даже не пытаемся запустить старый код, такой задачи у нас не стоит в принципе» — Роман Елизаров о разработке Kotlin (Хабр, 2018)
Интересно? Ставьте 🔥 и делитесь материалом с другими! 😉
#статья #видео #курс #асинхронность #csharp #cpp #python #java #golang
C#:
🔸 Асинхронные потоки от Стивена Клири (Хабр, 2021)
🔸 Асинхронный рассинхрон: антипаттерны в работе с async/await в .NET (Хабр, 2019)
🔸 Платный курс C# асинхронное программирование.
В открытом доступе на YouTube есть, по крайней мере, 2 урока из курса (2019):
🔹 Введение в асинхронное программирование. C# Асинхронное программирование.
🔹 Как работает async/await? Асинхронные методы С#. C# Асинхронное программирование.
🔸 Видео курс C# Professional. Урок 15. Async Await (Александр Шевчук, 2015)
C++:
🔸 Асинхронность в С++20. Доклад в Яндексе (Хабр, 2021)
🔸 Анатомия асинхронных фреймворков в С++ и других языках (Хабр, 2021)
🔸 Корутины C++20 в примерах (Хабр, 2020)
🔸 Асинхронная разработка на C++ (YouTube, C++ Russia, 2019)
Небольшой цикл статей на Хабр:
🔸 Асинхронность: назад в будущее (2013)
🔸 Асинхронность 2: телепортация сквозь порталы (2014)
🔸 Асинхронность 3: Субъекторная модель (2017)
Доклады Яндекс (YouTube):
🔹 Введение в асинхронное программирование - Пузыревский Иван (2014)
🔹 Асинхронное программирование и сопрограммы - Григорий Демченко (2014)
🔹 Асинхронная разработка на C++ под мобильные устройства - Дмитрий Жестилевский (2014)
Python:
🔸Асинхронный python без головной боли (Хабр, 2021)
🔸Курс Асинхронность в Python (YouTube, 2018)
🔸Мини-курс Асинхронное программирование на Python 3 (YouTube, 2018)
Лекции Яндекс (Школа бэкенд-разработки, YouTube, 2020):
🔸 Асинхронное программирование. Лекция 1 – Эдуард Жук
🔸 Асинхронное программирование. Лекция 2 – Александр Васин
🔸 Асинхронное программирование. Лекция 3 – Дмитрий Орлов
🔹 Бонус: Асинхронное программирование на практике – Дмитрий Орлов (2021)
Java:
🔸 Реактивное программирование на Java: как, зачем и стоит ли? Часть I (2021)
🔸 Реактивное программирование на Java: как, зачем и стоит ли? Часть II (2021)
🔸 Aсинхронное программирование в Java // бесплатный урок OTUS (TouTube, 2018)
🔸 Асинхронное программирование в Java 8: видео доклада (YouTube, Dev Labs, 2016)
🔸 Континуации в Java (Хабр, 2016)
🔹 Большой плейлист с видео на русском и английском языках: #java#concurrency (YouTube)
Go:
🔸 Лекции по Go 3/3. Эффективная асинхронность (concurrency) в Go (YouTube, 2018)
🔸 Как ошибиться с конкурентностью в Go / Алексей Палажченко (Percona) (YouTube, 2020)
🔸 Асинхронность или просто горутины в Golang, начало. Основы работы с горутинами! (YouTube, 2021)
🔸 Изучаем Golang. Урок 9. Многопоточность. Горутины и каналы (YouTube, 2021)
🔸 Делаем асинхронность асинхронной, разбираемся в планировщике Go, ругаем Linux (Хабр, 2021)
🔸 Планирование в Go: Часть I — Планировщик ОС (Хабр, 2019)
🔸 Планирование в Go: Часть II — Планировщик Go (Хабр, 2020)
Может быть интересно:
🔹 Асинхронная бизнес-логика в наши дни (Хабр, 2018)
🔹 Какие изменения нужны языку Rust, чтобы писать асинхронный код стало проще (Хабр, 2021)
🔹 «Мы даже не пытаемся запустить старый код, такой задачи у нас не стоит в принципе» — Роман Елизаров о разработке Kotlin (Хабр, 2018)
Интересно? Ставьте 🔥 и делитесь материалом с другими! 😉
#статья #видео #курс #асинхронность #csharp #cpp #python #java #golang
После длительного перерыва предлагаю вам пару книг и статью про оптимизацию.
1⃣ Гантерот Курт. Оптимизация программ на C++. Проверенные методы повышения производительности. — Диалектика-Вильямс, 2019. — 400с. ISBN 978-5-907144-58-3.
🔹 Оптимизация C++: совмещаем скорость и высокий уровень. Доклад Яндекса (Хабр, 2020).
2⃣ Эванс Бенджамин, Гоф Джеймс, Ньюланд Крис. Java: оптимизация программ. Практические методы повышения производительности приложений в JVM. — Вильямс, 2019. — 448с. ISBN 978-5-907114-84-5.
Наслаждаетесь! 😊
#книга #статья #оптимизация #cpp #java
1⃣ Гантерот Курт. Оптимизация программ на C++. Проверенные методы повышения производительности. — Диалектика-Вильямс, 2019. — 400с. ISBN 978-5-907144-58-3.
🔹 Оптимизация C++: совмещаем скорость и высокий уровень. Доклад Яндекса (Хабр, 2020).
2⃣ Эванс Бенджамин, Гоф Джеймс, Ньюланд Крис. Java: оптимизация программ. Практические методы повышения производительности приложений в JVM. — Вильямс, 2019. — 448с. ISBN 978-5-907114-84-5.
Наслаждаетесь! 😊
#книга #статья #оптимизация #cpp #java
Салют! 💥
Хаброподборка про многопоточность и смежные темы:
🔸 Решение проблемы в управлении конкурентными вычислениями (2022)
🔸 Другой взгляд на многопоточность (2021)
🔸 Многозадачность и многопоточность — распространенные заблуждения и недопонимания (2021)
🔸 «Невозможный» параллельный алгоритм неотрицательной суммы (2022)
🔸 В чём опасность слабой модели памяти ARM на примере конкретного эксплоита (2022)
О языках:
🔸 Наблюдение за выполнением конкурирующих задач в Go и Rust (2022)
Туда же: Почему мьютексы в Rust реализованы именно так (2022)
🔸 Java: продвинутая конкурентность (2022)
🔸 О Thread и ThreadPool в .NET подробно (часть 1) (2022, ссылка "часть 2" внутри)
🔸 Новый язык обычного и параллельного программирования Planning C 2.0 (2022)
#статья #параллелизм
Хаброподборка про многопоточность и смежные темы:
🔸 Решение проблемы в управлении конкурентными вычислениями (2022)
🔸 Другой взгляд на многопоточность (2021)
🔸 Многозадачность и многопоточность — распространенные заблуждения и недопонимания (2021)
🔸 «Невозможный» параллельный алгоритм неотрицательной суммы (2022)
🔸 В чём опасность слабой модели памяти ARM на примере конкретного эксплоита (2022)
О языках:
🔸 Наблюдение за выполнением конкурирующих задач в Go и Rust (2022)
Туда же: Почему мьютексы в Rust реализованы именно так (2022)
🔸 Java: продвинутая конкурентность (2022)
🔸 О Thread и ThreadPool в .NET подробно (часть 1) (2022, ссылка "часть 2" внутри)
🔸 Новый язык обычного и параллельного программирования Planning C 2.0 (2022)
#статья #параллелизм
Сегодня нашему каналу и чату ровно 3 месяца 🥳, в связи с чем решил развлечь вас десятком весьма интересных видео. Не все из них подходят под тему канала, но от этого они не становятся менее увлекательными.
🔸 Как НА САМОМ ДЕЛЕ делаются ПРОЦЕССОРЫ? | РАЗБОР (август 2020)
🔸 Магия создания процессоров: травление и осаждение | РАЗБОР (июнь 2021)
🔥 TSMC: КАК ДЕЛАЮТ ЛУЧШИЕ ПРОЦЕССОРЫ В МИРЕ? ФОРМАТ (июль 2022)
🔸 ГИБКИЙ ARM ПРОЦЕССОР | РАЗБОР (август 2021)
🔸 Самый БОЛЬШОЙ ПРОЦЕССОР в мире! РАЗБОР (январь 2021); статья "TPU vs GPU vs Cerebras vs Graphcore: A Fair Comparison between ML Hardware" (июль 2020, англ)
🔸 ЧТО ТАКОЕ СУПЕРКОМПЬЮТЕР? | ФОРМАТ (май 2022)
🔸 Что такое КВАНТОВЫЙ компьютер? | РАЗБОР (декабрь 2020)
🔸 КАК РАБОТАЕТ МНОГОЗАДАЧНОСТЬ? | РАЗБОР (май 2022, много рекламы)
🔸 КАК работает ПРОЦЕССОР? ОБЪЯСНЯЕМ (июнь 2020)
🔸 КАК работает ВИДЕОКАРТА? ОБЪЯСНЯЕМ (декабрь 2020)
Видео с одного YouTube канала.
#видео #cpu
🔸 Как НА САМОМ ДЕЛЕ делаются ПРОЦЕССОРЫ? | РАЗБОР (август 2020)
🔸 Магия создания процессоров: травление и осаждение | РАЗБОР (июнь 2021)
🔥 TSMC: КАК ДЕЛАЮТ ЛУЧШИЕ ПРОЦЕССОРЫ В МИРЕ? ФОРМАТ (июль 2022)
🔸 ГИБКИЙ ARM ПРОЦЕССОР | РАЗБОР (август 2021)
🔸 Самый БОЛЬШОЙ ПРОЦЕССОР в мире! РАЗБОР (январь 2021); статья "TPU vs GPU vs Cerebras vs Graphcore: A Fair Comparison between ML Hardware" (июль 2020, англ)
🔸 ЧТО ТАКОЕ СУПЕРКОМПЬЮТЕР? | ФОРМАТ (май 2022)
🔸 Что такое КВАНТОВЫЙ компьютер? | РАЗБОР (декабрь 2020)
🔸 КАК РАБОТАЕТ МНОГОЗАДАЧНОСТЬ? | РАЗБОР (май 2022, много рекламы)
🔸 КАК работает ПРОЦЕССОР? ОБЪЯСНЯЕМ (июнь 2020)
🔸 КАК работает ВИДЕОКАРТА? ОБЪЯСНЯЕМ (декабрь 2020)
Видео с одного YouTube канала.
#видео #cpu
Привет, друзья! Соскучились? Надеюсь, что да 🙃
Сентябрь — время учёбы. Так было в школе, ВУЗе, пусть будет и здесь (но здесь же приятнее и уютнее)😁
Плавно входим в режим обучения курсом от ФПМИ "Теория и практика многопоточной синхронизации" (Роман Липовский, весна 2022).
🔸 Лекции
🔸 Семинары
🔹 Репозиторий курса
Приятного просмотра!
Кстати, расскажите в нашем чате, что интересного вы сделали за лето, с какими проблемами столкнулись, какие интересные решения нашли😉
#видео #курс #параллелизм
Сентябрь — время учёбы. Так было в школе, ВУЗе, пусть будет и здесь (но здесь же приятнее и уютнее)
Плавно входим в режим обучения курсом от ФПМИ "Теория и практика многопоточной синхронизации" (Роман Липовский, весна 2022).
🔸 Лекции
🔸 Семинары
🔹 Репозиторий курса
Приятного просмотра!
Кстати, расскажите в нашем чате, что интересного вы сделали за лето, с какими проблемами столкнулись, какие интересные решения нашли
#видео #курс #параллелизм
Please open Telegram to view this post
VIEW IN TELEGRAM
Салют! Небольшой ребрендинг: смена логотипов (надоел уже этот аляпистый спидометр) 🤩
И заодно некоторые полезности, разбирайте!
📖 Книга о технологиях OpenMP, CUDA, OpenCL и MPI.
Не must have, конечно, а всего лишь "учебное пособие для ВУЗов" :). Если вы только начинаете изучать эти технологии, начальные знания она вам даст (там всего 136 страниц). А потом уже можно рыться в спецификациях.
Малявко Александр Антонович. Параллельное программирование на основе технологий OpenMP, CUDA, OpenCL, MPI. 3-е изд., испр. и доп. Учебное пособие для вузов. — М.: ЮРАЙТ, 2022 — 136 с. ISBN 978-5-534-14116-0
[скачать]
Статьи:
🔸 Введение в технику оптимизации циклов (Хабр, 2011)
🔸 Методика разработки многопоточных приложений: принципы и практическая реализация (RSDN, 2004-2005)
🔸 32 подводных камня OpenMP при программировании на C++ (RSDN, 2008-2009)
💻 Коллекция lock-free и wait-free библиотек
#книга #статья #параллелизм #gpgpu #библиотека
И заодно некоторые полезности, разбирайте!
Не must have, конечно, а всего лишь "учебное пособие для ВУЗов" :). Если вы только начинаете изучать эти технологии, начальные знания она вам даст (там всего 136 страниц). А потом уже можно рыться в спецификациях.
Малявко Александр Антонович. Параллельное программирование на основе технологий OpenMP, CUDA, OpenCL, MPI. 3-е изд., испр. и доп. Учебное пособие для вузов. — М.: ЮРАЙТ, 2022 — 136 с. ISBN 978-5-534-14116-0
[скачать]
Статьи:
🔸 Введение в технику оптимизации циклов (Хабр, 2011)
🔸 Методика разработки многопоточных приложений: принципы и практическая реализация (RSDN, 2004-2005)
🔸 32 подводных камня OpenMP при программировании на C++ (RSDN, 2008-2009)
#книга #статья #параллелизм #gpgpu #библиотека
Please open Telegram to view this post
VIEW IN TELEGRAM
С новым 2️⃣0️⃣2️⃣3️⃣ годом, дорогие подписчики! 🎄 🤩
Желаю вам не только писать эффективный и стабильный многозадачный и многопоточный код. Но и бодро писать свою жизнь, эффективно решая любые задачи, наполняясь потоком ярких идей и гармонично развиваясь во всех сферах своей жизни!😉 🔥 💪
В общем, если по-простому, здоровья, удачи, любви, одним словом — счастья вам в новом году!❤️
Ура!🥂 ✨
P.S. У каждого куранты бьют в разные моменты, поэтому отправляю по своему местному времени🙂
Желаю вам не только писать эффективный и стабильный многозадачный и многопоточный код. Но и бодро писать свою жизнь, эффективно решая любые задачи, наполняясь потоком ярких идей и гармонично развиваясь во всех сферах своей жизни!
В общем, если по-простому, здоровья, удачи, любви, одним словом — счастья вам в новом году!
Ура!
P.S. У каждого куранты бьют в разные моменты, поэтому отправляю по своему местному времени
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня, в преддверии большого кол-ва выходных, будет много разноплановой инфы.
Базовые вещи про многопоточность:
🔹 Multithreading — обзор STL C++20 (хоть и неполный) для работы с потоками от OTUS (Хабр, 2021)
🔹 Многопоточное программирование C++ — небольшой базовый курс по многопоточности C++ (YouTube, 2018)
Статьи:
🔸 Лучшие суперкомпьютеры мира — как выглядят и зачем нужны? (Хабр, 2023)
🔸 Стандарт C++20: обзор новых возможностей C++. Часть 5 «Корутины» — Яндекс Практикум (Хабр, 2021)
🔸 Как работать с процессами и потоками в Python (Хабр, 2022)
🔸 Запуск кода CUDA на видеокартах AMD (Хабр, 2022)
🔸 Вычисляем на видеокартах. Технология OpenCL. Часть 0. Краткая история GPGPU (Хабр, 2021)
🔸 Вычисляем на видеокартах. Технология OpenCL. Часть 1a. Как работает OpenCL (Хабр, 2021)
🔸 Вычисляем на видеокартах. Технология OpenCL. Часть 1b. Пишем для OpenCL (Хабр, 2021)
🔸 Вычисляем на видеокартах. Технология OpenCL. Часть 2. Алгоритмы в условиях массового параллелизма (Хабр, 2021)
Железо/ОС:
🔹 Архитектура ЭВМ — Кирилл Кринкин (курс на YouTube, 2020-2022)
🔹 Архитектура операционной системы (на примере Linux) — Кирилл Кринкин (курс на YouTube, 2017-2018)
Выступления:
🔸 EVE: Новая C++20 библиотека для работы с SIMD — Денис Ярошевский (YouTube, 2021) 🔹 Презентация 🔹 github
🔸 Асинхронная разработка на C++ — Павел Новиков (YouTube, 2019)
🔸 Оптимизации времени компиляции. Даем больше информации компилятору — Кирилл Тихонов (YouTube, 2019)
🔸 The C++20 synchronization library — Bryce Adelstein Lelbach (YouTube, 2019) [English]
🔸 Concurrency and parallelism in C++17 and C++20/23 — Rainer Grimm (YouTube, 2019) [English]
🔸 Know your hardware: CPU memory hierarchy — Alexander Titov (YouTube, 2019) [English]
#курс #видео #статья #библиотека #параллелизм #асинхронность #оптимизация #железо #ос
Базовые вещи про многопоточность:
🔹 Multithreading — обзор STL C++20 (хоть и неполный) для работы с потоками от OTUS (Хабр, 2021)
🔹 Многопоточное программирование C++ — небольшой базовый курс по многопоточности C++ (YouTube, 2018)
Статьи:
🔸 Лучшие суперкомпьютеры мира — как выглядят и зачем нужны? (Хабр, 2023)
🔸 Стандарт C++20: обзор новых возможностей C++. Часть 5 «Корутины» — Яндекс Практикум (Хабр, 2021)
🔸 Как работать с процессами и потоками в Python (Хабр, 2022)
🔸 Запуск кода CUDA на видеокартах AMD (Хабр, 2022)
🔸 Вычисляем на видеокартах. Технология OpenCL. Часть 0. Краткая история GPGPU (Хабр, 2021)
🔸 Вычисляем на видеокартах. Технология OpenCL. Часть 1a. Как работает OpenCL (Хабр, 2021)
🔸 Вычисляем на видеокартах. Технология OpenCL. Часть 1b. Пишем для OpenCL (Хабр, 2021)
🔸 Вычисляем на видеокартах. Технология OpenCL. Часть 2. Алгоритмы в условиях массового параллелизма (Хабр, 2021)
Железо/ОС:
🔹 Архитектура ЭВМ — Кирилл Кринкин (курс на YouTube, 2020-2022)
🔹 Архитектура операционной системы (на примере Linux) — Кирилл Кринкин (курс на YouTube, 2017-2018)
Выступления:
🔸 EVE: Новая C++20 библиотека для работы с SIMD — Денис Ярошевский (YouTube, 2021) 🔹 Презентация 🔹 github
🔸 Асинхронная разработка на C++ — Павел Новиков (YouTube, 2019)
🔸 Оптимизации времени компиляции. Даем больше информации компилятору — Кирилл Тихонов (YouTube, 2019)
🔸 The C++20 synchronization library — Bryce Adelstein Lelbach (YouTube, 2019) [English]
🔸 Concurrency and parallelism in C++17 and C++20/23 — Rainer Grimm (YouTube, 2019) [English]
🔸 Know your hardware: CPU memory hierarchy — Alexander Titov (YouTube, 2019) [English]
#курс #видео #статья #библиотека #параллелизм #асинхронность #оптимизация #железо #ос
Давайте немного про SIMD и ассемблер 😉
Видео:
🔸 Что могут C и C++, и когда нужен ассемблер / Александр Крижановский (Tempesta Technologies) (YouTube, 2022)
🔸 SIMD в .NET: Обработка изображений на интринсиках — Степан Артемьев (YouTube, 2022)
🔸 SIMD и ручная векторизация (доп. семинар для первого курса по языку C и алгоритмам) (YouTube, 2022)
🔸 SIMD. Производительность, за которую вы уже заплатили — Ашот Варданян (YouTube, 2021)
🔸 Первые шаги в SIMD. Реализация STL-алгоритмов с помощью AVX2 vector extensions — Денис Ярошевский (YouTube, 2021)
🔸 Векторизуй это / Андрей Аксенов (Авито, Sphinx) (YouTube, 2020)
🔸 Путь к перформансу через intrinsics. Ренат Тазиев, Контур (YouTube, 2020)
🔸 SIMD and vectorization using AVX intrinsic functions (Tutorial) (YouTube, 2022) [english]
🔸 AVX512: Introduction and Overview: part1, part2, part3 (YouTube, 2021) [english]
🔘 Какой-то плейлист про Performance Programming (может, кто-то найдёт что-нибудь полезное для себя 😁)
Статьи:
✅ Assembler в Go: техники ускорения и оптимизации (Хабр, 2023)
✅ Intel реализовала сортировку на AVX-512: ускорение в 10–17 раз (Хабр, 2023)
✅ Чем программисту заняться в 1990 году: осваиваем чёрную магию ассемблера (Хабр, 2022)
Пара книг:
🔹 Йо Ван Гуй. Программирование на ассемблере х64. От начального уровня до профессионального использования AVX — ДМК Пресс, 2021. — 332 с., ISBN 978-5-97060-929-3
🔹 Куссвюрм Даниэль. Профессиональное программирование на ассемблере x64 с расширениями AVX, AVX2 и AVX-512 — ДМК Пресс, 2021. — 628 с., ISBN 978-5-97060-928-6
А также:
✅ Моя подборка книг, инструментов и полезных ссылок по ассемблеру
✅ Выпуск подкаста «Люди и код» с моим участием про ассемблер (вышел как раз сегодня)
#видео #статья #книга #оптимизация #simd #asm
Видео:
🔸 Что могут C и C++, и когда нужен ассемблер / Александр Крижановский (Tempesta Technologies) (YouTube, 2022)
🔸 SIMD в .NET: Обработка изображений на интринсиках — Степан Артемьев (YouTube, 2022)
🔸 SIMD и ручная векторизация (доп. семинар для первого курса по языку C и алгоритмам) (YouTube, 2022)
🔸 SIMD. Производительность, за которую вы уже заплатили — Ашот Варданян (YouTube, 2021)
🔸 Первые шаги в SIMD. Реализация STL-алгоритмов с помощью AVX2 vector extensions — Денис Ярошевский (YouTube, 2021)
🔸 Векторизуй это / Андрей Аксенов (Авито, Sphinx) (YouTube, 2020)
🔸 Путь к перформансу через intrinsics. Ренат Тазиев, Контур (YouTube, 2020)
🔸 SIMD and vectorization using AVX intrinsic functions (Tutorial) (YouTube, 2022) [english]
🔸 AVX512: Introduction and Overview: part1, part2, part3 (YouTube, 2021) [english]
Статьи:
Пара книг:
🔹 Йо Ван Гуй. Программирование на ассемблере х64. От начального уровня до профессионального использования AVX — ДМК Пресс, 2021. — 332 с., ISBN 978-5-97060-929-3
🔹 Куссвюрм Даниэль. Профессиональное программирование на ассемблере x64 с расширениями AVX, AVX2 и AVX-512 — ДМК Пресс, 2021. — 628 с., ISBN 978-5-97060-928-6
А также:
#видео #статья #книга #оптимизация #simd #asm
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня каналу и чату исполняется ровно год! 🥳
В честь этого я решил собрать подборку книг из нашего чата (ниже представлены участники чата и их рекомендации).
Булат Зиганшин (автор FreeArc).
🔸 McCool, James Reinders, Arch Robison. Structured Parallel Programming: Patterns for Efficient Computation [2012] / Слайды на русском
🔸 Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill. Patterns for Parallel Programming (Software Patterns Series) [2004]
🔸 Восс Майкл, Рейндерс Джеймс, Асенхо Рафаэль. Параллельное программирование на C++ с помощью библиотеки TBB [2020]
🔸 Пол Батчер. Семь моделей конкуренции и параллелизма за семь недель [2015]
🔸 6 актуальных книг по C++ от автора Райнер Гримм [2017-2022]
🔸 Генри С. Уоррен. Алгоритмические трюки для программистов [2018] / [2014]
🔸 Лин К., Снайдер Л. Принципы параллельного программирования [2013]
🔸 Петер Брасс. Усовершенствованные структуры данных [2023]
🔸 Дэвидсон Дж. Гай, Грегори Кейт. Красивый C++: 30 главных правил чистого, безопасного и быстрого кода [2023]
🔸 Брайант Р. Э., О'Халларон Д. Р. Компьютерные системы. Архитектура и программирование [2022]
Подборки ресурсов:
🔹 Awesome Parallel Computing Resources
🔹 Algorithms / datastructures
🔹 List of Online C++ Compilers
Missclick Очепятка.
🔸 Афансьев. Основы высокопроизводительных вычислений (3 книги) [2011-2012]
Ilya Zviagin.
🔸 Грегори Р. Эндрюс. Основы многопоточного, параллельного и распределенного программирования [2003]: DJVU / Онлайн / PDF
n0_0p.
🔸 Addison-Wesley. Hacker's Delight [2003, 2012] – software algorithm book which presents fast bit-level and low-level arithmetic algorithms for common tasks such as counting bits or improving speed of division by using multiplication.
P.S. Если что-то пропустил, пишите😉
#книги
В честь этого я решил собрать подборку книг из нашего чата (ниже представлены участники чата и их рекомендации).
Булат Зиганшин (автор FreeArc).
🔸 McCool, James Reinders, Arch Robison. Structured Parallel Programming: Patterns for Efficient Computation [2012] / Слайды на русском
🔸 Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill. Patterns for Parallel Programming (Software Patterns Series) [2004]
🔸 Восс Майкл, Рейндерс Джеймс, Асенхо Рафаэль. Параллельное программирование на C++ с помощью библиотеки TBB [2020]
🔸 Пол Батчер. Семь моделей конкуренции и параллелизма за семь недель [2015]
🔸 6 актуальных книг по C++ от автора Райнер Гримм [2017-2022]
🔸 Генри С. Уоррен. Алгоритмические трюки для программистов [2018] / [2014]
🔸 Лин К., Снайдер Л. Принципы параллельного программирования [2013]
🔸 Петер Брасс. Усовершенствованные структуры данных [2023]
🔸 Дэвидсон Дж. Гай, Грегори Кейт. Красивый C++: 30 главных правил чистого, безопасного и быстрого кода [2023]
🔸 Брайант Р. Э., О'Халларон Д. Р. Компьютерные системы. Архитектура и программирование [2022]
Подборки ресурсов:
🔹 Awesome Parallel Computing Resources
🔹 Algorithms / datastructures
🔹 List of Online C++ Compilers
Missclick Очепятка.
🔸 Афансьев. Основы высокопроизводительных вычислений (3 книги) [2011-2012]
Ilya Zviagin.
🔸 Грегори Р. Эндрюс. Основы многопоточного, параллельного и распределенного программирования [2003]: DJVU / Онлайн / PDF
n0_0p.
🔸 Addison-Wesley. Hacker's Delight [2003, 2012] – software algorithm book which presents fast bit-level and low-level arithmetic algorithms for common tasks such as counting bits or improving speed of division by using multiplication.
P.S. Если что-то пропустил, пишите
#книги
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжая тему активности участников нашего чата, предлагаю посмотреть лекцию об оптимизации от Булата Зиганшина:
🎞 Устройство процессоров (2020)
В описании к видео есть список книг.
Спасибо, друзья, всем, кто принимает активное участие в жизни нашего сообщества!
Лучший подарок от вас — рекомендация канала и чата своим друзьям, коллегам и подписчикам (у кого они есть)🙂
Кого ещё нет в нашем чате, категорически рекомендую присоединиться.
#оптимизация #видео #cpu
В описании к видео есть список книг.
Спасибо, друзья, всем, кто принимает активное участие в жизни нашего сообщества!
Лучший подарок от вас — рекомендация канала и чата своим друзьям, коллегам и подписчикам (у кого они есть)
Кого ещё нет в нашем чате, категорически рекомендую присоединиться.
#оптимизация #видео #cpu
Please open Telegram to view this post
VIEW IN TELEGRAM
Intel анонсировала 2 новых расширения
1️⃣ APX (Advanced Performance Extensions) со следующими новыми фичами:
— дополнительные 16 регистров общего назначения R16-R31, называемые расширенными регистрами общего назначения,
— трёхоперандные инструкции для многих целочисленных операций (
— новые условные инструкции для чтения/записи и сравнения (
— оптимизированные операции сохранения регистров (
— прямой 64-битный переход (
➡️ Новость на русском (3Dnews)
➡️ Новость на английском (Phoronix)
➡️ Информация и спецификации на сайте Intel (англ), со ссылками на спецификации AVX10, см. ниже.
2️⃣ Эволюция векторных инструкций — AVX10 (AVX10.1, AVX10.2 и т.д. — да, теперь вместо флагов для отдельных расширений будет номер версии). Обещают поддержку функциональности AVX-512, вроде как даже без потери производительности. AVX10 будут работать как на P-ядрах, так и на E-ядрах (но на последних только с 256-битными векторами и только в версии AVX10.2). AVX-512 развиваться не будет, но останется в серверных процессорах для совместимости со старыми приложениями.
➡️ Новость на русском (3Dnews)
➡️ Новость на английском (Phoronix)
🟣 Вы же уже в курсе существования расширений AMX (Advanced Matrix Extensions) в серверных процессорах Sapphire Rapids? Если нет, читайте на сайте Intel (и на Phoronix).
🟣 Некоторое время назад Intel также анонсировала новую упрощённую архитектуру — X86-S. Наиболее заметные (но далеко не единственные) отличия от текущей архитектуры Intel 64 — отсутствие 16-битных и 32-битных режимов (последний останется только в режиме совместимости, как сейчас при работе в 64-битном Long Mode). Читайте на сайте Intel (и на Хабре).
P.S. Кому лень поштучно качать спецификации с сайта Intel, приглашаю заглянуть в наш чат и забрать всё оттуда (включая июньские мануалы Intel SDM и свежие PDF-ки по оптимизации от Agner'а Fog'а)😉
— дополнительные 16 регистров общего назначения R16-R31, называемые расширенными регистрами общего назначения,
— трёхоперандные инструкции для многих целочисленных операций (
add rax,rcx,rdx
),— новые условные инструкции для чтения/записи и сравнения (
cfmovcc
, setcc.zu
, ccmp
, ctest
, а также атомарная инструкция cmpccxadd
),— оптимизированные операции сохранения регистров (
push2
/pop2
),— прямой 64-битный переход (
jmpabs
).P.S. Кому лень поштучно качать спецификации с сайта Intel, приглашаю заглянуть в наш чат и забрать всё оттуда (включая июньские мануалы Intel SDM и свежие PDF-ки по оптимизации от Agner'а Fog'а)
Please open Telegram to view this post
VIEW IN TELEGRAM