使用 -parallel 或(和)-vec 会使我们的程序 运行 更快吗?
Does using -parallel or (and) -vec will make our program run faster?
我正在使用 Linux 和英特尔编译器 (C/C++)。
我的代码不使用 CilkPlus 或 OpenMp。
我阅读了以下文章:
Auto-Parallelization Overview
我很困惑:
- 如果我不使用 OpenMp(或 CilkPlus)并编译我的程序
“-parallel”(自动并行化器)和“-vec”(自动矢量化),程序 运行 会更快吗(因为编译器将串行代码分解为并行代码?)
- 如果是这样(它会 运行 更快),为什么它不是默认选项? (为什么不使用这些标志)?
谢谢
英特尔使用循环展开、任务分解等技术来并行您的代码。这些技术可能会使您的程序 运行 更快,但当程序面临 race condition, deadlock、按优先级完成的任务和...时可能会出现一些问题。因此它不能用作默认值。
我正在使用 Linux 和英特尔编译器 (C/C++)。
我的代码不使用 CilkPlus 或 OpenMp。 我阅读了以下文章: Auto-Parallelization Overview
我很困惑:
- 如果我不使用 OpenMp(或 CilkPlus)并编译我的程序 “-parallel”(自动并行化器)和“-vec”(自动矢量化),程序 运行 会更快吗(因为编译器将串行代码分解为并行代码?)
- 如果是这样(它会 运行 更快),为什么它不是默认选项? (为什么不使用这些标志)?
谢谢
英特尔使用循环展开、任务分解等技术来并行您的代码。这些技术可能会使您的程序 运行 更快,但当程序面临 race condition, deadlock、按优先级完成的任务和...时可能会出现一些问题。因此它不能用作默认值。