使用-parallel或(和)-vec会使我们的程序运行得更快吗?

时间:2015-07-11 06:00:52

标签: c++ c parallel-processing intel

我正在使用Linux&英特尔编译器(C / C ++)。

我的代码不使用CilkPlus或OpenMp。 我读了以下文章: Auto-Parallelization Overview

我很困惑:

  1. 如果我没有使用OpenMp(或CilkPlus)并编译我的程序 " -parallel" (自动并行化器)和" -vec" (自动矢量化),程序运行得更快(因为编译器将串行代码分解为并行代码?)
  2. 如果是这样(它运行得更快),为什么它不是默认选项? (为什么不使用这些标志)?
  3. 由于

1 个答案:

答案 0 :(得分:1)

英特尔使用循环展开,任务分解等技术。等你的代码并行。这些技术可能会使您的程序运行得更快,但是当程序面临race conditiondeadlock,按优先级完成的任务时......可能会出现一些问题。所以它不能用作默认值。