Sun Studio 12 Update 1:OpenMP API 用户指南

7.3 Solaris OS 调优特性

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

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

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

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

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

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