#CoreHardBy

C++ CoreHard Spring 2017 Сonference

The C++ CoreHard Spring 2017 is a conference dedicated to C++ and related hardcore technologies.

The conference is being organized by the CoreHard.by community that unites not only C++ engineers, but also those who are interested in low-level development in C and Assembler, programming of controllers, Internet of Things, highload server solutions and in any kind of “hardcore” development.

#CoreHardBy

Speakers

Schedule

  • 11:00 - 11:10

    Opening

  • 11:10 - 12:00

    Considerations for choosing the parallel computing strategy that fits your needs

    Dori Exterman

    Multi-core architecture is the present and future way in which the market is addressing Moore’s law limitations. Multi-core workstations, high performance computers, GPUs and the focus on hybrid/ public cloud technologies for offloading and scaling applications is the direction development is heading. Leveraging multiple cores in order to increase application performance and responsiveness is expected especially from classic high-throughput executions such as rendering, simulations, and heavy calculations. Choosing the correct multi-core strategy for your software requirements is essential, making the wrong decision can have serious implications on software performance, scalability, memory usage and other factors. In this overview, we will inspect various considerations for choosing the correct multi-core strategy for your application’s requirement and investigate the pros and cons of multi-threaded development vs multi-process development. For example, Boost’s GIL (Generic Image Library) provides you with the ability to efficiently code image processing algorithms. However, deciding whether your algorithms should be executed as multi-threaded or multi-process has a high impact on your design, coding, future maintenance, scalability, performance, and other factors.

    A partial list of considerations to take into account before taking this architectural decision includes:
    - How big are the images I need to process
    - What risks can I have in terms of race-conditions, timing issues, sharing violations – does it justify multi-threading programming?
    - Do I have any special communication and synchronization requirements?
    - How much time would it take my customers to execute a large scenario?
    - Would I like to scale processing performance by using the cloud or cluster?

    We will then examine these issues in real-world environments. In order to learn how this issue is being addressed in a real-world scenario, we will examine common development and testing environments we are using in our daily work and compare the multi-core strategies they have implemented in order to promote higher development productivity.

  • 12:10 - 13:00
  • 13:10 - 14:00
  • 14:00 - 14:30

    Coffee Break

  • 14:30 - 15:20

    How to make a large C++-code base manageable

    Viktor Sehr

    My talk will cover how to work with a large C++ code base professionally. How to write code for debuggability, how to work effectively even due the long C++ compilation times, how and why to utilize the STL algorithms, how and why to keep interfaces clean. In addition, general convenience methods like making wrappers to make the code less error prone (for example ranged integers, listeners, concurrent values). Also a little bit about common architecture patterns to avoid (virtual classes), and patterns to encourage (pure functions), and how std::function/lambda functions can be used to make virtual classes copyable.

  • 15:30 - 16:20
  • 16:30 - 17:20
  • 11:00 - 11:10

    Opening

  • 11:10 - 12:00

    Considerations for choosing the parallel computing strategy that fits your needs

    Dori Exterman

    Multi-core architecture is the present and future way in which the market is addressing Moore’s law limitations. Multi-core workstations, high performance computers, GPUs and the focus on hybrid/ public cloud technologies for offloading and scaling applications is the direction development is heading. Leveraging multiple cores in order to increase application performance and responsiveness is expected especially from classic high-throughput executions such as rendering, simulations, and heavy calculations. Choosing the correct multi-core strategy for your software requirements is essential, making the wrong decision can have serious implications on software performance, scalability, memory usage and other factors. In this overview, we will inspect various considerations for choosing the correct multi-core strategy for your application’s requirement and investigate the pros and cons of multi-threaded development vs multi-process development. For example, Boost’s GIL (Generic Image Library) provides you with the ability to efficiently code image processing algorithms. However, deciding whether your algorithms should be executed as multi-threaded or multi-process has a high impact on your design, coding, future maintenance, scalability, performance, and other factors.

    A partial list of considerations to take into account before taking this architectural decision includes:
    - How big are the images I need to process
    - What risks can I have in terms of race-conditions, timing issues, sharing violations – does it justify multi-threading programming?
    - Do I have any special communication and synchronization requirements?
    - How much time would it take my customers to execute a large scenario?
    - Would I like to scale processing performance by using the cloud or cluster?

    We will then examine these issues in real-world environments. In order to learn how this issue is being addressed in a real-world scenario, we will examine common development and testing environments we are using in our daily work and compare the multi-core strategies they have implemented in order to promote higher development productivity.

  • 12:10 - 13:00
  • 13:10 - 14:00
  • 14:00 - 14:30

    Coffee Break

  • 14:30 - 15:20
  • 15:30 - 16:20
  • 16:30 - 17:20

Organizers

  • Corehard.by

Partners

  • DPI Solutions
  • Awem Games
  • SolarWinds
  • Apalon
  • EPAM
  • IncrediBuild
  • JetBrains
  • C++ User Group Russia
  • PVS-Studio
  • IT-academy
  • eventspace.by

Infopartners

  • Kaspersky Lab
  • dev.by
  • Imaguru
  • IBA Institute
  • comaqa.by
  • itstep.by
  • gamedev.by
  • javaday.by
  • conf.cocoaheads.by/
  • ITVDN
  • HotWork
  • trud.com
  • avradays.com
  • vse-kursy.by