为了在程序中启用数据争用检测,必须首先使用特殊的编译器选项编译源文件。对 C、C++ 和 Fortran 语言来说,此特殊选项是:-xinstrument=datarace
将 -xinstrument=datarace 编译器选项添加到现有的用来编译程序的一组选项。只能将该选项应用于您怀疑有数据争用的源文件。
确保在编译程序时指定 -g。为检测争用而编译程序时,不要指定高优化级别。使用 -xopenmp=noopt 编译 OpenMP 程序。使用高优化级别时,报告的信息(如行号和调用栈)可能是不正确的。
以下是对源代码进行校验的示例命令:
cc -xinstrument=datarace -g -mt pthr_prime.c
cc -xinstrument=datarace -g -xopenmp=noopt omp_prime.c