Of course there is a cost in making something part of the language, and the C++ way has always been to put features in the library whenever possible.
Regarding choice of implementation, there are more C++ compilers that support OpenMP than rust compilers.
Rayon is basically the "OpenMP of Rust" already.
OpenMP is designed around C-style for loops, which Rust discourages.
FWIW OpenMP supports any C++ random access iterator and c++11 range-for loops. I guess you count any external iterator as C-style loop.
Re:Comparing Parallel Rust and C++
by MauranKilom on Thursday November 07, 2019 @11:41AM
(#21474754)
*newer OpenMP versions. MSVC is stuck on OpenMP 2.0 in which you can't even use unsigned integers as loop variable. No, seriously.
MSVC is hilariously bad and not used in HPC code. Not sure how much high performance game code is compiled with it.
A lot. I don't think OpenMP is used much in games.
Re:Comparing Parallel Rust and C++
by neutronicus on Thursday November 07, 2019 @04:26PM
(#21477469)
Yeah OpenMP is mostly for problems with much less data-dependency than games.
Re:Comparing Parallel Rust and C++
by imtringued on Thursday November 07, 2019 @06:59PM
(#21478767)
Rayon only covers a fraction of OpenMP's features.
An interesting question in this context would be, is there anything preventing adding an OpenMP extension to Rust?