Description: Sun ONE Studio 9 Readme
Keywords: readme, documentation, publication,

更新于 2003/03/25

### Sun[tm] ONE Studio 9：Sun Performance Library[tm] 自述

> #### 目录

> 1. 简介
> 2. 关于 Sun Performance Library
> 3. 新特性和更改的特性
> 4. 软件更正
> 5. 问题和解决办法
> 6. 限制和不兼容
> 7. 文档错误

> #### A. 简介

> 本文档包含关于 Sun Open Net Environment (Sun ONE) Studio 9 编译器集合随附的 Sun Performance Library[tm] 的信息。本文档描述了此发行版本中引入的新特性和软件更正并列出了已知的问题、局限和不兼容性。 这个文档中的信息会更新和扩展软件手册中的信息。

> 产品文档
> - 发行说明： 位于 `http://docs.sun.com/doc/816-6727`。发行说明中的信息会更新和扩展所有自述文件中的信息。
> - 编译器集合文档：产品手册页、HTML 版本的自述以及手册可以访问 `/opt/SUNWspro/docs/index.html` 。
> - 编译器集合开发人员资源门户网站： 编译器集合文档请参见编译器集合开发人员资源门户网站的文档索引。该网站还包含技术文章和知识库。

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

> #### B. 关于 Sun Performance Library

> 本发行版本的 Sun Performance Library 可用于 Solaris[tm] 操作环境 (SPARC(R) Platform Edition) 版本 7、8 和 9。

> Sun Performance Library 是一套优化的和高速的数学例程，它可用于解决线性代数和其它数值密集应用的问题。Sun Performance Library 是建立在可从 Netlib 获得 (`http://www.netlib.org`) 的公共领域应用集合之上。

> Sun Performance Library 包含了下列标准库的增强版本：

> - LAPACK 3.0 版。用于解决线性代数问题。
> - BLAS1（基本线性子程序）。用于执行向量间运算。
> - BLAS2。用于执行矩阵向量运算。
> - BLAS3。用于执行矩阵间运算。
> - Netlib Sparse-BLAS。用于执行稀疏向量运算。
> - NIST Fortran Sparse BLAS 0.5 版。用于执行基本的稀疏矩阵运算。

> Sun Performance Library 包含下列更多的例程：

> - 快速傅立叶变换 (FFT) 例程
> - 直接稀疏处理例程
> - 间隔 BLAS 例程

> ##### 兼容性

> Sun Performance Library 中的 LAPACK 3.0 例程与 LAPACK 先前版本中的用户例程是兼容的，其中包括 1.x 和 2.0 版本以及 LAPACK 3.0 中的所有例程。但是由于 LAPACK 3.0 的内部更改，所以不能保证和内部例程的兼容性。可能不兼容的内部例程在 LAPACK 源代码中称作辅助例程（可从 Netlib 获得）。某些关于辅助例程的信息包括在可以从“Society for Industrial and Applied Mathematics (SIAM)”（位于 `http://www.siam.org`）获得的 LAPACK 用户指南 中。

> 由于 LAPACK 辅助例程的用户接口随着 LAPACK 的发行而更改，所以在 Sun Performance Library 中的 LAPACK 辅助例程的用户接口也可以更改。用户一般可以调用与 LAPACK 3.0 兼容的例程；但是辅助的例程没有专门的文档化、测试或是支持。需要注意的是 LAPACK 辅助例程的用户接口在 Sun Performance Library 将来的版本中可能会更改，因此用户的接口应该与 Sun Performance Library 支持的 LAPACK 的版本保持一致。

> ##### 文档

> 下列 Sun Performance Library 文档可用：

> - 库中每一个函数和例程的手册页（3p 段）
> - 每一个间隔 BLAS 例程的间隔 BLAS 手册页（3pi 段）
> - Sun Performance Library 用户指南，描述并给出了实例以用于：
> - 使用 Sun Performance Library 例程
> - 使用 Fortran 和 C 接口
> - 使用优化和并行选项
> - 使用稀疏处理软件包
> - 使用 FFT 例程
> - Sun Performance Library 参考手册，是 3p 段手册页的 HTML 和 PDF 版本。Sun Performance Library 参考手册 位于 `http://docs.sun.com`。

> 其它参考信息请参见 LAPACK 用户手册 第三版，Anderson, E 和他人所著，SIAM，1999，这本书可以从 Society for Industrial and Applied Mathematics (SIAM) 或是当地书店中找到。LAPACK 用户指南 是可从 Netlib 上获得的 LAPACK 3.0 基础例程的官方参考，可以提供 LAPACK 3.0 例程的数学描述。

> #### C. 新特性和更改的特性

> 本节描述了 Sun ONE Studio 9 编译器集合 Sun Performance Library 的新特性和更改的特性。关于其它编译器集合组件的信息请参见 最新内容 手册。要在本地系统或网络访问本手册，请转到 /opt/SUNWspro/docs/index.html。您也可以通过 `http://doc.sun.com` 访问本手册。

> 1. 性能改善
> 2. 可移植库性能
> 3. 稀疏处理的新特性
> 4. 合并的并行模型
> 5. IBLAS 手册页

> 1. ##### 性能改善

