• 検索結果がありません。

Fortran Builder を使った数値計算

N/A
N/A
Protected

Academic year: 2021

シェア "Fortran Builder を使った数値計算"

Copied!
60
0
0

読み込み中.... (全文を見る)

全文

(1)

Fortran Builder を使った数値計算

筑波大学 図書館情報メディア研究科

長谷川 秀彦

(2)

あらすじ

z はじめに – 計算環境の特徴 z LAPACK とは

z Fortran Builder (learning Ed.) を使う

* 新規作成

* 自分のコードに LAPACK

* 自分のコードを更新& LAPACK 使用 * 数値実験ツール

(3)

はじめに –

計算環境の特徴 z メインフレーム: すべての機能が1社によって提供される z UNIX サーバ: 管理者が存在し、ふつうは使うだけ z Linux パソコン: 自分でインストール、自分で設定・管理 z Windows パソコン: 個性の強い多様なソフトウェアの寄せ集め

(4)
(5)

LAPACK とは

z エルエーパック、レイパック

z Linear Algebra PACKage

z 連立一次方程式、最小自乗法、固有値、特異値

z 密行列と帯行列(疎行列は含まず)

z Single, Double, Complex, Double Complex

z ブロック(行列-行列積ベースの)アルゴリズム

z 性能は Level 3 BLAS (Basic Linear Algebra

Subprograms) に依存

(6)

決まりごと

D

GE

SVX

(1) Type:

C: Complex, D: Double, S: Single, Z: Double Complex

(2) Matrix Type:

GEneral, General Band, General Tridiagonal, SYmmetric, Positive Defineite, Pos. def. Packed

(3) Function:

(7)

LAPACK の歴史

z LINPACK z EISPACK

z LAPACK Ver. 1 Feb. 1992 z LAPACK Ver. 2 Sep. 1994 z LAPACK Ver. 3 June 1999 z LAPACK Ver. 4

(8)

LAPACK Family

z ScaLAPACK: 分散並列コンピュータ用 (スケーラパック) z LAPACK95: Fortran95 インターフェース z CLAPACK: C インターフェース(f2c) z LAPACK++: C++ インターフェース z JLAPACK: Java インターフェース

(9)

SIAM: Society for Industrial and Applied Mathematics

(10)

LAPACK on Unix

z www.netlib.org からダウンロード (free) z BLAS: ベンダ提供 or ソースコードからコンパイル z make で済むが、作業はたくさん z LAPACK Ver. 3 のインストール方法: 「数値計算ライブラリ」 in これだけは知っておき たい数学ツール、共立出版、 1999 phase.hpcc.jp/phase/lapack-j/LAPACK3.0/ lapack3.0_howto.html

(11)

LAPACK on Windows

z www.netlib.org にコンパイル済みライブラリが ある(約 8MB) z 圧縮を解除して使うだけ? z 使い方? z 自分に合ったコンパイル方法? (経験がないので不明)

(12)

Fortran Builder には

z LAPACK の Double と Double Complex z 基本的なドライバルーチンすべてを含む

z テストプログラムと 10×10 程度のテストデータ

(13)

LAPACK Users’ Guide

Third Edition

z SIAM 刊、$46.00 z 概念、仕様あり z インターフェース、アルゴリ ズムの理解に必要 z Web 版あり: www.netlib.org/lapack/lug/ z 日本語訳は Second Edition

(14)

LAPACK Users’ Guide の著者

z E. Anderson (University of Tennessee, Knoxville )

z Z. Bai (University of Kentucky and University of California, Davis ) z C. Bischof (Institute of Scientific Computing, Technical University

Aachen, Germany)

z L. S. Blackford (formerly L. S. Ostrouchov) (University of Tennessee,

Knoxville)

z J. Demmel (University of California, Berkeley)

z J. Dongarra (University of Tennessee, Knoxville and Oak Ridge

National Laboratory)

z J. Du Croz (Numerical Algorithms Group Ltd. (retired) ) z A. Greenbaum (University of Washington )

z S. Hammarling (Numerical Algorithms Group Ltd. )

(15)

NAG 関係者

z E. Anderson (University of Tennessee, Knoxville )

z Z. Bai (University of Kentucky and University of California, Davis ) z C. Bischof (Institute of Scientific Computing, Technical University

Aachen, Germany)

z L. S. Blackford (formerly L. S. Ostrouchov) (University of Tennessee,

Knoxville)

z J. Demmel (University of California, Berkeley)

z J. Dongarra (University of Tennessee, Knoxville and Oak Ridge

National Laboratory)

z J. Du Croz (Numerical Algorithms Group Ltd. (retired) )

z A. Greenbaum (University of Washington )

z S. Hammarling (Numerical Algorithms Group Ltd. )

z A. McKenney

(16)

Fortran Builder (learning Ed.) をどう使う

z 性能・サイズにこだわらない! z 開発環境 ソフトウェアのテスト・デバッグに用いる 完成したソースコードを別の環境で使う (大規模問題、高速なマシン、実データ) z 開発・実行環境 パソコンを充実した研究・開発ツールに

(17)

LAPACK on Fortran Builder

A. 新規作成

B. 自分のコードに LAPACK を

C. 自分のコードを更新& LAPACK 使用 D. 数値実験ツール

(18)

A. 新規作成

z サンプル&データを試してみればよい z 問題に合うルーチンの認識が必要

Æ それには LAPACK Users’ Guide

