Я работаю над преобразованием существующей программы, чтобы использовать некоторые параллельные функции STL.
В частности, я переписал большой цикл для работы с std :: накоплением. Это работает, приятно.
Теперь я хочу, чтобы эта операция накопления выполнялась параллельно.
Документация, которую я видел для GCC, описывает два конкретных шага.
- Включить флаг компилятора
-D_GLIBCXX_PARALLEL
- Возможно добавить заголовок
<parallel/algorithm>
Добавление флага компилятора, похоже, ничего не меняет. Время выполнения одинаково, и я не вижу признаков использования нескольких ядер при мониторинге системы.
При добавлении заголовка параллельного / алгоритма появляется ошибка. Я думал, что это будет включено в последнюю версию GCC (4.7).
Итак, несколько вопросов:
- Есть ли какой-то способ окончательно определить, работает ли код параллельно?
- Есть ли "лучшие практики" способ сделать это на OS X? (Идеальные флаги компилятора, заголовок и т. Д.?)
Любые предложения приветствуются.
Спасибо!