Всем привет! ✌️
Те, кто интересуется оптимизацией кода, наверняка слышали об Агнере Фоге (Agner Fog) — специалисте в этой области.
Ну а если вы всё-таки не знакомы с его работами, то настоятельно рекомендую!
✅ Оптимизация кода на C++ и на ассемблере под Windows, Linux, macOS
✅ Таблица инструкций процессоров Intel, AMD, VIA (микрооперации, задержки, пропускная способность и пр.)
✅ Очень подробно о соглашениях о вызовах для различных ОС
✅ Библиотека классов для работы с векторами, оптимизированные под SSE, AVX, AVX-512
И не только...
В общем, enjoy it!
➡️ https://agner.org/optimize/
#статья #документация #оптимизация
Те, кто интересуется оптимизацией кода, наверняка слышали об Агнере Фоге (Agner Fog) — специалисте в этой области.
Ну а если вы всё-таки не знакомы с его работами, то настоятельно рекомендую!
✅ Оптимизация кода на C++ и на ассемблере под Windows, Linux, macOS
✅ Таблица инструкций процессоров Intel, AMD, VIA (микрооперации, задержки, пропускная способность и пр.)
✅ Очень подробно о соглашениях о вызовах для различных ОС
✅ Библиотека классов для работы с векторами, оптимизированные под SSE, AVX, AVX-512
И не только...
В общем, enjoy it!
➡️ https://agner.org/optimize/
#статья #документация #оптимизация
www.agner.org
Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
Software optimization manuals for C++ and assembly code. Intel and AMD x86 microprocessors.
Windows, Linux, BSD, Mac OS X. 16, 32 and 64 bit systems. Detailed descriptions of microarchitectures.
Windows, Linux, BSD, Mac OS X. 16, 32 and 64 bit systems. Detailed descriptions of microarchitectures.
Думаете, что бы такого почитать на выходных? 🤔
Пожалуйста (Хабр):
1⃣ ARM и программирование без блокировок (2021)
2⃣ std::atomic. Модель памяти C++ в примерах (2020)
И на посошок:
3⃣ А как же всё-таки работает многопоточность? Часть II: memory ordering (2014)
#статья #параллелизм
Пожалуйста (Хабр):
1⃣ ARM и программирование без блокировок (2021)
2⃣ std::atomic. Модель памяти C++ в примерах (2020)
И на посошок:
3⃣ А как же всё-таки работает многопоточность? Часть II: memory ordering (2014)
#статья #параллелизм
👍2
В многопоточных приложениях для доступа к разделяемым ресурсам (например, памяти) часто используются различные блокировки (критические секции, семафоры, RW-locks, spinlocks, etc). Однако такой подход оправдан (и даже применим) не всегда. Кроме блокирующих методов синхронизации необходимо знать и о неблокирующих (lock-free, wait-free) алгоритмах и структурах данных, использование которых, как правило, позволяет повысить производительность, порой весьма существенно.
Предлагаю вашему вниманию цикл статей про Lock-free структуры данных, написанных автором open-source библиотеки для C++ libcds Максимом Хижинским. Ссылка выше ведёт на все публикации автора на Хабре, однако на данный момент кроме этого цикла из 16-ти статей там ничего нет. На всякий случай дам ссылку на первую статью.
#статья #курс #канал #параллелизм #lockfree
Предлагаю вашему вниманию цикл статей про Lock-free структуры данных, написанных автором open-source библиотеки для C++ libcds Максимом Хижинским. Ссылка выше ведёт на все публикации автора на Хабре, однако на данный момент кроме этого цикла из 16-ти статей там ничего нет. На всякий случай дам ссылку на первую статью.
#статья #курс #канал #параллелизм #lockfree
👍1
Сегодня не буду грузить вас большими объёмами информации. Дам лишь пару ссылок на статьи, которые, надеюсь, будут вам интересны.
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)
#статья #параллелизм #транзакционнаяпамять
👍2
Сегодня поговорим о мощнейшей (при этом бесплатной) библиотеке от 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
👍1
Что почитать на выходных? Подборочка с Хабра.
Многопоточность:
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
🔥3
Сегодня поговорим об асинхронном программировании. Что это, зачем, как работает и как этим пользоваться?
Крепитесь, ниже будет много всего 💪
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
👍2
Идём дальше... 🙄
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
🔥3
После длительного перерыва предлагаю вам пару книг и статью про оптимизацию.
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)
#статья #параллелизм
Салют! Небольшой ребрендинг: смена логотипов (надоел уже этот аляпистый спидометр) 🤩
И заодно некоторые полезности, разбирайте!
📖 Книга о технологиях 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
🔥4
Сегодня, в преддверии большого кол-ва выходных, будет много разноплановой инфы.
Базовые вещи про многопоточность:
🔹 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]
#курс #видео #статья #библиотека #параллелизм #асинхронность #оптимизация #железо #ос
👍4🔥2
Давайте немного про 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
👍7🔥3