简介:
英特尔® 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
Oracle 的 Parallel 并行技术是指在数据库系统中实现并行处理的技术,通过将一个大的任务分解成多个小的任务,并利用多个进程或线程来并发执行这些小任务,从而提高系统的处理速度和效率。 在 Oracle 中,Parallel ...
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及以下版本。亲...