Информация об изменениях

Сообщение Параллельные алгоритмы от 10.03.2026 11:08

Изменено 10.03.2026 11:09 LaptevVV

Параллельные алгоритмы
Как известно в С++17 добавили политику выполнения алгоритмов.
Написано, однако в книжке Уильямса, что это не требование, а рекомендация.
И возникает естественный вопрос: а оно вообще на многоядерном параллельно работает ?
Как-то у меня не получается ускорить стандартный последовательный алгоритм — время получается практически то же самое.

И еще вопрос: вот хотелось бы заполнить вектор из 500 000 000 элементов параллельно.
generate(std::execution::par, v.begin(), v.end(), gen);

Не возникнет ли здесь UB из-за ГСЧ ?
Например, если
 mt19937_64 gen(rd());

ведь внутренность ГСЧ явно не рассчитана на параллельное получение нескольких случайных чисел...

Что думаете ?
Параллельные алгоритмы
Как известно в С++17 добавили политику выполнения алгоритмов.
Написано, однако в книжке Уильямса, что это не требование, а разрешение.

И возникает естественный вопрос: а оно вообще на многоядерном процессоре параллельно работает ?
Как-то у меня не получается ускорить стандартный последовательный алгоритм — время получается практически то же самое.

И еще вопрос: вот хотелось бы заполнить вектор из 500 000 000 элементов случайными числами параллельно.
generate(std::execution::par, v.begin(), v.end(), gen);

Не возникнет ли здесь UB из-за ГСЧ ?
Например, если
 mt19937_64 gen(rd());

ведь внутренность ГСЧ явно не рассчитана на параллельное получение нескольких случайных чисел...

Что думаете ?