Parallellism
Parallellism is not only a difficult word to spell properly, but writing code aimed at safe and efficient parallell execution can also be a daunting task. ROOT6 however allows you to write code that is fit for parallell execution without having to worry about low level concepts of parallellism.
In this module, we will take the following approach
- First, we take a look at concepts of multi-threading and multi-processing
- After this, you will write a small, bare C++ program using multi-threading without using ROOT
- We will look at the difficulties and pitfalls of writing parallell code
- As the last part of this module, we will show and explain various tools that ROOT6 provides for us to parallallize out analyses.
At the end of the module, you will understand the global concept of multi-threading and multi-processing, and you are familiar with putting this into practice with ROOT. Vectorization, a special type of parallellization, is covered in a dedicated module.