z 例:「特異値分解 A = UDV;

(19)
(20)
(21)
(22)
(23)
(24)
(25)

説明はヘルプの

(26)
(27)
(28)

LAPACK は簡単に使えた

z 所要時間 10 分? z テストプログラム、テストデータ、模範解答 z ノート PC でもあっという間 z DGESDD, DGESVD とはどこが違う? ×関数についてのヘルプはないの? ×どこをどのように直せばいいの?

(29)

コードを修正するために

z 関数の仕様 (LAPACK Users’ Guide) z ソースプログラムはどこ?

z テストプログラム&テストデータ

(30)
(31)
(32)
(33)
(34)
(35)
(36)
(37)
(38)

修正の方針

z テストプログラムとテストデータを読む z 必要ならばコピーを作成 z Fortran Builder で修正 or 修正して Fortran Builder に持ち込み z 実行環境は Fortran Builder を! データまわり(入力データ、出力)が少し不便

(39)

DGESVD と DGESDD

z DGESVD

一般的な方法による特異値分解 信頼できるアルゴリズム

z DGESDD

Divide and Conquer (分割統治法)による

高速

(40)

B. 自分のコードに LAPACK を

z 性能メリット z 互換性 別の計算環境 将来 z テストプログラムをラッパーとして利用する オーバーヘッドより生産性を! z ただし、自分の問題の認識は必要

(41)

C. 自分のコードを更新& LAPACK 使用

z 新しい言語機能を活用 z 性能メリット・互換性 z f77 Æ f95 変換機能を利用 (どれくらいうまくいくか?微修正可能?) z テストプログラムをラッパとして利用 z 例:「帯行列を係数とする連立一次方程式 A x = b, A: 帯行列 」を解く 小国力他.行列計算ソフトウェア, 丸善, 1991

(42)
(43)
(44)
(45)
(46)
(47)
(48)
(49)
(50)
(51)
(52)

修正の方針

z f77 ソースプログラムを f95 へ変換 z 変換がうまくいくように f77 ソースを修正 z Fortran Builder で修正 z 実行環境は Fortran Builder を! z f95/f77, LAPACK の共存が可能 多少の労力 & 忍耐は必要

(53)

D. 数値実験ツール

プログラム作成から、プログラムの活用に

z ほぼ完成版のプログラムが存在 z データを変えて実行

(54)

Fortran Builder (learning Ed.)

のよいところ

z (Almost of ) All in One

z 安価(コンパイラ、ツール、サンプル)

z 教育的

z ヘルプ (そこそこ?) z USB ライセンスキー

(55)

たとえばこんな使い方は?

目標: 自宅の PC でプログラムを作成させる 案1)学生に購入させる 案2)履修者に USB キーを貸与 *成果物(ソースコード)はどこでも使用可能 *成果物は将来に渡って使用可能

(56)

私の疑問

(昔のプログラマの思いこみ)

z データを見るためのツールは?

z Windows ふうの環境での動作の仕組みは? z Fortran95 へのコンバージョンは容易?

(57)

Fortran Builder (learning Ed.)

の制約

z マニュアル・チュートリアル (ヘルプはあるが、体系的な説明は。。。) z 紙に出力して読む必要性は? (PDF のマニュアルでもあれば。。。) z Size 10MB (1000 lines) 密行列 1000*1000 はOK 帯行列 N=5300, 帯半幅=51 は OK

(58)

Fortran Builder まとめ

z (Compiler, LAPACK, 開発環境)は手軽なツール

Simple and Easy

z ヘルプ、教育コンテンツも有用 Educational z 一通りのことができる All in one

z 個人環境向けの新しいツール Anywhere z スムース Less trouble, less stress

(59)

参考文献

Web ページ: google で!

www.netlib.org

phase.hpcc.jp

文献:

・Andersen, E. et. al. LAPACK Users’ Guide, SIAM, 1999

・山本、榊原、野寺、長谷川.これだけは知っておきたい数学ツール (インターネット時代の数学 1)、共立出版、1999

http://www.slis.tsukuba.ac.jp/~hasegawa/MathTool/ ・大石進一. Linux 数値計算ツール、コロナ社、2000

(60)

蛇足用語集

z LINPACK: Top500 というコンピュータの性

能競争に使われているが、本来は Gauss の消去法による連立一次方程式の解法

z BLAS: DGEMM (ZGEMM) さえ高速なら

LAPACK は高速になる。その意味で LAPACK はマシン独立である

参照

関連したドキュメント

Operation is subject to the ing two conditions: (1) This device may not cause harmful interference, ) this device must accept any interference received, including interference ay

新製品「G-SCAN Z」、 「G-SCAN Z Tab」を追加して新たにスタート 新製品「G-SCAN Z」、 「G-SCAN Z

To do so, we overcome the technical difficulties to global loop equations for the spectral x(z) = z + 1/z and y(z) = ln z from the local loop equations satisfied by the ω g,n ,

Key words and phrases: Analytic functions, Univalent, Functions with positive real part, Convex functions, Convolution, In- tegral operator.. 2000 Mathematics

We finally study representability of such contravariant functors and prove that the category of Z n 2 -manifolds is equivalent to the full subcategory of locally trivial functors in

[r]

次に、第 2 部は、スキーマ療法による認知の修正を目指したプログラムとな

過少申告加算税の金額は、税関から調査通知を受けた日の翌日以