CppCon 2018: Fedor Pikus “Design for Performance”

Sdílet
Vložit
  • čas přidán 7. 11. 2018
  • CppCon.org
    -
    Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/CppCon/CppCon2018
    -
    This presentation is a "lessons learned" summary of some 20 years of experience designing, developing, and maintaining a large-scale commercial software system for the users who are primarily interested in performance. Competitive benchmarks are the dominant factor in our users' decisions whose tool to buy.
    A high-quality implementation, a skillful optimization, can win the day in such environment. But only the day. The design determines the long-term survival. Parts of the system have grown ten-fold in size and complexity, but still fundamentally use the original architecture and show no sign of strain. Others had to be radically redesigned or even rewritten from scratch. The designs of the former type tend to share certain characteristic properties, which we came to recognize. These are design patterns of high-performance software, at least in our experience. The design of the latter type, unfortunately, exhibit an infinite variety of poor decisions, although some mistakes (anti-patterns?) are repeated over and over.
    In this presentation, I will show the most important patterns and practices of design for performance that I have learned. Some will be obvious, especially after you hear them. Others may be controversial (for example, sometimes you should optimize prematurely if you want to be able to optimize at all). I may even present some of the anti-patterns, but only for laughs and to make the listeners feel better about their own design mistakes.
    -
    Fedor Pikus, Siemens
    Chief Scientist
    Fedor G Pikus is a Chief Engineering Scientist in the Design to Silicon division of Mentor
    Graphics Corp (Siemens business). His earlier positions included a Senior Software Engineer at Google and a Chief Software Architect for Calibre PERC, LVS, DFM at Mentor Graphics. He joined Mentor Graphics in 1998 when he made a switch from academic research in computational physics to the software industry. Fedor is a recognized expert on high-performance computing and C++, he presented his works at CPPCon, SD West, DesignCon, in Software Development Journal, and is also an O’Reilly author. His responsibilities as a Chief Scientist include planning the long-term technical direction of Calibre products, directing and training the engineers who work on these products, design, and architecture of the software, and research in the new design and software technologies. Fedor has over 25 patents and over 100 papers and conference presentations on physics, EDA, software design, and C++ language.
    -
    Videos Filmed & Edited by Bash Films: www.BashFilms.com
    *-----*
    *--*
    *-----*

Komentáře • 10

  • @user-zp3nd6ht8v
    @user-zp3nd6ht8v Před 4 lety +6

    Amazing talk! This video makes me addicted to this channel.

  • @raphaelkuttruf
    @raphaelkuttruf Před 3 lety +1

    Fedor is the best

  • @Sychonut
    @Sychonut Před 4 lety +2

    Remarkable talk.

  • @harryliang9263
    @harryliang9263 Před 4 lety

    @41:42 is there a small mistake? The `r` is inserted then removed immediately?

  • @GeorgeTsiros
    @GeorgeTsiros Před 5 lety +1

    19:50 instead of profiling why not change cpu or memory clocks?🤔

  • @gunnararndt4359
    @gunnararndt4359 Před 5 lety +2

    I'm not convinced that paralyzing is going to speed up the program...no, kidding, great and helpful presentation.

  • @yokebabjr3866
    @yokebabjr3866 Před 2 lety

    Does anybody as found the source code of this talk?

  • @dat_21
    @dat_21 Před 4 lety +2

    _mm256_dp_ps is very inefficient. Proper dot product based on FMA instructions could run a lot faster.

  • @GeorgeTsiros
    @GeorgeTsiros Před 5 lety

    hahaha "caffeine"