2004 年 5 月 26 日更新

Sun Studio 9:Fortran 95 自述文件


目录

  1. 简介
  2. 关于 Sun Studio 9 Fortran 95
  3. 新特性和更改的特性
  4. 软件更正
  5. 问题和解决办法
  6. 限制和不兼容
  7. 文档错误
  8. Fortran 95 必要的补丁程序
  9. 可发送库

 


A. 简介

本文档包含有关 Sun[tm] Studio9 Fortran 95 编译器 f95 的信息。本文档描述了此发行版本中引入的新功能和软件更正并列出了已知的问题、局限和不兼容性。本文档中的信息更新和扩展了软件手册中的信息。

产品文档

注意—如果编译器集合软件还没有安装在缺省 /opt 目录,请询问系统管理员以了解系统中的等价路径。


B. 关于 Sun Studio 9 Fortran 95

本自述文件已用介绍此次发行的 8.0 版 f95 中的新功能和更改功能的信息更新。

8.0 版本的 Fortran 95 编译器 f95 作为 Sun Studio 9 的一个组件发行,可在 SPARC(R) 和 x86 平台上版本 8、9 和 10 的 Solaris[tm] 操作系统 (Solaris OS) 中使用。

随 Sun Studio 8 发行的上一版本的编译器是版本 7.1。


C. 新特性和更改的特性

