#fortran #benchmarking #thread-sanitizer
Вопрос:
Я пытаюсь установить и научиться использовать DataRaceBench 1.3.2
набор тестов, предназначенный для систематической и количественной оценки эффективности инструментов обнаружения гонки данных, как показано здесь.Введите описание ссылки здесь. У меня есть код, называемый poisson_openmp.f90
кодом Фортрана, который вычисляет приближенное решение уравнения Пуассона в прямоугольнике и предназначен в качестве отправной точки для создания параллельной версии.
Чтобы установить его, я перешел по этой ссылке: https://github.com/LLNL/dataracebench/blob/master/user_guide.md
Итак, я установил ThreadSanitizer, Archer, ROMP и сканер Coderrect.
Теперь я должен:
Дважды проверьте расположение файла и добавленный путь для правильной настройки переменных среды. Чтобы запустить DRB, используйте: ./check-data-race.sh --toolname language
( ./check-data-race.sh --romp fortran
)
Используйте ниже, чтобы просмотреть все возможные варианты:
#show more helpful information for this script
./check-data-races.sh --help
Мы даже можем запускать частичные тестовые программы, используя этот --customize
флаг. В файле следует указать тестовые программы для запуска list.def
и инструменты для тестирования tool.def
. В остальном все шаги остаются прежними, и на них можно ссылаться из приведенного выше --help
варианта.
Я не понимаю, как я должен адаптировать все это к своему коду и как его протестировать. Я не понимаю, что это за вещи, которые я установил. Я не знаю, что такое контейнер. Я также не знаю, как использовать DataRaceBench 1.3.2
для оценки моего кода. Я клонировал мерзавца, у меня есть папка, но я игнорирую, что делать дальше, особенно с файлом check-data-races.sh.
У меня нет точного вопроса, но мне нужны некоторые разъяснения по этому поводу.
Ответ №1:
Это программное обеспечение не предназначено для проверки вашего кода.
Вместо этого это тест, который проверяет, как другие инструменты (которые вы могли бы использовать для проверки вашего кода OpenMP) могут находить проблемы. Программное обеспечение поставляется с различными программами, которые содержат известные проблемы, и программное обеспечение DataRaceBench проверяет, могут ли проверяемые инструменты находить или не находить эти известные проблемы.
Комментарии:
1. Итак, если я правильно понимаю, программы, о которых вы говорите, — это Archer, ROMP, ThreadSanitizer и сканер Coderrect? Но где я могу найти известные проблемы, о которых вы говорите? У вас есть простая и интересная документация по понятию бенчмарка ? так как я впервые слышу об этом.
2. @hakim DataRaceBench используется для тестирования Archer, ROMP, ThreadSanitizer,… Известные проблемы включены в DataRaceBench github.com/LLNL/dataracebench/tree/master/… Бенчмаркинг в целом-это очень широкое понятие, см. en.wikipedia.org/wiki/Benchmark_(вычисления) здесь он проверяет производительность с точки зрения возможности находить проблемы в различных кодах.