Инструмент для обнаружения гонки данных?
Вот написал я некий замороченный параллельный код на плюсах и OpenMP. Поскольку там производительность важна, то я хитро извернулся и свел число мьютексов к минимуму - циклы так устроены что разные потоки не должны писать в одни и те же данные или читать данные которые пишет другой поток.
А теперь как мне проверить что это правильно работает?;-)
Ну то есть понятно, что я могу запустить последовательную версию и сравнить ее результаты с параллельной. Но может есть какая то хитрая утилита которая сразу ткнет меня носом - вот тут конфликт между потоками?