> Sun Performance Library 的本发行版本包括下列性能改善。

> - BLAS 和 FFT 性能改善

> - 改善的 US-III 小问题大小的 `GEMM` 性能
> - 在 V9 库中使用 32 位 FFT 例程时改善的小问题大小的 FFT 性能

> - 稀疏处理性能的改善

> - 增强的 Sun Performance Library 稀疏处理的单 CPU 性能
> - 并行 Sun Performance Library 稀疏处理

> - 稀疏 BLAS 性能改善

> - 并行稀疏矩阵和向量间运算
> - 改善的小问题大小的性能

> 2. ##### 可移植库性能

> 本 Sun Performance Library 发行版本中已经有了简化最佳性能的内部更改。在运行时，用于优化执行正在运行的 SPARC 硬件平台的 Sun Performance Library 的一个版本可以动态加载。这种情况只能在 Sun 性能库共享的库版本连接时才发生，这是缺省设置。

> 3. ##### 稀疏处理的新特性

> 稀疏处理现在包括 Hermitian 正有限向量支持。

> 4. ##### 合并的并行模型

> 本发行版本的 Sun Performance Library 包括合并的并行模型，减少了 Sun Performance Library 发送的库的数量，并且减少了 Sun Performance Library 的大小。

> 合并的并行模型简化了 Sun Performance Library 串行或并行行为的连接。

> - 要从 Sun Performance Library 进行串行行为连接：

> `f95 user.f -xlic_lib=sunperf`
> 或
> `cc user.c -xlic_lib=sunperf`

> - 要从 Sun Performance Library 进行并行行为连接，使用 `-xparallel`, `-xexplicitpar` 或是 `-xautopar`。

> `f95 user.f -xparallel -xlic_lib=sunperf`
> 或
> `cc user.c -xparallel -xlic_lib=sunperf`

> 以前，与 `-mt` 连接能允许 Sun Performance Library 例程并行运行。现在不是这种情况了，使用没有 `-xparallel`、`-xexplicitpar` 或 `-xautopar` 的 `-mt` 将会导致 Sun Performance Library 的例程单线程运行。现在使用有 `-xparallel`、`-xexplicitpar` 或 `-xautopar` 的 `-mt` 线程是安全的并且能允许 Sun Performance Library 性能库的例程并行运行。

> 5. ##### 间隔 BLAS 手册页已移到 man3pi 文件夹

> 间隔 BLAS 手册页已经移到 man3pi 文件夹。

> 对于 Fortran 95 接口和在每一个间隔 BLAS 例程中使用的参数类型，请参见 3pi 手册页中独立例程的那一段。例如，若要显示 `constructv_i.3pi` 例程的手册页，输入 `man -s 3pi constructv_I`。例程的名字必须小写。

> #### D. 软件更正

> 1. ##### 线程安全

>    Sun Performance Library 以前的发行版本不支持将编译器并行和 POSIX 多线程或 Solaris 多线程混合。Sun Performance Library 现在是线程安全的 (4764782)，所以在一个 `PARALLEL` 或 `OMP_NUM_THREADS` 环境变量设置成比 1 大的值的多线程环境中调用 Sun Performance Library 例程，它会正确地完成。但是，不建议这种行为因为它仍然会导致系统过载。

> #### E. 问题和解决办法

> 本节讨论了已知的软件问题及其可能的解决方法。关于更新，请查看 `http://wwws.sun.com/software/sundev/suncc/hotnews.html` 的“更新技术信息”。

> 1. ##### 当连接 `v9`（64 位）`libsunperf` 库时，连接时间缓慢。

>    当连接到包含很多弱符号（例如 `libsunperf`）的 64 位库时，Solaris 7 和 8 的一个连接编辑器错误 (4369068) 导致连接时间缓慢。这个连接编辑器错误只影响生成性能，而不影响运行时性能。

>    下列补丁程序可以解决这个连接编辑器错误：

>    1. Solaris 7 运行环境补丁程序 106950-15（需最小修订版）
>    2. Solaris 8 运行环境补丁程序 109147-09（需最小修订版）

>    产品补丁程序可以从 `http://sunsolve.sun.com` 下载。

> #### F. 限制和不兼容

> 目前没有新的信息。

> #### G. 文档错误

> 1. ##### Sun Performance Library 参考手册中的复数标量 `alpha` 文档不正确。

>    Sun Performance Library C 接口中的复数标量是引用传递的。但是，docs.sun.com 上的 Forte Developer 7 Sun Performance Library 参考手册不正确地显示为通过值传递复数标量 `alpha` 。Sun Performance Library 手册页和 sunperf.h 文件正确地显示复数标量是通过引用传递时。 例如，`caxpy` 的手册页正确地显示复数标量 alpha 是通过引用传递的。

>    `void caxpy(int n, complex *alpha, complex *x, int incx, complex *y, int incy);`

>    这一版本的 Sun Performance Library 参考手册 将要和 Sun ONE Studio 9 编译器集合中的 Sun Performance Library 最终版本一起发行，其中将包括这些更正。

> 版权所有 © 2003 Sun Microsystems, Inc., 保留所有权利。 使用需服从许可证条款。