Мы перевели пост из блога Microsoft, в котором разработчик рассказывает, как пользоваться параллельными алгоритмами, поддержка которых появилась в стандартной библиотеке C++17.
Как использовать параллельные алгоритмы
Чтобы использовать библиотеку параллельных алгоритмов, следуйте данным шагам:
- Найдите вызов алгоритма, который вы хотите оптимизировать с помощью распараллеливания. На эту роль хорошо подходят алгоритмы, которые делают больше чем O(n) работы, например, сортировка, и занимают значительное количество времени при профилировании приложения.
- Убедитесь, что код, используемый в алгоритме, безопасен для распараллеливания.
- Выберите политику параллельного исполнения (они будут описаны ниже).
- Если вы ещё этого не сделали, добавьте строку
#include <execution> , чтобы сделать доступными политики параллельного исполнения.
- Добавьте одну из политик в качестве первого параметра вызова алгоритма для распараллеливания.
- Протестируйте результат, чтобы убедиться, что новая версия работает лучше. Распараллеливание не всегда работает быстрее, особенно когда используются итераторы непроизвольного доступа, когда набор входных данных мал или когда дополнительное распараллеливание создаёт конфликт внешних ресурсов вроде диска.
|