参考手册:
说明:本系列文章为个人笔记,如有不正确之处,请参考官方相关文档,如果错误发现,我会尽量更新修改。另外,以下内容不保证对于所有版本的编译器都正确,编译器的实现也可能有一些变化之处,具体参考官方文档。
更多说明请参考http://blog.csdn.net/gengshenghong/article/details/7034748中补充说明部分。
(1) 什么是自动并行化
Intel编译器的自动并行化功能可以自动的将串行程序的一部分转换为线程化代码。进行自动向量化主要包括的步骤有,找到有良好的工作共享(worksharing)的候选循环;对循环进行数据流(dataflow)分析,确认并行执行可以得到正确结果;使用OpenMP指令生成线程化代码。
说明:由于是使用OpenMP指令生成线程化代码的,所以,自然适用于多核或多处理器的共享内存系统。
另外,自动并行化分析器会分析循环的数据流,只会给在并行情况下能安全并高效的执行的代码生成多线程代码。
(2)自动并行化的选项
/Qparallel:允许编译器进行自动并行化
/Qpar-reportn:n为0、1、2、3,输出自动并行化的报告
说明:/Qparallel必须在使用O2/3选项下有效,Od/O1下会被忽略。
默认情况下,不会输出自动并行化报告,在命令行下编译,自动并行化报告输出到stdout中。
(3)简单的