JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.2:OpenMP API 用户指南
search filter icon
search icon

文档信息

前言

1.  OpenMP API 简介

2.  编译并运行 OpenMP 程序

3.  实现定义的行为

4.  嵌套并行操作

5.  任务处理

6.  自动确定变量的作用域

7.  作用域检查

8.  性能注意事项

8.1 一般性建议

8.2 伪共享及其避免方法

8.2.1 什么是伪共享

8.2.2 减少伪共享

8.3 Solaris OS 调优特性

A.  子句在指令中的放置

B.  转换为 OpenMP

索引

8.3 Solaris OS 调优特性

从 Solaris 9 发行版开始,操作系统为 SunFire 系统提供了可伸缩性和较高的性能。在 Solaris 9 操作系统中引入了新的特性,这些特性无需进行硬件升级即可提高 OpenMP 程序性能,这些特性包括内存定位优化 (Memory Placement Optimization, MPO) 和多页大小支持 (Multiple Page Size Support , MPSS)。

MPO 使操作系统可以将页面分配到访问这些页面的处理器附近。SunFire E20K 和 SunFire E25K 系统在相同的 UniBoard 内(与不同的 UniBoard 之间相比)有不同的内存延时。称为初次接触的缺省 MPO 策略在包含第一次接触内存的处理器的 UniBoard 上分配内存。对于大部分数据访问是针对每个处理器(处于初次接触定位状态)的局部内存的应用程序,初次接触策略可以显著提高该应用程序的性能。与内存平均分布在系统上的随机内存定位策略相比,此策略即可以降低应用程序的内存延迟,又能提高带宽,从而获得更高的性能。

从 Solaris 9 操作系统发行版开始,系统支持 MPSS 功能,且程序可以利用该功能对虚拟内存的不同区域使用不同的页面大小。缺省 Solaris 页面大小相对较小(在 UltraSPARC 处理器上为 8KB,在 AMD64 Opteron 处理器上为 4KB)。通过使用较大的页面大小,过多发生 TLB 未命中情况的应用程序可以提高性能。

使用 Sun 性能分析器可以测量 TLB 未命中次数。

使用以下 Solaris 操作系统命令可以获取特定平台的缺省页面大小:/usr/bin/pagesize。在此命令中使用 -a 选项可列出所有受支持的页面大小。(有关详细信息,请参见 pagesize(1) 手册页。)

有三种方法可更改应用程序的缺省页面大小: