Средства профилирования предоставляют три представления данных, которые отображают графические, табличные и числовые сведения о том, как многопоточное приложение взаимодействует с собой и с другими программами. Представления позволяют быстро определять области, касающиеся проблем, и перемещаться из точек на графических дисплеях для вызовов стеков вызовов, сайтов вызовов и исходного кода. Дополнительные сведения см. в разделе Визуализатор параллелизма.
Трассировка событий
Среда выполнения параллелизма использует трассировку событий для Windows (ETW) для уведомления средств инструментирования, таких как профилировщики, при возникновении различных событий. Эти события включают в себя, когда планировщик активируется или деактивируется, когда начинается контекст, заканчивается, блоки, разблокировки или выдачи, а также когда начинается или заканчивается параллельный алгоритм.
Такие средства, как визуализатор параллелизма, используют эту функцию. Поэтому обычно не нужно работать с этими событиями напрямую. Однако эти события полезны при разработке пользовательского профилировщика или при использовании средств трассировки событий, таких как Набор средств производительности Windows.
Помечает события, связанные с виртуальными процессорами.
2f27805f-1676-4ecc-96fa-7eb09d44302f
Среда выполнения параллелизма определяет, но в настоящее время не вызывает следующие события. Среда выполнения резервирует эти события для дальнейшего использования:
Перечисление параллелизма::ConcRT_EventType указывает возможные операции, отслеживаемые событием. Например, при входе алгоритма parallel_for среда выполнения вызывает PPLParallelForEventGuid событие и предоставляет CONCRT_EVENT_START ее в качестве операции. Перед возвратом алгоритма parallel_for среда выполнения снова вызывает PPLParallelForEventGuid событие и предоставляет CONCRT_EVENT_END ее в качестве операции.
В следующем примере показано, как включить трассировку для вызова parallel_for. Среда выполнения не отслеживает первый вызов parallel_for , так как трассировка не включена. Вызов, позволяющий EnableTracing среде выполнения отслеживать второй вызов parallel_for.
C++
// etw.cpp// compile with: /EHsc #include<ppl.h>usingnamespace concurrency;
intwmain(){
// Perform some parallel work. // Event tracing is disabled at this point.
parallel_for(0, 10000, [](int i) {
// TODO: Perform work.
});
// Enable tracing for a second call to parallel_for.
EnableTracing();
parallel_for(0, 10000, [](int i) {
// TODO: Perform work.
});
DisableTracing();
}
Среда выполнения отслеживает количество вызовов EnableTracing и DisableTracing. Таким образом, если вы вызываете EnableTracing несколько раз, необходимо вызвать DisableTracing одно и то же количество раз, чтобы отключить трассировку.
Azure HPC — это специально разработанная облачная возможность для рабочей нагрузки HPC и ИИ, использующая современные отраслевые процессоры и обмен данными по сети InfiniBand для обеспечения максимальной производительности, масштабируемости и ценности приложений. Azure HPC позволяет реализовывать инновации, повышать продуктивность и развивать гибкость бизнеса за счет высокодоступного набора технологий HPC и ИИ с возможностью их динамического распределения в соответствии с изменением коммерческих и техническ