本节描述了 Fortran 95 本发行版本的新增功能和更改的功能。编译器选项的详细信息请参见“Fortran 用户指南”和 f95(1) 手册页。

  1. Solaris OS x86 平台上的 f95
  2. 增强的运行时性能
  3. Fortran 2003 命令行内部参数
  4. 新增和更改的 f95 命令行选项
  5. 缺省 SPARC 体系结构是 v8plus
  6. OpenMP: 增加的最大线程数
  7. OpenMP: 自动的变量作用域
  1. Solaris OS x86 平台上的 f95
    本发行版本的 Sun Studio 在 Solaris OS x86 平台上提供了 Fortran 95 编译器。采用 -xtarget 的值 genericnative386486pentiumpentium_propentium3pentium4 进行编译,从而在 Solaris x86 平台上生成可执行文件。x86 平台上的缺省值为 -xtarget=generic

    在 x86 平台上尚未实现以下 f95 功能,这些功能仅在 SPARC 平台上可用:

    • 区间运算(编译器选项 -xia-xinterval
    • 四元(128 位)运算(例如,REAL*16
    • IEEE 内部模块 IEEE_EXCEPTIONS、IEEE_ARITHMETICIEEE_FEATURES
    • sun_io_handler 模块
    • P并行选项,比如 -autopar-parallel-explitipar-openmp

    以下 f95 命令行选项只能在 x86 平台上使用,不能在 SPARC 平台上使用:

    • -fprecision、-fstore、-nofstore

    以下 f95 命令行选项只能在 SPARC 平台上使用,不能在 x86 平台上使用:

    • -xcode、-xmemalign、-xprefetch、-xcheck、-xia、-xinterval、-xipo、-xjobs、-xlang、-xlinkopt、-xloopinfo、-xpagesize、-xprofile_ircache、-xreduction、-xvector、-depend、-openmp、-parallel、-autopar、-explicitpar、-vpara、-XlistMP

    同时,在 x86 平台上 -fast 增加了 -nofstore

    有关在 x86 平台上进行编译的详细信息

    • -xtarget 在 x86 平台上的值和扩展
      两个新的 -xtarget 平台值可供 x86 使用。
      -xtarget=pentium3 扩展为 -xarch=sse -xchip=pentium3 -xcache=16/32/4:256/32/4
      -xtarget=pentium4 扩展为 -xarch=sse2 -xchip=pentium4 -xcache=8/64/4:256/128/8

    • 新的 -xarch-xchip 值分别为:
      -xchip=pentium3 - 优化 Pentium 3 处理器
      -xchip=pentium4 - 优化 Pentium 4 处理器
      -xarch=sse - 将 SSE 指令集添加到 pentium_pro 指令集
      -xarch=sse2 - 将 SSE2 指令集和 SSE 指令集添加到 pentium_pro 指令集

    • 只有在 pentium3pentium4 处理器上才能启用 -fns。如果 -xarch 不是 ssesse2,则忽略 -fns=yes。否则,对于 SSE 和 SSE2 浮点指令,-fns=yes 意味着将把下溢清空为零 (FTZ),并将非标准操作数视为零 (DAZ)。-fns=yes 不影响传统的 x86 浮点指令。

    • 特别注意
      -xarch={sse | sse2} 编译以便在 Solaris x86 SSE/SSE2 Pentium 4 兼容平台上运行的程序必须只在启用 SSE/SSE2 平台上运行。在未启用 SSE/SSE2 的平台上运行这种程序可能会导致段故障或者不发出明确警告信息就产生错误结果。操作系统和编译器的补丁程序可防止 SSE/SSE2 编译的二进制程序在未启用 SSE/SSE2 的平台上执行,这些补丁程序可能会在晚些时候提供。

      以 Solaris 9 update 6 开头的操作系统版本在 Pentium 4 兼容平台上启用 SSE/SSE2。Solaris OS 的早期版本未启用 SSE/SSE2。

      该警告还扩展到利用 .il 联机汇编语言功能程序或利用 SSE/SSE2 指令的 __asm() 汇编程序代码。

      如果您在各个独立的步骤中进行编译和链接,则要始终使用编译器并通过 -xarch={sse | sse2} 进行链接,以确保链接正确的启动例程。

      x86 上的算术结果可能不同于 SPARC 上的结果,原因是 x86 80 字节浮点注册表。要将这些差异降到最小,请使用 -fstore 选项,或者如果硬件支持 SSE2,就要用 -xarch=sse2 进行编译。

  2. 增强了运行时性能
    采用本发行版本后,大多数应用程序的运行时性能将有显著提高。为获得最佳效果,请使用较高的优化级别 -xO4-xO5 进行编译。在上述优化级别,编译器现在可以内联包含的过程,以及那些具有假定形参数、可分配参数或指针参数的过程。
  3. Fortran 2003 命令行内部函数
    Fortran 2003 草案标准引入了三个新的内部函数,以处理命令行参数和环境变量。这三个函数已在本发行版本的 f95 编译器中实现。新的内部函数为:
    • GET_COMMAND(command, length, status)
      命令中返回调用程序的整个命令行。
    • GET_COMMAND_ARGUMENT(number, value, length, status)
      中返回命令行参数。
    • GET_ENVIRONMENT_VARIABLE(name, value, length, status, trim_name)
      返回环境变量的值。
  4. f95 编译器中新增和更改的命令行选项
    以下 f95 命令行选项是本发行版本中新增的选项。详细信息,请参见 f95(1) 手册页。

    • -xipo_archive={ none | readonly | writeback }
      允许 crossfile 优化包括归档库 (.a)。(仅用于 SPARC)

      -xipo_archive=none
      不处理归档文件。

      -xipo_archive=readonly
      编译器在生成可执行文件之前,采用归档库 (.a) 中已用 -xipo 编译的目标文件优化传递到链接器的目标文件。

      -xipo_archive=writeback
      编译器在生成可执行文件之前,采用归档库 (.a) 中已用 -xipo 编译的目标文件优化传递到链接器的目标文件。归档库中所含的、在编译期间已优化的所有目标文件均由其优化版本替换。

      如果不指定 -xipo 的设置,编译器会将其设置为 -xipo_archive=none

    • -xprefetch_auto_type=[no%]indirect_array_access
      为间接访问的数组生成间接预取。(仅用于 SPARC)

      [no%]indirect_array_access
      采用和生成直接内存访问预取相同的方式,为选项 -xprefetch_level=[1|2|3] 指示的循环生成 [不生成] 间接预取。

      如果未指定 -xprefetch_auto_type 的设置,编译器将其设置为 -xprefetch_auto_type=[no%]indirect_array_access

      -xprefetch 选项仅可在 SPARC 平台上使用。

      诸如 -xdepend-xrestrict-xalias_level 这样的选项可以影响用于确定预取侯选对象的激进度,从而将影响自动间接预取插入的激进度,因为它们有助于生成更准确的内存别名二义性信息。

    • -xprofile_pathmap=collect_prefix:use_prefix
      为配置文件数据文件设置路径映射。在分析的目录不是以前用 -xprofile=collect 编译时所用的目录时,将 -xprofile_pathmap 选项和 -xprofile=use 选项配合使用。

    在本发行版本的 f95 中,以下命令行选项的缺省值已更改。

    • -xprefetch 的缺省值为 -xprefetch=no%auto,explicit
    • -xmemalign 的缺省值为 -xmemalign=8i,当用一个 -xarch=v9 选项进行编译时,缺省值为 -xmemalign=8f
    • 当用一个 -xarch=v9 选项进行编译时,-xcode 的缺省值为 abs44

    要用在以前版本的编译器中使用的缺省值进行编译,请明确指定下列选项:

    • -xarch=v8 -xmemalign=4s -xprefetch=no(对于 32 位编译)
    • -xcode=abs64 -xprefetch=no(对于 64 位编译)
  5. 缺省 SPARC 体系结构是 8PLUS
    缺省 SPARC 体系结构不再是 V7。在本发行版本的 Sun Studio 9 中对 -xarch=v7 的支持有限。新的缺省值为 V8PLUS (UltraSPARC)。采用 -xarch=v7 编译会被看作采用 -xarch=v8 编译,因为 Solaris 8 OS 只支持 -xarch=v8 或更高版本。

    要在 SPARC V8 系统(例如 SPARCStation 10)上进行部署,则明确用 -xarch=v8 编译。提供的系统库在 SPARC V8 体系结构上运行。

    要在 SPARC V7 系统(例如 SPARCStation 1)上进行部署,则明确用 -xarch=v7 编译。提供的系统库使用 SPARC V8 指令集。对于 Sun Studio 9 发行版,只有 Solaris 8 OS 支持 SPARC V7 体系结构。遇到 SPARC V8 指令时,该 OS 解释软件中的指令。程序运行,但是性能将下降。

  6. OpenMP:最大线程数增加
    OMP_NUM_THREADS 和多任务库的最大线程数都已从 128 增至 256。
  7. OpenMP:自动设定变量的作用域
    对于共享内存并行编程,本发行版本 Fortran 95 编译器的 OpenMP API 的实现,具有在并行区域内自动设定变量作用域之特性。详细信息,请参见<OpenMP API 用户指南>。(OpenMP 仅在 SPARC 平台的本发行版上实现。)

有关其他 Sun Studio 8 组件的信息,参见《新增功能》手册。可以找到该手册,作为随软件一起安装的文档的一部分,网址是 file:/opt/SUNWspro/docs/index.html。另外,也可以在 Sun Studio 9 集合中找到《新增功能》手册,网址是 http://docs.sun.com


D. 软件更正

目前无信息。


E. 问题和解决办法

本节讨论了本发行版本中已知的软件问题及其可能的解决方法。

下面列出的这些问题很可能会在随后发布的补丁程序中得到修正。关于更新和补丁程序,请查看更新信息,网址为 http://http://developers.sun.com/prodtech/cc/support_index.html


F. 限制和不兼容

本节讨论系统或其他软件的限制和不兼容。

请注意,f95 编译器以前的发行版本引入了不兼容性,而这一点又被本次发行的 8.0 版编译器所继承,如果您正在从 f95 以前的发行版本更新到 8.0 (Sun Studio 9) 版本,请注意这一点。请注意以下不兼容性:

下列常见项目也需注意:


G. 文档错误

目前无信息。


H. Fortran 95 必要的补丁程序

要了解本发行版本必要和可选的补丁程序,请参见发行说明


I. 可发送库

如果可执行文件使用列在以下命名文件中的 Sun 动态库,那么许可证中就包 括了将库给重新分发客户的权利。

     /opt/SUNWspro/READMEs/runtime.libraries

注意—如果未将软件安装到 /opt 目录中,请咨询系统管理员以获得系统上的实际安装路径。

您不能以任何形式重新分发或透漏对象模块的头文件、源代码、对象模型或静态库。

“使用许可证”出现在“最终用户对象代码许可证”中,可以在 CD-ROM 塑料包装盒背面看到。



版权所有 © 2004 Sun Microsystems, Inc. 保留所有权利。必须依据许可证条款使用。