Самые быстрые алгоритмы распределенного и асинхронного обучения (с точки зрения теории)

Всем привет! Меня зовут Александр Тюрин, я руководитель группы «Методы оптимизации в машинном обучении» в AIRI и старший преподаватель Сколтеха. Мы с коллегами занимается оптимизацией распределённого обучения — это довольно актуальная проблема, учитывая, что современные модели обучаются на многих тысячах GPU. За последние 2 года нам удалось сделать несколько открытий в асинхронных методах оптимизации, которые мы изложили в 5 статьях [1–5] на NeurIPS и ICLR. В этой статье я расскажу, в чём заключаются особенности распределённого обучения и что нового привнесли в него мы с точки зрения теории.

https://habr.com/ru/companies/airi/articles/883266/

#оптимизация #параллельные_вычисления #машинное_обучение #стохастический_градиентный_спуск

Самые быстрые алгоритмы распределенного и асинхронного обучения (с точки зрения теории)

Всем привет! Меня зовут Александр Тюрин, я руководитель группы «Методы оптимизации в машинном обучении» в AIRI и старший преподаватель Сколтеха. Мы с коллегами занимаемся оптимизацией...

Хабр

Типы и архитектуры параллельных вычислений: какие они бывают?

Привет, Хабр! В этом материале мы снова вернемся к теме GPU и машинного обучения, но на этот раз поговорим о параллельных вычислениях, видах параллелизма и типах архитектур, которые задействуют для эффективной тренировки и работы нейросетевых моделей.

https://habr.com/ru/articles/881488/

#параллельные_вычисления #gpu #gpu_вычисления #параллелизм #архитектура #глубокое_обучение #глубокие_нейронные_сети #нейронные_сети #нейронные_сети_и_машинное_обучение #cpu

Типы и архитектуры параллельных вычислений: какие они бывают?

Привет, Хабр! В этом материале мы снова вернемся к теме GPU и машинного обучения, но на этот раз поговорим о параллельных вычислениях, видах параллелизма и типах архитектур, которые задействуют для...

Хабр

Joblib: максимум из параллельных вычислений в Python

Привет, Хабр! Сегодня разберемся с одной важной темой, которая может серьезно улучшить производительность Python-кода — параллельные вычисления с помощью Joblib . Joblib — это Python-библиотека, которая предоставляет инструменты для параллельных вычислений, кэширования и эффективной обработки данных. Она используется для ускорения выполнения операций, таких как многократные вычисления, обработка больших массивов данных и параллельная обработка однотипных задач.

https://habr.com/ru/companies/otus/articles/874810/

#joblib #python #параллельные_вычисления #обработка_данных

Joblib: максимум из параллельных вычислений в Python

Привет, Хабр! Сегодня разберемся с одной важной темой, которая может серьезно улучшить производительность Python‑кода — параллельные вычисления с помощью Joblib . Joblib — это...

Хабр

Как ускорить высокопараллельные вставки строк в SQL Server за считанные часы: опыт Mindbox

Привет, Хабр! Меня зовут Тимур Маннапов, и я самый обычный senior-разработчик в Mindbox. На примере нашего продукта я расскажу, почему при загрузке CPU наполовину или меньше скорость параллельных вставок на SQL-сервере упирается в «невидимый» предел, а потом и вовсе замедляется. На нашем железе предел был в районе ~120 тысяч строк в минуту в одну таблицу. Поделюсь, как его преодолеть, не потратив годы на разработку и миллионы на новый сервер.

https://habr.com/ru/companies/mindbox/articles/854156/

#sql #pagelatch_ex #параллелизм #параллельные_вычисления

Как ускорить высокопараллельные вставки строк в SQL Server за считанные часы: опыт Mindbox

Привет, Хабр! Меня зовут Тимур Маннапов, и я самый обычный senior-разработчик в Mindbox. На примере нашего продукта я расскажу, почему при загрузке CPU наполовину или меньше скорость параллельных...

Хабр

[Перевод] Два потока, одно ядро: как устроена одновременная многопоточность

Одновременная многопоточность (Simultaneous multithreading, SMT) — это функция, позволяющая процессору одновременно обрабатывать команды из двух разных потоков. Но задавались ли вы когда-нибудь вопросом, как это работает? Как процессор отслеживает два потока и распределяет ресурсы между ними? В статье я объясню, как устроена эта функция. Понимание внутреннего устройства SMT поможет вам решить, подходит ли она для ваших продакшен-серверов. Иногда SMT способна резко повысить производительность системы, но в некоторых случаях она приводит к замедлению. Знание подробностей позволит вам сделать правильный выбор. Примечание: основная часть изложенного в статье относится к реализации SMT компании Intel, также называемой гипертредингом (hyper-threading). Она основана на научной статье компании, опубликованной в 2002 году.

