Что означают затраты времени на параллелизм потоков в выходных данных профилировщика?

I ' Буду очень признателен, если кто-то с хорошим опытом работы с Intel VTune Amplifier расскажет мне об этом.

Недавно я получил отчет об анализе производительности от других парней, которые использовали Intel VTune Amplifier против моей программы. Он сообщает, что существует высокое время накладных расходов в области параллелизма потоков.

Что означает время накладных расходов ? Они не знают (спросили меня), у меня нет доступа к Intel VTune Amplifier.

У меня смутные идеи. Эта программа имеет много вызовов спящего режима потока, потому что условие pthread нестабильно (или я сделал это плохо) на целевой платформе, поэтому я меняю многие подпрограммы, чтобы работать в цикле, как показано ниже: http://software.intel.com/sites/products/documentation/hpc/amplifierxe/en-us/win/ug_docs/olh/common/overhead_time.html#overhead_time

Выдержка:

Накладные расходы - это продолжительность, которая начинается с освобождения общего ресурса и заканчивается получением этого ресурса. В идеале продолжительность служебного времени должна быть очень короткой, поскольку она сокращает время, в течение которого поток должен ожидать получения ресурса. Однако не все время процессора в параллельном приложении может быть потрачено на выполнение реальной полезной нагрузки. В случаях, когда среда параллельного выполнения (Intel® Threading Building Blocks, OpenMP *) используется неэффективно, значительная часть времени может тратиться внутри среды параллельного выполнения, тратя время ЦП при высоких уровнях параллелизма. Например, это может быть результатом низкой детализации разделения работы в рекурсивных параллельных алгоритмах: когда размер рабочей нагрузки становится слишком низким, накладные расходы на разделение работы и выполнение служебных задач становятся значительными.

Все еще сбивает с толку .. Может ли это означать «вы сделали ненужную / слишком частую блокировку»?

8
задан 9dan 9 February 2011 в 11:41
поделиться