简介:
英特尔® Parallel Inspector 能够分析二进制代码来查找线程错误。然而,在编译程序时使用适当的编译器设置可使分析更加容易。
基于本文主旨,下文提及英特尔® Parallel Inspector 时,即指英特尔® Parallel Inspector 中的线程错误分析。
对英特尔 Parallel Inspector 有用的编译器设置:
编译选项
|
目的
|
/Zi, /ZI (极力推荐)
|
英特尔 Parallel Inspector 使用编译中产生的符号将地址与源代码行关联起来。
对于线程错误分析,使用此设置将减少误报的发生。
|
/Od (推荐用于初步分析)
|
使英特尔 Parallel Inspector更轻松地将错误与相应源代码行关联起来。
英特尔 Parallel Inspector 还可分析优化的二进制代码,但由于优化的汇编程序没有具体的源代码行,因此英特尔 Parallel Inspector 难以精确定位其中造成问题的源代码。并且,优化的编译倾向于将变量保存在寄存器中,以避免出现数据竞争。
注意:虽然对使用 /Od 编译的二进制代码进行分析比较简单,但检查 "released"(非 /Od)版本二进制代码的线程错误也同样重要。
|
/MD or /MDd
(推荐)
|
使用此设置将减少误报。
|
基于使用英特尔编译器编译的 OpenMP* 应用程序,英特尔 Parallel Inspector 所需的编译器设置:
编译选项
|
目的
|
/Qopenmp
(极力推荐)
|
如果没有设置这个选项,英特尔 Parallel Inspector 将找不到与OpenMP* pragma 指令相关联的线程中可能存在的数据竞争或死锁。
|
/Qopenmp-link:dynamic
(推荐)
|
在英特尔® 编译器 11.0 和英特尔® Composer 中,此设置选择 OpenMP* 运行库的动态链接版本,该版本已经为Parallel Inspector插入了相应的调试代码。
使用英特尔编译器 11.0 或英特尔 Parallel Composer 时,此项为默认设置。
|
|
|
基于使用英特尔® 线程构建模块 (TBB) 的应用程序,英特尔 Parallel Inspector 所需的编译器设置:
编译选项
|
目的
|
/D "TBB_USE_THREADING_TOOLS" (极力推荐)
|
如果没有此设置,英特尔 Parallel Inspector 将在英特尔® TBB 中识别误报。注意:如果使用 /Od 进行编译,此项将被自动设置。
|
在英特尔 Parallel Inspector 中使用线程错误分析时不推荐设置的编译器选项:
编译选项
|
目的
|
/Qtcheck (请勿使用)
|
此设置可用来替代英特尔® 线程检查器的调试代码插入。英特尔 Parallel Inspector 并不使用此编译选项。
|
/Qopenmp-link:static
(请勿使用)
|
此设置将英特尔® OpenMP* 库的静态版链接进您的代码中。此静态库不包含避免误报所需的调试代码。
|
/Qtprofile
(请勿使用)
|
此设置可用来替代英特尔® 线程档案器的调试代码插入。英特尔 Parallel Inspector 并不使用此编译选项。
|
/Qopenmp_stubs
(请勿使用)
|
此设置将阻止 OpenMP* 代码实际并行化。
|
/debug:parallel
(请勿使用)
|
此设置为英特尔 Parallel Composer 启用英特尔® Parallel Debugger Extension。它并不用于英特尔 Parallel Inspector。
|
对英特尔 Parallel Inspector 线程错误分析没有影响的编译器设置:
编译选项
|
目的
|
/FIXED:NO
|
此设置对英特尔 Parallel Inspector 而言不是必需的。它是一个连接器选项,在英特尔线程检查器、英特尔线程档案器以及英特尔 VTuneTM 性能分析器调用关系图中,所进行的调试代码插入需要用到它。
|
注意: 英特尔 Parallel Inspector与下列库的动态版本协同工作效果更佳:
•· OpenMP* 运行时库(libiomp5.dll 或 libguide.dll)
•· C 运行时库(msvcr90.dll、msvcr80.dll、msvcr90d.dll 或 msvcr80d.dll)
如果与以下库连接,英特尔 Parallel Inspector 将会报告错误信息:
•· OpenMP* 运行时库 (libiomp5mt.lib、libguide.lib、vcomp.lib/vcomp.dll)
•· C 运行时库 (libcmt.lib)
更多信息:
本文介绍了开发人员最关心的常见编译选项。他们大部分都可用于英特尔 Parallel Inspector,但并未对所有选项组合进行测试。如果您有关于其他选项的信息,或对某个特定选项有疑问,请登录 Intel® Parallel Studio 论坛提交您的信息或问题。
版本:
英特尔® Parallel Inspector
英特尔® Parallel Composer
英特尔® C++ 编译器11.0 Windows* 版
英特尔® C++ 编译器 10.1 Windows* 版
Microsoft* Visual Studio 2005
Microsoft* Visual Studio 2008
分享到:
相关推荐
英特尔® Parallel Inspector 能够分析二进制代码来查找线程错误。然而,在编译程序时使用适当的编译器设置可使分析更加容易。基于本文主旨,下文提及英特尔® Parallel Inspector 时,即指英特尔® Parallel ...
英特尔® Parallel Amplifier 能够分析二进制代码。然而,如果在编译您的程序时,能正确和适当的设置编译器选项可以使分析更容易。
英特尔® Parallel Amplifier 的三种分析类型旨在让您以不同角度深入了解程序性能。每个层面的分析都收集了相应的信息。具体说明如下。
如果您的典型开发模式是签出某版本代码,修改现有代码或添加新代码,然后签入代码,那么英特尔® Parallel Amplifier的求差功能可以跟踪所有因这些更改而造成的性能下降。英特尔® Parallel Amplifier 能够显示函数...
英特尔® Parallel Composer 软件开发产品能够帮助您进行并行编程。您可使用 Microsoft Visual Studio* 集成开发环境(IDE)在 Windows* 操作系统上基于IA-32和Intel®64架构建立和优化 C/C++ 源代码。
英特尔® Parallel Studio XE 为 C/C++ 和 Fortran 开发人员提供了具有一流性能的编译器和库、正确的并行编程模型以及补充和兼容的分析工具。它可以无缝地插入到 Visual Studio* 和 GNU 工具链中,从而在保持工作...
Intel® Parallel Studio XE Cluster Edition for Windows or linux* 2018最新版许可key破解文件
采用工程理论、工具详解和实际安全分析相结合的方式,全面介绍英特尔Parallel Studio工具集的使用
英特尔Parallel Studio xe并行编程, 作者Stephen Blair-Chappell, Andrew Stokes
Parallel.ForEach读取经常卡死,大家可以参考代码如何解决。
Parallel Programming with .NET 4 Samples
Parallel_portion Parallel_portion Parallel_portion
1)在Jmeter的线程组下面的逻辑控制器,选择bzm并行控制器; 2)把浏览器或者wireShark观察到的同一批次的并发HTTP请求,放到同一个并行控制器。 3)执行Jmeter,就可以得到与浏览器相类似的并发效果。
Intel+Parallel+Studio优化程序性能实例分析
matlab并行处理技术Parallel 使用方法 PART 1 - Parallel Computing Toolbox - Task Parallelization - Data Parallelization - Batch mode - Interactive with pmode PART 2 - Configure MATLAB and PCT on ...
•Intel® Parallel Studio XE 2015 Update 5 Professional Edition 的license,当然也适用于2015Professional各个版本。
Intel® Parallel Studio XE 工具套件实现设计、开发、调试的简化以及代码的优化,利用并行处理来提高应用程序的性能。利用兼容的Intel®处理器和协同处理器可以更轻易地提高应用程序性能。兼容VS2013及以下版本。亲...
Starting with the basics of parallel programming, you will proceed to learn about how to build parallel algorithms and their implementation. You will then gain the expertise to evaluate problem ...