C++ Zero Cost
Cost Conf 2023;
Moscow & Belgrade;
29/07; Conference on Applied C++

YfD */

Broadcast recording

C++ Zero Cost Conf —
Yandex Conference on Applied C++

Top-notch practicing developers from global companies will deliver presentations, sharing real-life case studies and results.

This year, the conference will be held simultaneously in two countries, with online streaming from each. You can come and join us in Moscow or Belgrade — or watch the stream from the comfort of your home in any country.

Workshops 26 & 27 July

We want to give to developers as much practical knowledge as possible. That’s why, besides the conference, we organize several workshops — master classes on working with C++.

*All users registered at C++ Conf will be able to participate in them.

Deploying ML models using C++
26 July, 19:00 MSK

19:00 MSK 26 July
Pavel Filonov Independent Consultant
ex-Kaspersky, ex-Positive Technologies

Watch recording The video will be coming soon

When developing products that involve functionality based on machine learning, there are two important stages: model training and its application.

During the model training process, the Python language and various frameworks are often used to solve machine learning tasks.

However, when it comes to applying the model, there might arise a necessity to integrate a pre-trained ML model into C++ code.

In this workshop, we will explore several practical examples of such integration, using both existing C++ libraries and personally written implementation code when it is the simplest option.

We will take examples from the talk ’Train in Python, Apply in C++’ and create working and tested modules in C++ based on them.

  •  Key ideas and terms of machine learning.
  •  Simplest linear regression model.
  •  Implementation of model predictions in C++.
  •  Approaches to testing and metrics comparison.
  •  CatBoost gradient boosting libraries.
  •  КCode generation or C API integration.
  •  Batch processing and performance considerations.
  •  НNeural network models and vectorization.
  •  Implementation of a neural network in C++ using matrix operations.
  •  TensorFlow library (C API) and TensorFlow Lite (C++ API).
  •  Model conversion and ONNX library.
  •  Conclusions and next steps.
  •  Install Docker
  •  Pre-download the Docker image with all the required dependencies:
    docker pull sdukshis/cppml
  •  Learn how to mount the directory with source code inside the container and perform builds using CMake:
    cd <hello, world>
    docker run --rm $(pwd):/usr/src/app -ti sdukshis/cppml
    cmake -B build
    cmake --build build

Deduction guides: Impossible is possible.
27 July, 19:00 MSK

19:00 MSK 27 July
Ruslan Arutyunyan Intel, Senior Middleware Development Engineer

Watch recording The video will be coming soon

The presentation will provide the practical example of writing Deductions guides for the class that takes the Callable object as an argument.

We are supposed to go through the steps I’ve made to learn how these tasks can be solved. I will demonstrate how to fetch function signature from the object type and then use it as a developer likes, how to leverage the additional information about the required signature of a function, and how to make more convenient user interface based on above.

The presentation is going to tell the quite funny story of how impossible becomes possible just in two days.

The attendees are expected to know what is Class Template Argument Deduction (CTAD) and basics about how to write the Deduction Guides.

Program

Перерыв

13:50

Break

16:20

Closure

18:50

Afterparty

19:00

YDB Actor System: the history of optimizations that allowed us to outperform competitors

12:00
Vladislav Kuznetsov Nebius (YDB), Senior Software Engineer

YDB has been using and developing its own implementation of the actor system in C++ for almost 10 years. During this time, we have examined and analyzed our implementation from various angles and perspectives. However, six months ago, we decided to compare YDB with its competitors — CockroachDB and YugabyteDB — and once again, we discovered many interesting insights. Our team looked at benchmarks, YCSB benchmarks, and FlameGraph under load. We identified the most CPU-intensive areas, experimented with the code, and optimized the actor system and its usage. It is worth mentioning that optimizing the work with protobuf also yielded noticeable results. We tried thinLTO and PGO techniques as well. As a result, through iterative improvements, we found that in the YCSB test, YDB is the fastest distributed SQL database. In this talk, we will mainly focus on the actor system: from a general overview to interesting and non-obvious optimizations that have yielded results. We will also discuss the process of identifying performance issues.

Article with YCSB benchmark results:
Medium
Habr

