Всем привет! ✌️
Те, кто интересуется оптимизацией кода, наверняка слышали об Агнере Фоге (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 #ос
Сегодня поговорим об асинхронном программировании. Что это, зачем, как работает и как этим пользоваться?
Крепитесь, ниже будет много всего 💪
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]
#курс #видео #статья #библиотека #параллелизм #асинхронность #оптимизация #железо #ос