Производительность и профилирование кода OpenMP C ++ в VS107 - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть критический по производительности фрагмент кода C ++, работающий в Visual Studio 2017, который я профилировал для поиска потенциальных узких мест. Профилировщик на высоком уровне показывает около 80% загрузки ЦП на моих восьми ядрах, выполняющих этот код. Загрузив все символы ядра, профилировщик показывает, что самой загруженной функцией является NTYieldExecution при 52% использовании. NTYieldExecution Я предполагаю, что эти 52% неверны, возможно, 52% одной нити, но даже тогда я бы хотел знать, что происходит под капотом. У меня также есть свой собственный код пула потоков, который приводит к 100% -ной загрузке ЦП в другом коде, поэтому мне интересно, следует ли переместить этот код в альтернативную многопоточную модель. OpenMP очень удобен, но неэффективен ли он в Visual Studio 2017? Что еще более важно, возможно ли изолировать и устранить любую такую ​​неэффективность?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...