Смотреть на YouTube

Break

12:50

Break

15:20

Closing

17:50

Afterparty

18:00

Anton Polukhin

Yandex Go, Head of the Common Components Development Group

Representative of Russia in the C++ Working Group of the International Organization for Standardization(WG21 ISO). Author of many accepted proposals to the C++ language standard.

Chair of the the C++ Working Group of the International Organization for Standardization. Develops and supports the standard GCC library, Boost libraries. Author of Boost libraries PFR, TypeIndex, DLL, StackTrace and active maintainer of Any, Conversion, LexicalCast, Variant.

Author of the book Boost C++ Application Development Cookbook.

Andrey Aksyonov

Avito/Sphinx

Codes code, commands commands, delivers deliveries. Works at Avito, oversees search infrastructure, works on the Sphinx search engine. Has experienced a variety of tasks and roles.

Pavel Filonov

Independent Consultant, ex-Kaspersky, ex-Positive Technologies

Participated in the development of products such as MaxPatrol SIEM, Kaspersky MLAD, MDR as a C++ developer and Data Scientist. He is an instructor for C++ and MLOps courses at OTUS.

Ruslan Arutyunyan

Intel, Senior Middleware Development Engineer

Ruslan is a senior middleware development engineer who has been working in a team specialized in libraries development for concurrency and parallelism. He was a technical leader of two libraries used for autonomous driving. Currently, Ruslan has been working on various Intel products, with main focus on oneDPL.

He is also a member of the C++ standardization working group with a focus on the C++ standard library and parallelism, and with several accepted proposals.

Yulia Golovchanskaya

Playrix, Programming Team Lead

C++ developer with experience in the field of Computer Vision and GameDev. Participated in the development of software for 3D city reconstruction, quality control in factories, and road condition analysis algorithms for traffic control systems. Taught practical C++ to students at the Higher School of Economics (HSE) in Saint Petersburg. Currently a team lead of a technical team in GameDev, specializing in feature development.

Ilya Shishkov

Yandex Eats, Senior Software Developer

Has been working as a C++ developer at Yandex for 10 years. Experienced in high-load backend and applications, as well as in creating online courses.

Created an online specialization in C++ «Belts in C++», as well as the online course «Algorithmic Foundation for Programmers».

Speaker at various conferences:
C++ Russia, SECR, KnowledgeConf. Runs the Telegram channel «Algorithmic Foundatio».

Sergey Fedorov

Yango Deli Tech, Head of Warehouse Robots Development

Has been writing in C++ since 1999. Has done various tasks: from automating bakeries and crematoriums to developing banking and stock exchange software and game development. Currently, he is the Head of Warehouse Robots Development at Yango. Loves open source and puzzling tasks.

Alexander Kirsanov

VKontakte, Team Lead of the KPHP

Works on the development of the KPHP compiler within VKontakte, as well as a number of other open-source projects related to languages and tooling. Frequently speaks at conferences on various directions and topics, leads student educational projects, and believes that the team leader should write more code than anyone else.

Roman Rusyaev

Team Lead in Compiler Department

Developer of compilers for various hardware architectures.

Vladislav Kuznetsov

Nebius (YDB), Senior Software Engineer

6 years in Yandex — 6 years in YDB. Grew and developed together, participated in the development of the storage layer for data storage and enhancement of a proprietary file system. Recently, he has been optimizing, speeding up, and maximizing transaction processing. His main interest is code efficiency. He enjoys exploring systems, identifying performance problems, and speeding everything up.

Alexander Malkov

Yandex Go, C++ Developer

Before working at Yandex, he was the CTO of custom software development.

He has a deep love for technology and the technological platform, which is why he came to develop userver and stayed. He enjoys learning new things and sharing them with others, and also coding a lot. He has over 10 years of overall development experience.

Konstantin Vladimirov

Syntacore, Head of Development Tools and Compilers Group

He has been involved with compilers since 2010, and programming in C++ since 2004. He has spent the last year working on the extensible RISC-V architecture.

Konstantin Vukolov

Yandex, Senior Software Developer

