C++ Zero Cost Conf —

конференция Яндекса, которую разработчики на C++ готовят для всех практикующих плюсовиков. Вас ждёт прикладной С++ — измеримые метрики и реальные кейсы.

Программа

(по московскому времени, GMT+3)

12:10

Секретная новость

Мы готовим большой анонс для разработчиков на С++. Вам понравится, приходите :)

Смотреть на YouTube

Антон Полухин Яндекс Go
12:30

Эффективные и высоконагруженные сервисы на C++

В Яндекс Такси, Еде, Лавке, Доставке и Маркете стоит задача быстро и качественно писать на C++ эффективные и высоконагруженные сервисы. Мы используем этот язык, потому что он производительный, строго типизированный и имеет большое количество библиотек. Для того чтобы писать микросервисы было просто, мы разработали асинхронный высокопроизводительный фреймворк userver. В этом докладе я расскажу, как легко и быстро написать высоконагруженный сервис динамических конфигов, которым могут пользоваться сотни других сервисов.

Смотреть на YouTube

Александр Малков Яндекс Go
13:20

Эффективная реализация обходов произвольных графов

В докладе рассматривается реализация обходов произвольных графов в различной нумерации — Post Ordering, Reverse Post Ordering, а также поиска в графе сильно связных компонент для дальнейшего обхода отдельных компонент. Прослушав доклад, можно без труда реализовать рассмотренную функциональность для обхода произвольных графов (специализируя только соответствующий traits) в различном порядке. Данная реализация минималистична, эффективна и удобна в использовании, что позволит существенно снизить время разработки таких типовых задач, как обход графов, при этом избежав типичных ошибок.

В докладе также будут рассмотрены примеры на реальных приложениях, где необходимы упомянутые обходы графов.

Смотреть на YouTube

Роман Русяев
14:10

Сжимаем действительные числа в ClickHouse

  • Как компьютер хранит действительные числа
  • Основные подходы к сжатию данных и их имплементации в CH
  • Действительные числа сложно сжимать
  • Используем оракула/пророка для сжатия действительных чисел
  • Пытаемся победить zstd

Смотреть на YouTube

Михаил Гузов
14:30

Новости от рабочей группы 21

Обсудим новости со встречи Международного комитета по стандартизации языка С++. #warning, уместное использование volatile, constexpr можно писать на всём подряд, static operator(), float16_t и bfloat16_t, [[assume(x)]] и прочие интересные новинки C23++. Руководитель РГ21 С++ Антон Полухин ответит на вопросы и расскажет о планах на C++26.

Смотреть на YouTube

Антон Полухин Яндекс Go
14:50

Перерыв

15:30

Истории про производительность

Каждый достаточно крупный проект рано или поздно приходит к состоянию, когда текущая производительность не устраивает и нужно прибегать к оптимизации потребления ресурсов.

В своем докладе я расскажу о нескольких проектах, при работе над которыми мы столкнулись с необходимостью оптимизировать производительность имеющегося кода.

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

Всё, о чем буду рассказывать, так или иначе связано с геолокацией и HTTP-запросами. Приходите, если вам интересно что-нибудь из перечисленного.

Смотреть на YouTube

Василий Торопов Яндекс Go
16:20

Разработка встраиваемых баз данных: live hack concurrency

Concurrency во встраиваемой базе сложна, так как надо балансировать между ожидаемой пользой и накладными расходами.

За последнее время я придумал пару-тройку трюков с минимальными накладными расходами.

Интересные трюки:

  • стек вызовов превратить в граф вызовов функций;
  • бизнес-логика без дополнительной синхронизации;
  • динамическое количество thread pool.

Как всё действует, в картинках — у меня в докладе.

Смотреть на YouTube

Александр Боргардт DuckStax
17:10

Оптимизируем бинарный поиск

Доклады об ускорении условных баз данных на 5−10% большинству людей не интересны: да, это то, за что программистам платят, но эти оптимизации обычно слишком сложные и специфичные, чтобы их можно было сразу применить где-нибудь еще.

Другое дело — оптимизация базовых алгоритмов из учебников — тех, которые кажутся настолько простыми, что пытаться ускорять их даже в голову не придет. Такие оптимизации, как правило, просты, поучительны, многократны и, на удивление, не так редки, как многие думают.

В этом докладе мы сосредоточимся на одном из таких фундаментальных алгоритмов — бинарном поиске. Рассмотрим ряд способов ускорить его с помощью branchless-программирования, оптимизации доступов к памяти и использования SIMD-инструкций и постепенно выведем алгоритм до 15 раз быстрее std::lower_bound.

Смотреть на YouTube

Сергей Слотин Tinkoff Fintech

Илья Шишков

Яндекс Еда, старший разработчик

Работает разработчиком С++ в Яндексе 10 лет.

Имеет опыт в высоконагруженном бэкенде, приложениях, а также в создании онлайн-курсов.

Создал онлайн-специализацию по С++ «Пояса по С++», а также онлайн-курс «Алгоритмический фундамент программиста».

Докладчик различных конференций: C++ Russia, SECR, KnowledgeConf.

Ведёт телеграмм канал Алгоритмический фундамент.

Антон Полухин

Яндекс Go, руководитель группы разработки общих компонент

Представитель России в международной рабочей группе по стандартизации C++ (WG21 ISO). Автор многих принятых предложений к стандарту языка C++.

