使用 OpenMP* 实现并行化

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

文档

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

使用 OpenMP* 实现并行化

本章节介绍了面向 Linux 的英特尔® Composer XE 套件对 OpenMP* 3.1. 的支持情况。

概述

面向 Linux 的英特尔® Composer XE 2013 套件支持 OpenMP* 3.1 API 规范。OpenMP 是众多对应用进行并行处理的方法之一(如果尚未使用 OpenMP)。OpenMP 是面向共享内存多处理器的一种常用的线程并行编程语言。如欲获得面向 OpenMP 的完整语言规范,请参见 OpenMP 网站 (http://www.openmp.org, 点击规范链接) 的 OpenMP 应用编程接口 3.1 版本规范。本文档在描述 OpenMP 语言特点时,将经常用到该规范中定义的术语。

OpenMP 为对称多处理 (SMP) 提供以下主要特性:

  • 使用户不必处理迭代分区、数据共享、线程创建、调度和同步的低级别细节问题。

  • 为所有所支持的英特尔架构上的共享内存多处理器和多内核处理器系统提供性能优势,包括支持英特尔® 超线程技术的处理器(英特尔® HT 技术)。

编译器根据开发人员放入源程序的 OpenMP 指令进行转换以生成多线程代码,从而轻松将线程添加到当前软件。英特尔编译器支持当前所有行业标准 OpenMP 指令,并编译 OpenMP 指令说明的并行程序。

在英特尔编译器上使用 OpenMP

英特尔编译器带有一系列 OpenMP 样本、OpenMP 使用文档,以及语言和库运行时细节。我们的文档用于向 OpenMP 新用户介绍如何使用 OpenMP。如欲获得 OpenMP 的使用信息,请登录 OpenMP 网站 (http://www.openmp.org),参阅关于该技术的文章,或查找基于 web 的教程。我们提供了面向 C++ 和 Fortran 编译器的样本,帮您快速入门。样本与您的编译器在同一根路径下。默认情况下,编译器的根路径目录为 /opt/intel/composerxe/Samples/en_US/[C++ | Fortran]。

编译器产品用户和参考指南也包含关于使用 OpenMP 的文档。使用以下路径和链接,打开《入门》文档:

找到您的编译器(Fortran 或 C++)的《入门》文档,这些链接假定您的编译器安装在该机器运行浏览器的默认位置上。

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

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

默认情况下,<path to docs> 位于 /opt/intel/composerxe/Documentation/en_US 目录下。

如果您的浏览器由于某种原因无法访问该目录,您还可以在线查找该信息。请访问

请在此处找到《用户和参考指南》文档。打开文档。请在内容导航中,转至“主要特性”->“OpenMP 支持”。本章介绍了如何在英特尔编译器中使用 OpenMP。请特别注意以下章节,"OpenMP 支持" - "OpenMP 库支持" - "线程相似性接口 (Linux* 和 Windows*)"。了解如何使用 KMP_AFFINITY 来控制线程相似性。我们将在《OpenMP 相似性》章节中通过对英特尔® 至强融核™协处理器上的具体应用性能进一步探讨这一点。

编译器《用户和参考指南》包含关于英特尔® 至强™ 处理器或英特尔® 至强融核™ 协处理器应用的通用信息。如欲了解独特的使用信息和英特尔® 至强融核™ 协处理器上的性能,请阅读本指南中其余的子章节:《OpenMP 相似性》、《OpenMP 调度》和《OpenMP 崩溃相关的 BKMS》。高效并行化概述章节提供了这些子章节的链接(请见下文中的“下一步”)。

要点

面向 Linux 的英特尔® Composer XE 2013 套件支持 OpenMP* 3.1 API 规范。上文列出的产品文档介绍了如何使用英特尔编译器运行 OpenMP 应用的信息。 关于 OpenMP 的通用信息可通过以下网址在线访问:(http://www.openmp.org)。熟悉编译器选项 -openmp 以及与OpenMP 相关的环境变量。在本章结束时,请确保您能够使用英特尔编译器在您的主机平台上构建并运行 OpenMP 应用,如示例。您应该练习使用 OMP_NUM_THREADS 来控制线程数量。在进行下一步之前,请确保您已掌握线程相似性概念以及环境变量 KMP_AFFINITY 的用法。

下一步

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

返回“高效并行化”章节

Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.