Думаю, стоит сразу добавить что-нибудь полезного.
Предлагаю вашему вниманию курс из 15-ти 1-1.5-часовых лекций «Параллельное программирование» от Computer Science Center (лектор Евгений Калишенко).
Курс весьма неплохой, особенно для новичков. Затрагивает темы корректной работы с потоками и ресурсами (через примитивы и неблокирующие алгоритмы lock-free и wait-free), низкоуровневые механизмы, Java.util.concurrent, OpenMP, Intel TBB, профилирование, барьеры памяти, шаблоны, транзакционную память, асинхронный ввод-вывод и т.д. Плюс, у них на канале много интересных видео.
В общем, вперёд! 💪
➡️ https://www.youtube.com/playlist?list=PLlb7e2G7aSpQCPeKTcVBHJns_JOxrc_fT
#видео #курс #параллелизм
Предлагаю вашему вниманию курс из 15-ти 1-1.5-часовых лекций «Параллельное программирование» от Computer Science Center (лектор Евгений Калишенко).
Курс весьма неплохой, особенно для новичков. Затрагивает темы корректной работы с потоками и ресурсами (через примитивы и неблокирующие алгоритмы lock-free и wait-free), низкоуровневые механизмы, Java.util.concurrent, OpenMP, Intel TBB, профилирование, барьеры памяти, шаблоны, транзакционную память, асинхронный ввод-вывод и т.д. Плюс, у них на канале много интересных видео.
В общем, вперёд! 💪
➡️ https://www.youtube.com/playlist?list=PLlb7e2G7aSpQCPeKTcVBHJns_JOxrc_fT
#видео #курс #параллелизм
YouTube
Параллельное программирование
Share your videos with friends, family, and the world
🔥2
Думаете, что бы такого почитать на выходных? 🤔
Пожалуйста (Хабр):
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️⃣ Модель памяти 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)
#статья #параллелизм #транзакционнаяпамять
👍2
Сегодня, в свой день рождения, хочу предложить вам книгу 🥳
Книга, что называется, 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
👍2🔥2👎1🎉1
Сегодня поговорим о мощнейшей (при этом бесплатной) библиотеке от 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
В одно сообщение всё не вошло, вот продолжение...
🔸 Репозиторий 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
🔥3
Салют! 💥
Хаброподборка про многопоточность и смежные темы:
🔸 Решение проблемы в управлении конкурентными вычислениями (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)
#статья #параллелизм
Привет, друзья! Соскучились? Надеюсь, что да 🙃
Сентябрь — время учёбы. Так было в школе, ВУЗе, пусть будет и здесь (но здесь же приятнее и уютнее)😁
Плавно входим в режим обучения курсом от ФПМИ "Теория и практика многопоточной синхронизации" (Роман Липовский, весна 2022).
🔸 Лекции
🔸 Семинары
🔹 Репозиторий курса
Приятного просмотра!
Кстати, расскажите в нашем чате, что интересного вы сделали за лето, с какими проблемами столкнулись, какие интересные решения нашли😉
#видео #курс #параллелизм
Сентябрь — время учёбы. Так было в школе, ВУЗе, пусть будет и здесь (но здесь же приятнее и уютнее)
Плавно входим в режим обучения курсом от ФПМИ "Теория и практика многопоточной синхронизации" (Роман Липовский, весна 2022).
🔸 Лекции
🔸 Семинары
🔹 Репозиторий курса
Приятного просмотра!
Кстати, расскажите в нашем чате, что интересного вы сделали за лето, с какими проблемами столкнулись, какие интересные решения нашли
#видео #курс #параллелизм
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
Салют! Небольшой ребрендинг: смена логотипов (надоел уже этот аляпистый спидометр) 🤩
И заодно некоторые полезности, разбирайте!
📖 Книга о технологиях 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