What are your thoughts about support of OpenMP for Linux.
What comes into my mind is:
- Multithreading, as ArduPilot stresses one core already a lot
I initially, I wanted to push some of this stuff into AP_Math, but there was a strong opposition, which I partially understand.
However, there are other parts in the library which may also profit from OpenMP.
The clear benefit would that the execution time of a function decreases, so that the chance that the scheduler misses a function gets minimized.
I think if the RPi has already several cores, it would be nice if the user could decide how processing time is distributed.
Disadvantage would be dependent on the function a small overhead and maybe slightly increased complexity of the code.
I don’t know OpenMP very much (juste look at it after reading you post and try some example).
I don’t know if we will have much gain at using it, as far as I remember it only take between 20-40% of beaglebone black single CPU. So we are far from overload a cpu.
Just thinking now, that it could be beneficial for optical flow or avoidance system by setting better RT constraint…
About your AP_Math, I was in favor (even if I am not in the dev team) …but you know, in opensource, most job part is to convice other that your changes are beneficials ! I hope to push more beneficials c++11/17/etc. too
An hard work could be to finish Test and Performance frameworks, in that way, it should be easier to point out improvements to all !
Developpement section lacks of answer generally… don’t forget to say about it in gitter channel to trigger more attention !