A great software program does much, much more than just execute routines. It also optimizes the use of CPU resources and memory, avoids unnecessary computation, and makes use of concurrency and multithreading for maximum performance and efficiency. Of course, that doesn’t just happen—software engineers must understand which techniques to use when, as well as what and how to measure to ensure they achieve their design goals.
In his latest book, The Art of Writing Efficient Programs: An advanced programmer’s guide to efficient hardware utilization and compiler optimizations using C++ examples, Fedor Pikus, a chief engineering scientist for the Calibre Design Solutions group at Siemens Digital Industries Software, discusses all the major aspects of writing efficient, high-performance code, beginning with how your initial design decisions impact the performance you can achieve.
From there, he covers critical design and coding components, such as:
- How to use hardware computing resources effectively
- Understanding the relationship between memory order and memory barriers
- Performance implications of different data structures and organizations
- Performance impact of concurrent memory access (and how to minimize it)
- When to use (and not use) lock-free programming techniques
- Different options for improving the effectiveness of compiler optimizations
- Designing APIs for concurrent and high-performance data structures to avoid inefficiencies
If you work on performance-critical programs, this book provides an in-depth explanation of multiple strategies you can apply to improve the performance of your code, along with their tradeoffs and costs, to enable you to make the best decisions for your needs and requirements. While intended primarily for experienced developers and programmers, all programmers working in algorithmic trading, gaming, bioinformatics, computational genomics, or computational fluid dynamics can benefit from the techniques presented. And, although the book uses the C++ language, all of the concepts can be easily applied to other compiled languages, such as C, Java, Rust, Go, and more.
Interested? You can acquire your own copy of this Amazon #1 new release in the C++ programming category here. There’s even a Kindle option! Talented, dedicated people like Fedor are who make the Calibre toolsuite the leading verification solution in the EDA industry. We’re proud to acknowledge his accomplishment, and to have the opportunity to work with him at Siemens EDA!