Start of main content

Settings

  1. . Online

    The time in the program is for your time zone ().

    • Main studio

      Opening of C++ Russia 2022 Conference

      Language -RU

      We will talk about the schedule, sessions, and share the information. Join the broadcast to find out what's on the air soon!

      • Sergey Platonov
      • Yulia Golovchanskaya
      • Pavel Filonov
    • Main studio

      Conversation in the studio about C++ in ML

      Language -RU

      C++ is written in very different fields - with different requirements, peculiarities, and complexities. And if you're not involved in ML, you may have a rather vague idea of how the developers' work there is different from yours. Maybe you should drop everything and go there. Or on the contrary, it's not your thing at all, and in general, C++ in this area is not long left?

      Experienced people can help you figure this out. Therefore, at the conference we will talk about the peculiarities of this sphere with those who have spent more than a year in it: Ashot Vardanian, Stanislov Kirillov. And Pavel Filonov will help to lead this conversation.

      • Ashot Vardanian
      • Stanislav Kirillov
      • Yulia Golovchanskaya
      • Pavel Filonov
    • Partner’s talk

      Poor man's pattern matching, or how to write your own `std::visit` for AST.

      Language -RU

      Nobody likes writing a lot of if else if code. In many languages, pattern matching exists to solve this problem.

      Unfortunately, C++ only has it for std::variant via std::visit.

      We'll discuss how to implement your own simple pattern matching solution using the example of working with AST nodes.

    • Talk

      An alternate view: how a reverser looks at code

      Language -RU

      Denis will show how the software sees the reverser. 
      One of the aspects of Denis' work is the analysis of targeted malware. 
      Denis will focus on a couple of target malware threats in his talk. Without claiming to be an expert in development, he will offer an alternative view: from binary to source code.

    • Talk

      C++ lambda idioms

      Language -RU

      This talk covers a number of interesting programming patterns using lambdas, from features that became available in C++11 all the way to techniques that will become possible in the upcoming C++23 standard.

    • Main studio

      Technical interview: Algorithmic section

      Language -RU

      A technical interview is a complicated thing in itself, and not everyone has any idea how it goes. And when the interview is narrowly focused, it is even more so.

      Egor Suvorov will conduct an interview with Anatoliy Tomilov, who will conventionally work with the algorithmic section. The goal is to show how it usually takes place, what knowledge and skills the candidate needs, and at the same time to analyze mistakes that both sides can make.

      • Egor Suvorov
      • Anatoliy Tomilov
      • Yulia Golovchanskaya
    • Talk

      Intermodule analysis of C++ projects

      Language -RU

      In the first part of the talk, the speaker will discuss the use of cross-module analysis in well-known compilers and how it relates to Linkage Time Optimizations (LTO). The second part will cover the technical details of the system implementation. The speaker will talk about the problems and solutions his team has encountered and share ideas about some of the optimizations that can be made.

  2. . Online

    The time in the program is for your time zone ().

  3. . Online

    The time in the program is for your time zone ().

    • Talk

      Secure By Design in C++

      Language -RU

      An overview of the "secure by design" approach in which security is achieved by initially designing correctly. Secure by design patterns and examples of their use in C++ will be discussed.

    • Talk

      A Practical Approach to Error Handling

      Language -EN

      Every program may encounter errors, some originating from internal bugs in the program, others coming from the environment the program is operating in. Ignoring all errors will make the program utterly unreliable, while treating every conceivable one introduces lots of extra complexity with little benefit. At think-cell, we have been using and refining our own principled approach to error handling, which we have not seen elsewhere. This talk describes our method, so that in your next project you can write more reliable software with less effort.

    • Main studio

      Talking about C++ in mobile development

      Language -RU

      C++ is written in very different fields, with different requirements, peculiarities, and complexities. And if you're not involved in mobile development, you may have a rather vague idea of how the developers' work there is different from yours. Maybe you should drop everything and go there. Or on the contrary, it is not your thing at all, and in general, the "pluses" in this area are not long left?

      Experienced people can help you figure this out. So at the conference, we will talk about the specifics of this field with those who have spent more than a year in it: Vladimir Ivanov and Ruslan Morozov.

      • Vladimir Ivanov
      • Ruslan Morozov
      • Yulia Golovchanskaya
    • Talk

      Decorating the hammer: how to automate problem parsing in the debugger

      Language -RU

      We show approaches to automating the analysis of problems on the example of the script library, published by the speaker in Open Source. It is intended to be used with WinDBG and GDB and helps in automating a number of routine tasks that appear when analyzing the causes of program crash both during live debugging and working with memory dumps.

  4. . Online + offline

    On June 26 in St. Petersburg at the Park Inn by Radisson Pulkovskaya there will be a joint offline C++ Russia 2022 and Hydra 2022 conference day.

    For your convenience, Hydra 2022 activities are tagged with #hydra_part.

    The time in the program is for your time zone ().

      • Room 2

        Talk

        Distributed transactions implementation trade-offs

        Language -RU

        This is educational first speech. Let's see why ACID transaction properties are important and how they are implemented in distributed databases with sharding and replication. What about geo-distributed databases? Is it possible to achieve fault tolerance (high availability) and support strong consistency in such databases. What are trade offs for performance. discuss famous CAP theorem and what it means for data indexing and DB transactions.

         
        • #hydra_part
      • Room 2

        Talk

        Parallel Asynchronous Replication between YDB Database Instances

        Language -RU

        Asynchronous replication is a well-known technique to provide an independent replica of a database for different purposes including disaster recovery, geo-replication or scaling read workload. Traditionally, a log of changes from source replica is treated as an input for target replica database. If source and target replicas are distributed databases that handle high workload, putting all updates to a single log of changes could be nearly impossible. 

        • #hydra_part
      • Room 3

        Partner’s talk

        Is there life without RTTI or how to write your own dynamic_cast

        Language -RU

        C++ developers don't like to pay for something they don't use. But there is a nuance, RTTI. As soon as you write dynamic_cast in the code, and you have to pay for runtime type information. We will look at how you can reduce the overhead by implementing your own dynamic_cast without RTTI.

      • Lunch break

        Buffet and beverages of your choosing.

      • Room 1

        Talk

        File system and network stacks in Userland: why we must use them in 2022

        Language -RU

        IO-performance becomes increasingly important:

        • we have more and more cores,
        • PCIe Gen3 is finally turning into PCIe Gen5 and for now it stops being the bottleneck,
        • NVMe drives and 200G NICs means the network is faster and fast.

        Stacks that were OK-ish in the past are not OK now. You can't saturate the HW IO capacity while doing context switches, wakeups in the kernel etc. So what before was an "option" is actually a MUST HAVE for most of the high performance applications.

      • Room 2

        Talk

        What about Binary Search Trees?

        Language -EN

        In this talk, we cover on how to design concurrent Binary Search Trees starting from the simplest ones. Hopefully, after this talk the attendee will understand the standard tricks necessary for the implementation of Binary Search Trees. These tricks are important and can help to implement other more complex data structures.

        • #hydra_part
      • Room 3

        Talk

        Using machine learning to improve inlining in LLVM

        Language -RU

        Feature embedding (inlining) is an optimization that is based on the heuristics used to make the final decision about feature embedding. These heuristics are designed to make an efficient solution in the general case, but, as a consequence, can lead to far from efficient solutions in different from general cases. To solve this problem, LLVM has added support for using a machine learning model that answers the question, based on analysis of the compiled code, whether a function should be embedded into the call point in question.

        In this talk, we'll look at how this mechanism for determining whether a function should be embedded using machine learning works, how it can improve your program, and what its limitations are.

      • Room 3

        Talk

        C++ compiler and optimizations for open RISC-V instruction set architecture

        Language -RU

        Sergey will talk about C/C++ compiler and application optimization for the open and free RISC-V architecture, the new standard changing the microprocessor world. You will learn about the history of the architecture, current state and plans in the international RISC-V community, architecture support in development tools, source code and compiler optimizations and transformations, performance hints and command system extensions.

      • Room 1

        Talk

        How to make your life easier when developing a client application in modern C++: an example of VK Calls

        Language -RU

        Developing the VK Calls desktop application was a real challenge. The team set several goals at once: to provide native builds for Windows, macOS, and Linux, to achieve maximum performance and quality, while removing the limit on the number of participants in the call. And to do all this in the shortest possible time. To do this, we had to think in advance how to cut some of the sharp corners that inevitably arise during the development in C++.

      • Room 2

        Talk

        Thread pools: variety of algorithms and features

        Language -RU

        This talk will help you dive into the various algorithms that have been implemented in Java, .NET,  and other runtimes. We will consider the tasks they solve and learn to understand problem areas. Also, solving certain tasks, we will create our own thread pool, after which we will achieve its maximum performance.

        • #hydra_part
      • Room 3

        Talk

        Type Sanitizer: a way to detect violations of strict aliasing rules in C++

        Language -RU

        This talk describes a dynamic analysis tool that allows detecting strict aliasing rules violation in C++ programs. This topic covers implementation details of this tool that is implemented as a part of LLVM infrastructure. The talk requires basic knowledge of LLVM middle-end part and common ideas of sanitizers (e.g. AddressSanitizer) implementation

      • Room 1

        Talk

        What a C++ developer should keep in mind about processor architecture

        At high loads, code efficiency may be a much better investment than buying new resources. Let's look into the "under the hood" of the processor. We will see what the cache, the pipeline, the vector instructions are for, and also see what else is there. We will look at the differences between x86 and ARM. We will discuss what code should be able to get the most out of the processor and not wait for hundreds of cycles for that byte to be loaded.

      • Room 2

        Talk

        OK S3

        Language -RU

        Odnoklassniki team has been developing and maintaining distributed fault-tolerant custom storages for many years. Our hot/cold blob storages provides efficient handling and processing of binary data (video, photo, music, etc.) approaching 1EB in size. Cassandra-based NewSQL supports our transactional workloads in numerous high-performance distributed clusters. Apart from custom homemade systems we have been using a fleet of deployed on-premises external products to store and deliver build and test artifacts, libraries, images, packages, logs, backups, etc. External Amazon S3 or on-premises S3 compatible storage service may fit the role of the common storage backend for all those products. S3 provides a high level object API and an evolved ecosystem of tools and SDKs for the most popular languages and platforms. In his talk Vadim will describe implementation of S3 compatible storage service based on battle-tested blob and NewSQL storages at Odnoklassniki. The talk will cover the architecture and data model, features and trade-offs, performance and optimization, some intricacies and surprises. The ideas and experience presented in the talk might be useful to designers and developers of distributed storage services, especially S3-compatible and/or Cassandra-based ones.

        • #hydra_part
      • Room 3

        Talk

        Overview of recent research in the field of selection of optimal sequences of optimization passes using ML

        Language -RU

        Now the sequence of optimization passes is chosen with the help of peer review by the compiler developers using a certain set of benchmarks. This is a very difficult task and a huge search space that ML can help with.

        Roman and Maria will consider approaches to solving this problem. They will make reviews of research papers and the tools and models used, describing their advantages and disadvantages. They will also show what practical results are achievable using machine learning to select the optimal sequence of optimization passes.

      • Room 1

        Discussion

        Roundtable. Concurrency

        Language -RU

        Concurrency in theory. Concurrency in practice. Concurrency in production.

        We discuss only real-world problems. Talking about upcoming innovations. 

        • Ivan Prisyazhniy
        • Daniil Podolsky
        • Vitaly Aksenov
        • Nikolay Markov
        • Ivan Ponomarev
        • Alexander Borgardt
      • Networking

        To see old friends. To discuss current problems. To come up with new ideas. To debate and just chat.