https://habr.com/ru/companies/ruvds/articles/836978/

#многопоточность #hyperthreading #intel #параллельные_вычисления #процессоры_intel #cpu #smt #ruvds_перевод

Два потока, одно ядро: как устроена одновременная многопоточность

Одновременная многопоточность (Simultaneous multithreading, SMT) — это функция, позволяющая процессору одновременно обрабатывать команды из двух разных потоков. Но задавались ли вы когда-нибудь...

Хабр

[Перевод] Как правильно тестировать конкурентные структуры данных

Есть потрясающая библиотека Rust под названием loom , которую можно использовать для тщательного тестирования неблокируемых (lock-free) структур данных. Я давно хотел разобраться, как она работает. И сейчас хочу! Но недавно я случайно реализовал небольшой эксперимент, который, как мне кажется, содержит часть идей loom , поэтому о нём стоит написать. Моя цель — не научить вас тому, что нужно использовать на практике (если вы хотите этого, то почитайте документацию loom ), а, скорее, вывести пару идей из фундаментальных принципов.

https://habr.com/ru/companies/ruvds/articles/827940/

#ruvds_переводы #конкурентность #параллельные_вычисления #параллелизм #concurrency #структуры_данных #тестирование

Как правильно тестировать конкурентные структуры данных

Есть потрясающая библиотека Rust под названием loom , которую можно использовать для тщательного тестирования неблокируемых (lock-free) структур данных. Я давно хотел разобраться, как она работает. И...

Хабр

Вы все еще пишете многопоточку на C++ с ошибками синхронизации?

Привет, коллеги! В этой статье я покажу свой подход к написанию многопоточного кода, который помогает избежать типовых ошибок, связанных с использованием базовых примитивов синхронизации. Демонстрация идеи будет проходить на живых примерах кода на современном C++. Большинство описанных решений я применял сначала на собственных проектах, а теперь часть этих подходов уже используется в нашей собственной микроядерной операционной системе «Лаборатории Касперского» (KasperskyOS) . Сразу хочу оговориться, что тема многопоточности — очень большая и серьезная. И эта статья — не полноценный анализ проблем многопоточки, а только частНЫе (но довольно частЫе) кейсы, когда мы вынуждены использовать мьютексы.

https://habr.com/ru/companies/kaspersky/articles/805365/

#c++17 #performance #multithreading #mutex #synchronization #информационная_безопасность #кибербезопасность #безопасность #уязвимости #кибератаки #разработка #c++ #программирование ++ #си++ #open_source #статический_анализ_кода #kasperskyos #параллельное_программирование #многопоточность #concurrency #параллельные_вычисления

Вы все еще пишете многопоточку на C++ с ошибками синхронизации?

Привет, коллеги! В этой статье я покажу свой подход к написанию многопоточного кода, который помогает избежать типовых ошибок, связанных с использованием базовых примитивов синхронизации. Демонстрация...

Хабр

Развитие RISC-V & мультиклеточная архитектура

Рост популярности RISC-V с момента его появления в 2010 году позволяет говорить, что архитектура состоялась. Пока успех архитектуры RISC-V — это, в первую очередь, ее открытость. Все остальные факторы вторичны. Минимализм системы команд, ее стандартизация, программная инфрастуктура — все это очень важно. Но, если бы за все это платили, как платят создателям ARM, то RISC-V, скорее всего, не было бы. Говорить о действительном успехе этой архитектуры можно будет только тогда, когда она создаст реальную конкуренцию ARM и х86 на высокомаржинальных рынках мобильных телефонов, планшетов, ПК, встроенных систем, суперкомпьютеров и искусственного интеллекта. Мультиклеточная архитектура может быть использована не только на архитектурном уровне процессора доступном компилятору и программисту, но и на микроархитектурном уровне. Так, если уровень системы команд RISC-V рассматривать как архитектурный, доступный компилятору и программисту, то реализация этого уровня внутри процессора на мультиклеточных принципах будет микроархитектурным уровнем, недоступным программисту, но именно этот уровень отвечает за характеристики процессора.

https://habr.com/ru/articles/776624/

#multiclet #мультиклет #мультиклеточные_процессоры #riscv #isa #суперскалярная_архитектура #параллелизм #параллельные_вычисления #компиляторы #kaby_lake

Развитие RISC-V & мультиклеточная архитектура

Рост популярности RISC-V с момента его появления в 2010 году позволяет говорить, что архитектура состоялась. Можно отметить два наиболее ярких примера. Первый. Китай создает на базе  RISC-V свой...

Хабр