JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.3:OpenMP API 用户指南     Oracle Solaris Studio 12.3 Information Library (简体中文)
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 Oracle Solaris OS 调优特性

A.  子句在指令中的放置

索引

8.3 Oracle Solaris OS 调优特性

Oracle Solaris 支持无需进行硬件升级即可提高 OpenMP 程序性能的特性,其中包括内存定位优化 (Memory Placement Optimization, MPO) 和多页大小支持 (Multiple Page Size Support, MPSS) 等。

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

通过 MPSS 功能,程序可以对虚拟内存的不同区域使用不同的页面大小。缺省 Oracle Solaris 页面大小相对较小(在 UltraSPARC 处理器上为 8 KB,在 AMD64 Opteron 处理器上为 4 KB)。通过使用较大的页面大小,过多发生 TLB 未命中情况的应用程序可以提高性能。

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

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

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