Sun[tm] ONE Studio 8: Sun Performance Library[tm] Readme
Description: Sun ONE Studio 8 Readme
Keywords: readme, documentation, publication,

更新日付: 2003 年 3 月 25 日

### Sun[tm] ONE Studio 8:Sun Performance Library Readme

> #### 目次

> 1. はじめに
> 2. Sun Performance Library について
> 3. 新規および変更された機能
> 4. ソフトウェアの修正事項
> 5. 問題点と回避策
> 6. 制限事項と互換性の問題
> 7. 記述の誤りの訂正

> #### A. はじめに

> この文書では、Sun Open Net Environment (Sun ONE) Studio 8, Compiler Collection に付属の Sun Performance Library[tm] に関する情報を提供します。 記載内容は、このリリースで導入された新機能とソフトウェアの修正事項、既知の問題点、制限事項、互換性の問題などです。 また、本書の記載内容はソフトウェアマニュアルの情報を更新ないし補充します。

> 製品マニュアル
> - リリースノート: `http://docs.sun.com/` で入手できます。リリースノートの情報は、各製品の「Readme」ファイルの情報に優先します。
> - Compiler Collection のマニュアル: 製品のマニュアルページ、HTML 版の Readme、およびマニュアルは、`/opt/SUNWspro/docs/ja/index.html` からアクセスできます。
> - Compiler Collection 開発者向けリソースポータル:Compiler Collection 関連のドキュメントについては、Compiler Collection Developer Resources Portal (英語) を参照してください。 このポータルには、技術解説や知識ベースなども挙げられています。

> 注 - Compiler Collection ソフトウェアがデフォルトの `/opt` 以外のディレクトリにインストールされている場合は、システム上の対応するパスをシステム管理者に確認してください。

> #### B. Sun Performance Library について

> このリリースの Sun Performance Library は、Solaris[tm] オペレーティング環境 (SPARC(R) プラットフォーム版) バージョン 7、8、および 9 で利用できます。

> Sun Performance Library は、線形代数問題や非線形問題を数値的に解くための最適化された、かつ高速な数学サブルーチンを集めたものです。Sun Performance Library は、Netlib (`http://www.netlib.org`) から入手できるパブリックドメインアプリケーション群にもとづいて作成されています。 サンはこれらのパブリックドメインアプリケーションの機能を拡張し、これらを Sun Performance Library としてバンドルしました。

> Sun Performance Library には、次の標準ライブラリの拡張版も含まれています。

> - LAPACK バージョン 3.0。線形代数問題解決用。
> - BLAS1 (Basic Linear Algebra Subprograms)。ベクトル演算用。
> - 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 や LAPACK 2.0 など、以前のバージョンの LAPACK から供給されているユーザールーチンや LAPACK3.0 内のすべてのルーチンとの互換性があります。ただし、LAPACK 3.0 の内部変更によって、内部ルーチンとの互換性は保証できません。 Netlib から入手できる LAPACK ソースコードでは、非互換の可能性がある内部ルーチンは auxiliary ルーチンと呼ばれます。『LAPACK Users' Guide』に auxiliary ルーチンに関する情報があります。このガイドは、`http://www.siam.org` にある SIAM (Society for Industrial and Applied Mathematics) から入手できます。

> LAPACK の auxiliary ルーチンのユーザーインタフェースは、LAPACK のリリースごとに変えることができるので、Sun Performane Library でも LAPACK の auxiliary ルーチンのユーザーインタフェースを変更できます。LAPACK 3.0 と互換性のある auxiliary ルーチンは、通常、ユーザーによる呼び出しに使用できますが、auxiliary ルーチンについてはマニュアルへの記載、テスト、およびサポートが特にされていません。 LAPACK の auxiliary ルーチンのユーザーインタフェースは、Sun Performance Library の将来のリリースで変更される可能性があることに注意してください。そのため、ユーザーインタフェースは、該当バージョンの Sun Performance Library でサポートされる LAPACK のバージョンに対応します。

> ##### 関連文書

> 以下の Sun Performance Library 関連文書が提供されています。