He has been involved in development under the conditions of code optimization for 8 years, is passionate about high-load systems, efficient code, and the application of the latest technologies in heavy industry.

Miloš Anđelkovic

Pure Storage, Senior Software Engineer

Miloš got acquainted with C++ back in his high school days, and ever since using two for loops to print a pyramid of stars, he knew he wanted to be a software engineer. During his studies, he got introduced to a range of other programming languages, but he found C++ to be the most enjoyable to work with (yeah, he knows). His professional career started as a teaching assistant, which he found quite fulfilling and hopes to return to one day. Since then, he has been working on software in various industries, including gaming. Additionally, he is a member of the Serbian C++ User Group and serves as the organizer of CPP Prague, a user group for programming enthusiasts in Prague.

Sergey Slotin

Lecturer, Tinkoff Education, ex‑Yandex

Sergey Slotin is a computer scientist and a software engineer specializing in algorithm design and performance optimization.

He has designed some of the world’s fastest algorithm implementations, including binary search, B-tree, integer factorization, integer parsing, as well as a range of SIMD-based array processing algorithms. Active as an educator, his writing includes «Algorithmica» — one of the most popular Russian-language resources about algorithms and data structures, and «Algorithms for Modern Hardware», a book on high performance computing.

Alexander Borgardt

Tech Lead duckstax.com

For over 10 years, he has been researching new approaches and creating solutions in the fields of adtech, fintech, and ML.

His areas of interest include the development of distributed systems, parallel and concurrent information processing.

He contributes to the improvement of the world through open source projects. You can find his work at https://duckstax.com/.

Anton Polukhin

Yandex Go, Head of the Common Components Development Group

Representative of Russia in the C++ Working Group of the International Organization for Standardization(WG21 ISO). Author of many accepted proposals to the C++ language standard.

Chair of the the C++ Working Group of the International Organization for Standardization. Develops and supports the standard GCC library, Boost libraries. Author of Boost libraries PFR, TypeIndex, DLL, StackTrace and active maintainer of Any, Conversion, LexicalCast, Variant.

Author of the book Boost C++ Application Development Cookbook.

Ilya Shishkov

Yandex Eats, Senior Software Developer

Has been working as a C++ developer at Yandex for 10 years. Experienced in high-load backend and applications, as well as in creating online courses.

Created an online specialization in C++ «Belts in C++», as well as the online course «Algorithmic Foundation for Programmers».

Speaker at various conferences:
C++ Russia, SECR, KnowledgeConf. Runs the Telegram channel «Algorithmic Foundatio».

Sergey Fedorov

Yango Deli Tech, Head of Warehouse Robots Development

Has been writing in C++ since 1999. Has done various tasks: from automating bakeries and crematoriums to developing banking and stock exchange software and game development. Currently, he is the Head of Warehouse Robots Development at Yango. Loves open source and puzzling tasks.

Sergey Vidyuk

Yandex Infrastructure, Senior Developer

Works on developing a build system for Yandex’s monorepository. Has 10 years of experience in developing mobile mapping applications (Navitel, then 2GIS). In his hobby time, he develops his own future/promise library, portable_concurrency.

Loves C++, large acyclic graphs, and hiding mutexes from business logic in multithreaded code.

Roman Lebedev

AWS, Senior Software Engineer

10+ years of experience in C++ development. Has worked in various fields: AV content processing, ad targeting, HFT. Spent the last 5 years working in the efficiency direction, first at Yandex Taxi, then at Lavka. Currently working on the development of AWS Lambda.

Anna Ilyakhina

Yandex, Backend DevRel

Has been side by side with IT professionals for more than 8 years. Builds relationships with communities: C++, DevOps, Database. Also works with open-source projects: ClickHouse, CatBoost, YDB, userver, YTsaurus, etc.

Organizes Yandex events, partners integrations (HighLoad Armenia, HighLoad Serbia), works with speakers at internal and external conferences, accompanies authors on «Habr», develops internal and external communities, works on online projects and DevRel strategy.

Former Mother of DevRel at «Leroy Merlin».

Mikhail Borisov

Yandex, Team Lead

Tue Aug 01 2023 11:12:23 GMT+0300 (Moscow Standard Time)