此 Sun 性能库发行版可在 Solaris 操作系统版本 10 上使用。它也可在一些 Linux 操作环境中使用。
Sun 性能库是一组优化的高速数学子例程,用于解决线性代数和其他数字密集型问题。Sun 性能库基于可从 Netlib(网址为 http://www.netlib.org/)获得的公共域子例程集合,这些子例程经过增强和优化,并绑定在一起共同构成 Sun 性能库。性能库包括以下标准库:
LAPACK 版本 3.1.1,用于解决线性代数问题。
BLAS1(Basic Linear Algebra Subprograms,基础线性代数子程序),用于执行向量间运算。
BLAS2,用于执行矩阵向量运算。
BLAS3,用于执行矩阵间运算。
Netlib Sparse-BLAS,用于执行稀疏向量运算。
NIST Fortran Sparse BLAS 版本 0.5,用于执行基本的稀疏矩阵运算。
SuperLU 版本 3.0,用于解决方程的稀疏线性系统。
Sun 性能库包含了下面更多的例程:
快速傅立叶变换 (Fast Fourier transform, FFT) 例程
直接稀疏求解器例程
区间 BLAS 例程
Sun 性能库中的 LAPACK 3.1.1 例程与 LAPACK 早期版本(包括 1.x、2.0 和 3.0)中的用户例程兼容,并与 LAPACK 3.1.1 中的所有例程兼容。但是,由于 LAPACK 3.1.1 中的内部更改而不能保证与内部例程相兼容。
可能不兼容的内部例程在 LAPACK 源代码(可通过 Netlib 获取)中称为辅助例程。有关辅助例程的某些信息,请参见《LAPACK Users' Guide》(《LAPACK 用户指南》),可通过工业和应用数学学会 (Society for Industry and Applied Mathematics, SIAM) Web 站点 http://www.siam.org/ 获取该指南。
由于 LAPACK 辅助例程的用户界面会随着 LAPACK 发行版的不同而有所更改,所以 Sun 性能库中的 LAPACK 辅助例程的用户界面也会随之更改。用户通常可以调用与 LAPACK 3.1.1 兼容的辅助例程;但是未对辅助例程进行专门地说明、测试或支持。请注意,LAPACK 辅助例程的用户界面在未来的 Sun 性能库发行版中会发生改变,因此用户界面应符合该版本的 Sun 性能库所支持的 LAPACK 版本要求。
目前,Sun 性能库包括以下文档:
手册页(3p 部分),用于描述库中的每个函数和子例程
每一个区间 BLAS 例程的区间 BLAS 手册页(3pi 部分)
《Oracle Solaris Studio 12.2: Sun Performance Library User's Guide》介绍和显示了以下示例:
使用 Sun 性能库例程
使用 Fortran 和 C 接口
使用优化和并行选项
使用 SPSOLVE 和 SuperLU 稀疏求解器软件包
使用 FFT 例程
有关其他参考信息,请参见《LAPACK Users' Guide》(《LAPACK 用户指南》)第三版,Anderson, E. 与他人合著,工业和应用数学学会 (Society for Industrial and Applied Mathematics, SIAM) 于 1999 年出版,您可以通过该学会或当地书店找到本书。《LAPACK Users' Guide》(《LAPACK 用户指南》)是 Netlib 上提供的 LAPACK 3.1.1 基础例程的正式参考资料,它提供了 LAPACK 3.1.1 例程的数学说明。
在此发行版中,为 Fortran 和 C 编译器更改了与 Sun 性能库的链接方式。现在,Fortran、C 和 C++ 均使用 -library=sunperf 选项,而不使用 -xlic_lib=sunperf 选项。如果想要静态链接,请将 -staticlib=sunperf 选项添加到 -library=sunperf 选项的后面。
在此发行版中,libsuniperf (IBLAS) 归类为“已过时”,并已从 Oracle Solaris Studio 中删除。
Sun Studio 12 Update 1 发行版在 Sun 性能库中引入了以下功能:
现在,Sun 性能库包含 ScaLAPACK 1.8.0 高性能群集库。该库可与基于 OpenMPI 1.3 发行版的 Sun HPC ClusterTools 8.1 一起使用。可以在 http://www.netlib.org/scalapack/ 上找到参考实现以及文档。
新增的定制库工具 (Custom Library Tool) 提供了用于创建 Sun 性能库缩减版本的选项。定制库工具 gen_custom 可从归档库中提取例程,然后将这些例程重新合并到定制库中。这可以减少大型库(例如 Sun 性能库)的资源占用大小,以只包含那些用户需要的例程。有关详细信息,请参见 gen_custom(3p) 手册页。
对 BLAS、LAPACK 和 FFT 例程进行了众多性能改进。
目前可以支持 Intel(R) CoreTM i7 (Nehalem) CPU 和 AMD Quad-Core OpteronTM (Shanghai) CPU。要与此库进行链接,请使用以下选项:
-m64 -xlic_lib=sunperf(C 和 Fortran)
-m64 -library=sunperf (C++)
目前可以支持 Fujitsu SPARC64-VII(R) CPU。此版本的 Sun 性能库使用浮点乘加指令获取可能的最佳性能。要与此库进行链接,请使用以下选项:
-xtarget=sparc64vii -fma=fused -xlic_lib=sunperf(C 和 Fortran)
-xtarget=sparc64vii -fma=fused -library=sunperf (C++)
针对 SPARC64-VI 和 SPARC64-VII 进行了 ZGEMM 改进
更新了 LAPACK 例程以符合最新的 LAPACK 3.1.1 规范
目前可以支持 Woodcrest CPU。
目前可以支持 SPARC64-VI CPU。
在 SuSE Linux Enterprise Server 9 或 Redhat Enterprise Linux 4 操作环境的 32 位和 64 位系统上提供了性能库。
目前提供了带有 64 位整型参数的例程。即,Sun 性能库的所有版本中均提供 DAXPY() 和 DAXPY_64()。
提供了稀疏求解器软件包 SuperLU 的系列版本,您可以从 C 驱动程序或通过性能库中基于 Fortran 的现有稀疏求解器调用此版本。
目前,四精度例程(dqdoti 和 dqdota)不可用。
在支持 SSE2 和基于 x86 的系统上提供了适用于 Solaris OS 和 Linux OS 的区间 BLAS 例程。
提供了对 UltraSPARC IV+ 和 UltraSPARC IV 处理器的 BLAS 和 FFT 改进。
目前可以支持 SPARC64VI CPU。此版本的 Sun 性能库使用浮点乘加指令在 SPARC64VI CPU 上获取最佳的性能。要与此库链接,请使用 -xtarget=sparcfmaf 标志进行编译/链接。
提供了稀疏求解器软件包 SuperLU 的系列版本,您可以从 C 驱动程序或通过性能库中基于 Fortran 的现有 SPSOLVE 稀疏求解器调用此版本。