Всем салют! 💥
Решил я на днях поискать в телеге специализированные чаты и каналы по параллельному программированию (и concurrency в целом). И ничего не нашёл, что весьма удивительно 🤔. Потому что тема интересная, востребованная, местами весьма непростая.
Поэтому было решено создать и чат, и канал. Добавив сюда же GPGPU, оптимизацию и SIMD.
Каких-либо обещаний по поводу регулярности постов давать не буду. Время покажет.
Друзья, чтобы придать чату и каналу большей живучести, делитесь ссылками на них:
➡️ @parallelcode (канал),
➡️ @parallelcoding (чат).
Ну и буду безмерно благодарен интересным материалам по теме: ссылкам на статьи, книги, лекции, библиотеки и т.п. Пишите в чат или в личку ✌️
Решил я на днях поискать в телеге специализированные чаты и каналы по параллельному программированию (и concurrency в целом). И ничего не нашёл, что весьма удивительно 🤔. Потому что тема интересная, востребованная, местами весьма непростая.
Поэтому было решено создать и чат, и канал. Добавив сюда же GPGPU, оптимизацию и SIMD.
Каких-либо обещаний по поводу регулярности постов давать не буду. Время покажет.
Друзья, чтобы придать чату и каналу большей живучести, делитесь ссылками на них:
Ну и буду безмерно благодарен интересным материалам по теме: ссылкам на статьи, книги, лекции, библиотеки и т.п. Пишите в чат или в личку ✌️
Please open Telegram to view this post
VIEW IN TELEGRAM
Думаю, стоит сразу добавить что-нибудь полезного.
Предлагаю вашему вниманию курс из 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
Всем привет! ✌️
Те, кто интересуется оптимизацией кода, наверняка слышали об Агнере Фоге (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)
#статья #параллелизм
В многопоточных приложениях для доступа к разделяемым ресурсам (например, памяти) часто используются различные блокировки (критические секции, семафоры, RW-locks, spinlocks, etc). Однако такой подход оправдан (и даже применим) не всегда. Кроме блокирующих методов синхронизации необходимо знать и о неблокирующих (lock-free, wait-free) алгоритмах и структурах данных, использование которых, как правило, позволяет повысить производительность, порой весьма существенно.
Предлагаю вашему вниманию цикл статей про Lock-free структуры данных, написанных автором open-source библиотеки для C++ libcds Максимом Хижинским. Ссылка выше ведёт на все публикации автора на Хабре, однако на данный момент кроме этого цикла из 16-ти статей там ничего нет. На всякий случай дам ссылку на первую статью.
#статья #курс #канал #параллелизм #lockfree
Предлагаю вашему вниманию цикл статей про Lock-free структуры данных, написанных автором open-source библиотеки для C++ libcds Максимом Хижинским. Ссылка выше ведёт на все публикации автора на Хабре, однако на данный момент кроме этого цикла из 16-ти статей там ничего нет. На всякий случай дам ссылку на первую статью.
#статья #курс #канал #параллелизм #lockfree
Наступили выходные, а значит можно посмотреть что-нибудь полезное. Например, о вычислениях на графических процессорах (GPGPU).
Ниже прикреплены ссылки на короткие вводные лекции по CUDA и OpenACC. Полноценный курс пришлю позже (как посмотрю хотя бы пару-тройку лекций из него) 🙂
Если вы разбираетесь в теме, не факт, что вы найдёте здесь что-то новое для себя. Но если вы новичок или пока не знакомы с технологией, обязательно посмотрите!
1️⃣ Краткий обзорный онлайн курс по CUDA и OpenACC (VK).
2️⃣ Ещё один курс видеолекций по NVIDIA CUDA (YouTube).
3️⃣ Ещё? Пожалуйста: NVIDIA CUDA и OpenACC (YouTube — у автора на канале кроме этих лекций ничего нет).
🔹 CUDA Toolkit от NVIDIA — компилятор и инструменты разработчика.
P.S. У меня сейчас очень загруженные дни, так что из первых трёх ссылок я смотрел только лекции из п.1. Ставьте реакции 👍 / 👎 / 🤔 и делитесь мнением в чате, чтобы дать понять, насколько интересными для вас оказались эти видео.
#видео #курс #gpgpu #cuda #openacc
Ниже прикреплены ссылки на короткие вводные лекции по CUDA и OpenACC. Полноценный курс пришлю позже (как посмотрю хотя бы пару-тройку лекций из него) 🙂
Если вы разбираетесь в теме, не факт, что вы найдёте здесь что-то новое для себя. Но если вы новичок или пока не знакомы с технологией, обязательно посмотрите!
1️⃣ Краткий обзорный онлайн курс по CUDA и OpenACC (VK).
2️⃣ Ещё один курс видеолекций по NVIDIA CUDA (YouTube).
3️⃣ Ещё? Пожалуйста: NVIDIA CUDA и OpenACC (YouTube — у автора на канале кроме этих лекций ничего нет).
🔹 CUDA Toolkit от NVIDIA — компилятор и инструменты разработчика.
P.S. У меня сейчас очень загруженные дни, так что из первых трёх ссылок я смотрел только лекции из п.1. Ставьте реакции 👍 / 👎 / 🤔 и делитесь мнением в чате, чтобы дать понять, насколько интересными для вас оказались эти видео.
#видео #курс #gpgpu #cuda #openacc
Чтобы писать действительно эффективные многопоточные приложения (а иногда даже просто рабочие), необходимо знать о моделях памяти и барьерах памяти. Посмотрите пару видео на эту тему.
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 #ос