Oracle® Solaris Studio 12.4:数值计算指南

退出打印视图

更新时间: 2015 年 1 月
 
 

5.1 支持的操作系统、硬件和内存模型

Oracle Solaris Studio 12.4 支持 Oracle Solaris 10 Update 10 及更高版本和 Oracle Solaris 11,并支持 Oracle 和 Red Hat Enterprise Linux 发行版 5 和 6。

Oracle Solaris Studio 支持的硬件与对应的 Oracle Solaris 发行版相同。对于 SPARC,Oracle Solaris 10 和 11 仅为支持 64 位地址空间内存模型的 SPARC 处理器提供支持。对于 x86,Oracle Solaris 11 仅为支持 64 位地址空间内存模型的 x86 处理器提供支持。Oracle Solaris 10 还为众多仅支持 32 位地址空间内存模型的 x86 处理器提供支持。

所有 64 位处理器都可以执行为 32 位或 64 位地址空间编译的程序。Oracle Solaris 10 和 11 支持在 64 位操作系统上执行 32 位程序。

32 位和 64 位寻址在编译时使用 –m32–m64 命令行选项进行选择。这会影响 C 整数和指针变量的大小。操作系统提供了一些 32 位和 64 位运行时库,编译器则为特定语言提供附加库。

需要 64 位地址空间的程序必须使用 –m64 进行编译。许多程序可以使用任一地址模型编译并正确运行,因此,需要明确哪种模型更快也就理所当然了。在使用 –m64 时,需要与内存之间来回移动大量整数和指针数据的 C 程序速度可能只有一半。但是,64 位应用程序二进制接口 (ABI) 比 32 位 ABI 的寄存器数量要多,因此需要的内存移动较少。对于大多数程序,性能差别并不显著;但是对于特定程序,为了确保性能,最好采用两种方式编译并测试正确性和性能。


注 -  在 Sun Studio 11 和较早的发行版中,内存模型并非 –m32–m64 这样的显式选项,而是内置到 –xarch 选项中,采用不同的名称对应于内存模型。在 Sun Studio 12 中,内存模型选项和架构选项已分离开。