引导自动并行化

面向英特尔® MIC 架构进行应用的适用性分析

面向英特尔® MIC 架构的编译器方法

引导自动并行化 (GAP)

面向 Linux 的英特尔® Composer XE 套件包含引导自动并行化 (GAP) 工具。该工具支持 Fortran 和 C/C++,旨在帮助编程人员实现矢量化和并行化。该工具为编译器提供的 -vec-report 选项提供了重要补充。GAP 试图以更易于编程人员理解的方式阐释矢量化或并行化障碍。

注:截止到 2012 年 9 月,GAP 工具只支持主机上面向 Linux 的英特尔 Composer XE 2013 编译器,不支持本地 MIC 编译器(使用 -mmic 时)。目的是在主机平台上使用这款工具。然而,给出的建议同样适用于 MIC 编译器的矢量化和并行化。利用主机编译器在您的源文件上使用 GAP,使用任何建议,并在主机上验证这些变化。不论面向 MIC 或是面向主机进行编译,这些改变都能提升应用性能。

概述

GAP 是英特尔® 编译器的一项功能。该工具/功能通过编译器选项家族 -guide (-guide -guide-vec -guide-par 或 -guide-data-trans) 进行调用。当使用这些选项的时候,编译器不编译您的代码。相反,它面向矢量化指南( -guide-vec 选项)、并行化指南 ( -guide-par ) 或二者 ( -guide ) 分析您的代码。同时,GAP 可以针对如何对您的数据结构进行重新排序提出建议,以获得最佳数据存取和性能 ( -guide-data-trans )。

GAP 与 -vec-report 或 -opt-report 的不同之处在于,它旨在帮您克服矢量化或并行化障碍。GAP 针对没有实现矢量化或并行化(通过 -parallel 或 -openmp)的循环嵌套分析您的代码,并提供如何突破障碍方面的建议,以优化该特定循环嵌套。它提供三类指南:

  1. 编译器选项或指令,帮助编译器实现矢量化或并行化

  2. 有助于编译器的代码转换或更改。请注意 GAP 本身不能更改编码,而是由编程人员进行更改。

  3. 能够消除优化障碍的编译器选项。

使用 GAP

如欲了解 GAP 的大致信息,请参阅 “GAP – 引导自动并行化”。

您准备好深入探究了吗?英特尔编译器提供 GAP 教程和示例。教程和示例支持 Fortran 和 C/C++。您的产品文档与编译器安装在相同的根路径下。默认情况下,位于目录 /opt/intel/composerxe/Documentation/en_US。在该目录下,找到您的编译器(Fortran 或 C++)的《入门》文档:

  • Fortran <path to docs>/get_started_lf.htm#tutor

  • C/C++ <path to docs>/get_started_lc.htm#tutor

编译器产品用户和参考指南还包含关于使用 GAP 的文档。使用上述路径和链接,打开《入门》文档。请在此处找到《用户和参考指南》文档。打开该文档。请在内容导航中,转至“主要特性”_->“引导自动并行化”_

同时,也可在线查看编译器文档。请访问:http://software.intel.com

要点

引导自动化 (GAP) 是由英特尔Fortran 和 C++ 编译器提供的一款工具。它为用户提供相关指南,以消除代码中循环嵌套矢量化和/或并行化的障碍。指南包括

  1. 有助于编译器实现矢量化或并行化的编译器选项或指令

  2. 有助于编译器的代码转换或更改。请注意 GAP 本身不能更改编码,而是由编程人员进行更改。

  3. 能够消除优化障碍的编译器选项。

下一步

要在英特尔® 至强融核™ 架构上成功调试您的应用,请务必通读此指南,并点击文中的超链接查看相关内容。本指南提供了实现最佳应用性能所要执行的步骤。

返回矢量化要素

有关编译器优化的更完整信息,请参阅优化通知
附件大小
PDF icon gap.pdf4.82 MB