Как известно в С++17 добавили политику выполнения алгоритмов.
Написано, однако в книжке Уильямса, что это не требование, а разрешение.
И возникает естественный вопрос: а оно вообще на многоядерном процессоре параллельно работает ?
Как-то у меня не получается ускорить стандартный последовательный алгоритм — время получается практически то же самое.
И еще вопрос: вот хотелось бы заполнить вектор из 500 000 000 элементов случайными числами параллельно.
generate(std::execution::par, v.begin(), v.end(), gen);
Не возникнет ли здесь UB из-за ГСЧ ?
Например, если
mt19937_64 gen(rd());
ведь внутренность ГСЧ явно не рассчитана на параллельное получение нескольких случайных чисел...
Что думаете ?