> - マニュアルページ (セクション 3P) (英語版のみ) - ライブラリに含まれている各関数やサブルーチンに関する説明
> - 区間 BLAS のマニュアルページ (セクション 3pi) - 各区間 BLAS ルーチンに関する説明
> - 『Sun Performance Library User's Guide』(英語版のみ) - 次のような情報と使用例を収めています。
> - Sun Performance Library のルーチンの使用方法
> - Fortran インタフェースおよび C インタフェースの使用方法
> - 最適化オプションおよび並列化オプションの使用方法
> - スパースソルバー (スパースに対する求解ルーチン) パッケージの使用方法
> - FFT ルーチンの使用方法
> - 『Sun Performance Library Reference Manual』。マニュアルページ (セクション 3P) の HTML 版および PDF 版です (英語版のみ)。『Sun Performance Library Reference Manual』 (英語版のみ) は、`http://docs.sun.com` で参照できます。

> その他の情報については、『LAPACK Users' Guide』 (第 3 版、Anderson, E. ほか著、SIAM、1999) を参照してください。SIAM (Society for Industrial and Applied Mathematics) または書店で入手できます。 『LAPACK User's Guide』は、Netlib で提供している LAPACK 3.0 基本ルーチンに関する公式の解説書です。LAPACK 3.0 ルーチンについて、数学的に説明しています。

> #### C. 新規および変更された機能

> ここでは、Sun ONE Studio 8, Compiler Collection Sun Performance Library の新規機能および変更機能について説明します。 Compiler Collection のその他のコンポーネントについては、『Sun ONE Studio 8 の新機能』を参照してください。ローカルシステムまたはネットワーク上でこのマニュアルにアクセスするには、`/opt/SUNWspro/docs/ja/index.html` を開いてください。 `http://docs.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 Performance Library の共有ライブラリバージョンがリンクされている場合だけです (このバージョンがリンクされた状態がデフォルト)。

> 3. ##### スパースソルバーの新機能

> このリリースでは、スパースソルバーがエルミート正定値行列をサポートするようになりました。

> 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` または tt>OMP_NUM_THREADS 環境変数を 1 よりも大きな値に設定したマルチスレッド環境内で Sun Performance Library ルーチンを呼び出してもルーチンは正常に動作します。しかし、この方法は依然としてシステムへの過剰な要求を引き起こしかねないため、お勧めできません。

> #### E. 問題点と回避策

> ここでは、これまでにわかっているソフトウェアの問題点とその回避策について説明します。更新情報については、Updated Technical Information のページ `http://wwws.sun.com/software/sundev/suncc/hotnews.html` を参照してください。

> 1. ##### `v9` (64 ビット) `libsunperf` ライブラリをリンクするとリンク時間が長くなる

>    Solaris 7 および 8 のリンクエディタのバグ (4369068) が原因で、`libsunperf` などの弱いシンボル (weak symbol) を数多く持った 64 ビットのライブラリをリンクすると、リンク時間が長くなります。 このリンクエディタのバグで影響を受けるのは、make のパフォーマンスだけで、実行時のパフォーマンスには影響はありません。

>    このリンクエディタのバグは、次のパッチで修正できます。

>    1. Solaris 7 オペレーティング環境 パッチ 106950-15 以上
>    2. Solaris 8 オペレーティング環境 パッチ 109147-09 以上

>    上記のパッチは、`http://sunsolve.sun.com` からダウンロードできます。

> #### F. 制限事項と互換性の問題

> 現時点では新しい情報はありません。

> #### G. 記述の誤りの訂正

> 1. ##### 『Sun Performance Library Reference Manual』内の複素数スカラー `alpha` に関する記載内容の修正

>    Sun Performance Library C インタフェースの複素数スカラーは、参照によって渡されます。しかし、docs.sun.com の『Forte Developer 7 Sun Performance Library Reference Manual』では、複素数スカラー `alpha` は値によって渡されると誤って記載されています。Sun Performance Library のマニュアルページおよび sunperf.h ファイルでは、複素数スカラーは参照渡しされると正しく記載されています。たとえば、`caxpy` のマニュアルページでは、複素数スカラー alpha が参照によって渡されています。

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

>    Sun ONE Studio 8, Compiler Collection 用の最終バージョンの Sun Performance Library でリリースされる『Sun Performance Library Reference Manual』には、正しく修正された内容が記載されます。

> Copyright © 2003 Sun Microsystems, Inc., All rights reserved. Use is subject to license terms.Use is subject to license terms.