Председатель российской рабочей группы по стандартизации С++. Разрабатывает и поддерживает стандартную библиотеку GСC, библиотеки Boost. Aвтор Boost-библиотек TypeIndex, DLL, Stacktrace и активный maintainer Any, Conversion, LexicalCast, Variant.

Автор книг «Boost C++ Application Development Cookbook».

Александр Малков

Яндекс Go, C++ разработчик в команде общих компонент

Я фанат языка C++, у меня есть опыт написания своей веб-версии мини-фреймворка как дополнительного проекта еще до работы в Яндексе. Когда я прочел статью о фреймворке userver, влюбился в него, это и стало моей причиной прихода в Яндекс. Больше года я проработал в Яндекс Еде, где на практике работал с userver, параллельно помогая разрабатывать его, чтобы вывести этот фреймворк на новый уровень. Когда я окончательно понял, что инфраструктура интересует меня больше продукта, я сменил направление работы и стал полноценным членом команды userver. Сейчас я занимаюсь разработкой userver, а также сервиса динамических конфигов.

Роман Русяев

Разработчик компиляторов

В настоящий момент занимается разработкой компиляторов C/C++ для архитектуры AArch64.

Имеет опыт разработки:

  • компилятора нейронных сетей для NPU (Neural Processing Unit);
  • оптимизирующих компиляторов под VLIW-архитектуры и архитектуру SPARC для языков C, C++, Fortran;
  • OpenCL для VLIW-архитектуры;
  • AddressSanitizer и MemorySanitizer для VLIW-архитектуры;
  • оптимальной обработки исключений С++ для VLIW-архитектуры.

Михаил Гузов

Разработчик

Контрибьютит в ClickHouse. Пишет на С++ высоконагруженные сервисы четыре года, из них год работал в инфраструктурных командах Яндекса, в том числе в рантайме Поиска. Программирует на С++ девять лет.

Василий Торопов

Яндекс Go, разработчик

Пишет производительный код. Когда получается недостаточно производительный — переписывает.

В свободное от работы время решает олимпиадные задачки по программированию.

Александр Боргардт

DuckStax, TechLead

Более 10 лет занимается исследованием новых подходов и созданием решений в областях adtech, fintech и ML.

В область интересов входят вопросы разработки распределённых систем, параллельной и конкуррентной обработки информации.

Улучшает мир посредством опенсорса: https://duckstax.com/

Сергей Слотин

Tinkoff Fintech, лектор

Написал самое быстрое в мире B-дерево, бинарный поиск, факторизацию целых чисел, парсинг целых чисел, алгоритм Флойда, префиксную сумму и поиск и аргминимум на массиве.

Автор «Algorithms for Modern Hardware» и «Алгоритмики».

В прошлых жизнях ML-разработчик (в том числе в Яндексе) и спортивный программист.

Антон Полухин

Яндекс Go, руководитель группы разработки общих компонент

Представитель России в международной рабочей группе по стандартизации C++ (WG21 ISO). Автор многих принятых предложений к стандарту языка C++.

Председатель российской рабочей группы по стандартизации С++. Разрабатывает и поддерживает стандартную библиотеку GСC, библиотеки Boost. Aвтор Boost-библиотек TypeIndex, DLL, Stacktrace и активный maintainer Any, Conversion, LexicalCast, Variant.

Автор книг «Boost C++ Application Development Cookbook».

Илья Шишков

Яндекс Еда, старший разработчик

Работает разработчиком С++ в Яндексе 10 лет.

Имеет опыт в высоконагруженном бэкенде, приложениях, а также в создании онлайн-курсов.

Создал онлайн-специализацию по С++ «Пояса по С++», а также онлайн-курс «Алгоритмический фундамент программиста».

Докладчик различных конференций: C++ Russia, SECR, KnowledgeConf.

Ведёт телеграмм канал Алгоритмический фундамент.

Сергей Федоров

Яндекс Лавка, руководитель службы разработки бэкенда

Пишу на C++ с 1999 года. Делал разное: от автоматизации хлебозаводов и крематориев до банковского и биржевого ПО и геймдева. Сейчас — руководитель разработки бэкенда Яндекс.Лавки. Люблю open source и головоломные задачи.

Данила Кутенин

Google, старший разработчик

Старший разработчик в Google Flume/Apache Beam/Mapreduce-системах. Ведущий канала о перформансе, контрибьютер в стандартную библиотеку Google Abseil, а также LLVM.

Роман Лебедев

Яндекс Лавка, тимлид команды разработки бэкенда логистики

Более 10 лет опыта разработки на C++. Работал в различных областях: обработка AV-контента, таргетирование рекламы, HFT. Последние 5 лет занимался направлением эффективности сначала Яндекс Такси, а потом Лавки.

Анна Иляхина

Яндекс, DevRel

Занимается всем бэкендом: С++, Python, Go, Java. Open-source-проекты: ClickHouse, YDB и т. д.

Мероприятия Яндекса, спикеры, внешние конференции, Хабр, СМИ, спецпроекты, работа с внутренними и внешними сообществами, онлайн-проекты и стратегия DevRel.

Готовит спикеров к выступлениям на конференциях.

Tue May 16 2023 18:50:34 GMT+0300 (Moscow Standard Time)