Overview
Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Learn to significantly improve C++ program performance through multithreading and compiler autovectorization techniques in this comprehensive 90-minute conference talk from C++Now 2025. Begin with the fundamentals of multithreaded programming using OpenMP, a well-established standard supported by all major compilers that enables quick implementation of parallel processing. Explore the basics of OpenMP syntax and discover how to effectively distribute computational work across multiple threads to achieve substantial performance gains.
Dive deep into single-threaded program optimization with a particular emphasis on compiler autovectorization capabilities. Understand what vector instructions are and how modern compilers automatically generate vectorized code to accelerate loop execution. Examine the autovectorization process in detail, learning how compilers analyze code patterns and emit SIMD instructions to process multiple data elements simultaneously.
Focus extensively on vectorization inhibitors - specific C++ code patterns that prevent automatic compiler vectorization and limit performance potential. Analyze real examples of unvectorized loops and learn to interpret CLANG's vectorization reports to identify optimization opportunities. Discover practical solutions and code modifications that can deliver several-fold performance improvements with minimal changes to existing codebases.
Master the relationship between multithreading and vectorization, understanding how these complementary techniques work together to maximize program efficiency. Gain insights into hardware utilization strategies and learn to write C++ code that better exploits underlying processor capabilities. Develop skills to systematically identify performance bottlenecks and apply appropriate optimization techniques based on specific code characteristics and computational requirements.
Syllabus
Making A Program Faster - Multithreading & Automatic Compiler Vectorization - Ivica Bogosavljevic
Taught by
CppNow