您好,欢迎访问三七文档
SunMicrosystems,Inc.请将有关本文档的意见和建议提交至:用户指南Sun™Studio10文件号码819-1617-102005年1月,修订(版)A请回收版权所有©2005SunMicrosystems,Inc.,4150NetworkCircle,SantaClara,California95054,U.S.A.保留所有权利。美国政府权利-商业软件。政府用户应遵循SunMicrosystems,Inc.的标准许可协议,以及FAR(FederalAcquisitionRegulations,即“联邦政府采购法规”)的适用条款及其补充条款。使用须遵守许可证条款。本发行可包含第三方开发的材料。本产品的某些部分可能是从BerkeleyBSD系统衍生出来的,并获得了加利福尼亚大学的许可。UNIX是由X/OpenCompany,Ltd.在美国和其他国家/地区独家许可的注册商标。Sun、SunMicrosystems、Sun徽标、Java和JavaHelp是SunMicrosystems,Inc.在美国和其他国家/地区的商标或注册商标。所有的SPARC商标均需获得授权才能使用,它们是SPARCInternational,Inc.在美国和其他国家/地区的商标或注册商标。标有SPARC商标的产品均基于由SunMicrosystems,Inc.开发的体系结构。本产品受美国出口管制法律控制,并可能受其他国家/地区的进出口法律的制约。严禁将本产品直接或间接地用于核设施、导弹、生化武器或海上核设施,也不能直接或间接地出口给核设施、导弹、生化武器或海上核设施的昀终用户。严禁出口或转口到美国禁运的国家/地区以及美国禁止出口清单中所包含的实体,包括但不限于被禁止的个人以及特别指定的国家/地区的公民。本文档按“原样”提供,对于所有明示或默示的条件、陈述和担保,包括对适销性、适用性或非侵权性的默示保证,均不承担任何责任,除非此免责声明的适用范围在法律上无效。iii目录开始之前ix印刷约定ixShell提示符x受支持的平台x访问SunStudio软件和手册页xi访问编译器和工具文档xiii访问相关的Solaris文档xv开发人员资源xv与Sun技术支持联系xvSun欢迎您提出意见和建议xvi1.OpenMPAPI概述1–11.1哪里有OpenMP规范1–11.2本章所使用的特殊约定1–11.3指令格式1–21.4条件编译1–31.5PARALLEL——并行区域构造1–41.6工作共享构造1–41.6.1DO和for构造1–51.6.2SECTIONS构造1–6ivOpenMPAPI用户指南•2005年1月1.6.3SINGLE构造1–61.6.4FortranWORKSHARE构造1–71.7合并的并行工作共享构造1–71.7.1PARALLELDO和parallelfor构造1–81.7.2PARALLELSECTIONS构造1–81.7.3PARALLELWORKSHARE构造1–91.8同步构造1–91.8.1MASTER构造1–101.8.2CRITICAL构造1–101.8.3BARRIER构造1–111.8.4ATOMIC构造1–111.8.5FLUSH构造1–121.8.6ORDERED构造1–131.9数据环境指令1–131.9.1THREADPRIVATE指令1–131.10OpenMP指令子句1–141.10.1数据作用域子句1–141.10.2调度子句1–161.10.3NUM_THREADS子句1–181.10.4指令中出现的子句1–181.11OpenMP运行时库例程1–191.11.1FortranOpenMP例程1–191.11.2C/C++OpenMP例程1–201.11.3运行时线程管理例程1–201.11.4管理同步锁定的例程1–231.11.5计时例程1–262.嵌套并行操作2–12.1执行模型2–1目录v2.2控制嵌套并行操作2–12.2.1OMP_NESTED2–22.2.2SUNW_MP_MAX_POOL_THREADS2–32.2.3SUNW_MP_MAX_NESTED_LEVELS2–42.3在嵌套并行区域中使用OpenMP库函数2–72.4有关使用嵌套并行操作的一些提示2–103.Fortran中的自动作用域3–13.1自动作用域数据范围子句3–13.1.1__AUTO子句3–13.1.2DEFAULT(__AUTO)子句3–23.2作用域规则3–23.2.1标量变量的作用域规则3–23.2.2数组的作用域规则3–23.3关于自动作用域的通用注释3–33.4检查自动作用域的结果3–33.5当前实现的已知限制3–74.实现定义的行为4–15.OpenMP编译5–15.1要使用的编译器选项5–15.2Fortran95OpenMP验证5–35.3OpenMP环境变量5–55.4处理器绑定5–75.5栈和栈大小5–86.转换为OpenMP6–16.1转换传统Fortran指令6–16.1.1转换Sun风格的Fortran指令6–1viOpenMPAPI用户指南•2005年1月6.1.2转换Cray风格的Fortran指令6–36.2转换传统CPragma6–46.2.1传统CPragma与OpenMP间的问题6–57.性能注意事项7–17.1一般性建议7–17.2伪共享及其避免方法7–47.2.1何为伪共享?7–47.2.2减少伪共享7–47.3操作系统调节功能7–5索引索引–1vii表表1-1Pragma及可以出现的子句1–18表5-1OpenMP环境变量5–5表5-2多重处理环境变量5–6表6-1将Sun并行化指令转换为OpenMP6–1表6-2DOALL限定符子句和等效的OpenMP子句6–2表6-3SCHEDTYPE调度和等效的OpenMPschedule6-2表6-4Cray风格的DOALL限定符子句的等效OpenMP子句6–3表6-5将传统C并行化Pragma转换为OpenMP6–4表6-6taskloop可选子句和等效的OpenMP子句6–4表6-7SCHEDTYPE调度和等效的OpenMPschedule6-5viiiOpenMPAPI用户指南•2005年1月ix开始之前《OpenMPAPI用户指南》概述了用于生成多重处理应用程序的OpenMPFortran95、C和C++应用程序接口(API)。Sun™Studio编译器支持OpenMPAPI。本指南专供科学工作者、工程技术人员以及具有Fortran、C或C++语言及OpenMP并行编程模型的应用知识的程序员使用。通常,还假定他们熟悉Solaris™操作环境或UNIX®。印刷约定表P-1字体约定字体含义示例AaBbCc123命令、文件和目录的名称;计算机屏幕输出编辑您的.login文件。使用ls-a列出所有文件。%Youhavemail.AaBbCc123输入的内容,以便与计算机屏幕输出相区别%suPassword:AaBbCc123书名、新词或术语以及要强调的词请阅读《用户指南》的第6章。这些称作类选项。您必须是超级用户才能执行此操作。AaBbCc123命令行占位符文本;用实际名称或值替换要删除文件,请键入rmfilename。xOpenMPAPI用户指南•2005年1月Shell提示符受支持的平台此SunStudio发行版本支持使用如下SPARC®和x86系列处理器架构的系统:UltraSPARC®、ARC64、AMD64、Pentium和XeonEM64T。可从以下位置获得硬件兼容性列表,在列表中可以查看您正在使用的Solaris操作系统版本所支持的系统:。这些文档中给出了平台类型间所有实现的区别。在本文档中,术语“x86”指采用兼容AMD64或IntelXeon/Pentium产品系列处理器的64位和32位系统。有关受支持的系统,请参阅硬件兼容性列表。表P-2代码约定代码符号含义表示法代码示例[]括号包含可选参数。O[n]-O4,-O{}大括号包含所需选项的选项集合。d{y|n}-dy|分隔变量的“|”或“-”符号,只能选择其一。B{dynamic|static}-Bstatic:与逗号一样,冒号有时可用于分隔参数。Rdir[:dir]-R/local/libs:/U/a…省略号表示一系列省略。-xinline=f1[,…fn]-xinline=alpha,dosShell提示符Cshellmachine-name%Cshell超级用户machine-name#Bourneshell和Kornshell$Bourneshell和Kornshell的超级用户#开始之前xi访问SunStudio软件和手册页编译器和工具以及它们的手册页并没有安装到标准的/usr/bin/和/usr/share/man目录中。要访问编译器和工具,必须正确设置PATH环境变量(请参阅第xi页“访问编译器和工具”)。要访问手册页,必须正确设置MANPATH环境变量(请参阅第xii页“访问手册页”)。关于PATH变量的更多信息,请参阅csh(1)、sh(1)和ksh(1)手册页。关于MANPATH变量的更多信息,请参阅man(1)手册页。关于设置PATH变量和MANPATH变量以访问此发行版本的更多信息,请参阅安装指南或询问系统管理员。注–本节中的信息假设SunONEStudio编译器和工具安装在/opt目录中。如果软件没有安装在/opt目录中,请询问系统管理员以获取系统中的等效路径。访问编译器和工具使用下列步骤来决定是否需要更改PATH变量以访问编译器和工具。决定是否需要设置PATH环境变量1.通过在命令提示符后输入下列内容以显示PATH变量的当前值。2.查看输出中是否有包含/opt/SUNWspro/bin/的路径字符串。如果找到该路径,您的PATH变量已经设置好,可以访问编译器和工具了。如果没有找到该路径,按照下一步中的说明来设置PATH环境变量。设置PATH环境变量以访问编译器和工具1.如果使用的是Cshell,请编辑起始.cshrc文件。如果使用的是Bourneshell或Kornshel,请编辑起始.profile文件。2.将下列内容添加到PATH环境变量。如果已安装ForteDeveloper软件、SunONEStudio软件或SunStudio软件的其他发行版本,则将以下路径添加到这些安装的路径之前。/opt/SUNWspro/bin%echo$PATHxiiOpenMPAPI用户指南2005年1月访问手册页使用下列步骤来决定是否需要更改MANPATH变量以访问手册页。决定是否需要设置MANPATH环境变量1.通过在命令提示符后输入下列内容以请求dbx手册页。2.如果有输出的话,请查看输出。如果dbx(1)手册页无法找到或者显示的手册页不是用于安装软件的当前版本,请按照下一步中的说明来设置MANPATH环境变量。设置MANPATH环境变量以访问手册页1.如果使用的是Cshell,请编辑起始.cshrc文件。如果使用的是Bourneshell或Kornshel,请编辑起始.profile文件。2.将下列内容添加到MANPATH环境变量。/opt/SUNWspro/man访问集成开发环境SunStudio集成开发环境(IDE)提供了创建、编辑、生成、调试和分析C、C++或Fortran应用程序性能的模块。启动IDE的命令是sunstudio。有关该命令的详细信息,请参阅sunstudio(1)手册页。IDE是否能够正确操作取决于IDE能否找到核心平台。sunstudio命令查找两个位置的核心平台:■该命令首先在缺省安装目录/opt/netbeans/3.5V中查找。■如果该命令在缺省目录未找到核心平台,则它将假设包含IDE的目录和包含核心平台的目录均安装在同一
本文标题:openmp手册
链接地址:https://www.777doc.com/doc-5401054 .html