Skip to content

Making your program faster - multithreading and automatic compiler vectorization

Photo of Dušan Jovanović
Hosted By
Dušan J.
Making your program faster - multithreading and automatic compiler vectorization

Details

The idea of this session is to teach you in 90 minutes how to make your program faster, through multithreading and compiler autovectorization.
In the first part, we introduce the basics of multithreaded programming in C++ with OpenMP. OpenMP is a multithreaded programming standard that exists for many years and supported by all compilers - this is your opportunity to quickly learn its basics.
But multithreading is not worth much if the program is not efficient to begin with. Therefore, we investigate the performance of single threaded programs with particular focus on compiler's autovectorization.
In the second part, we explain what are vector instructions, and explain the process of autovectorization, when the compiler emits vector instructions to make your loop faster.
The main focus of this part are vectorization inhibitors: parts of your C++ code that prevent automatic compiler vectorization. We give examples of unvectorized loops, we examine CLANG's vectorization report and we give solutions that will make codes several times faster with minimal modification.

Speaker: Ivica Bogosavljević

Date and time: 23rd of April (Wednesday), 6 pm
Location: Beograđanka, Vidikovac, 22nd floor
Address: Masarikova 5

See you!

Photo of Serbian C++ User Group group
Serbian C++ User Group
See more events
Palata "Beograd" ("Beograđanka")
Masarikova 5 · Beograd