行列計算パッケージLAPACK/VPの紹介 行列計算パッケージLAPACK/VPの紹介 渡部善隆* Fortranから利用できる行列計算パッケージLAPACK/VP (正式名称:UXP/V LAPACK/VP VIO)をスーパーコンピュータVPP700/56上で公開しました・本稿ではLAPACK/VPの特徴、具 体的な利用方法、オンラインマニュアルの参照方法などについて説明します。 なお、 LAPACK/VPの使用方法の説明ではVPP700/56についての基礎的な知識を前提として います VPP700/56の利用方法の詳細は[1]を御覧ください。 1 LAPACK/VPの概要 1.1 LAPACK/VP LAPACK/VPは,スーパーコンピュータVPP700/56 (ホスト名kyu-vpp, IPアドレス133.5.9.70) の単一PE上で動作する行列計算パッケージです.利用者はFortranプログラムから各ルーチンをCALL 文によって呼び出します. 1.2 LAPACK LAPACK(LinearAlgebraPACKage)は,数学ソフトウェア,スーパーコンピュータの性能評価デー タなどの情報を提供するnetlib (URL: http://www.netlib.org/1)で公開されている線形計算ライブ ラリです.各ルーチンはFORTRAN 77で記述されています2. LAPACK/VPはLAPACK 2.0をVPP700/56の単一PEで高速に実行されるようにベクトルチュー ニングしたものです.残念ながら,ベクトルチューニング後のソースプログラムは非公開です. 1.3 主な機能 LAPACK/VPには,約300種類,各精度を合計すると約1,100本のルーチンが用意されています. 主な機能は以下の通りです: ・連立1次方程式(一般密行列,バンド行列,対称/Hermite行列など) ・線形最小二乗問題(最小ノルム解,一般化線形モデル問題など) ・固有値問題(対称/非対称固有値問題,一般化固有値問題など) ・特異値分解(特異値,特異ベクトルなど) *九州大学大型計算機センター・研究開発部 E-mail: watanabeQcc.kyushu-u.ac.jp l有名なLINPACKベンチマークによる"Top500 Supercomputer Sites"ち,ここで公開されています. 2もちろん現在センターでサポートしているFortran 90から呼び出すことができます. Fortran 90規格はFORTRAN 77 規格を完全に包含しています. -1- 九州大学大型計算機センター広報 Vol.32 No. 1 1999 解 説 1.4 I-APACK/VPの構成 LAPACK/VPは,一般に問題を解くための機能を提供するドライバルーチン(driverroutines),個々 の問題を解くための機能を提供する計算ルーチン(comutational routines),および,補助的な計算や 共通に使用される手続きを提供する補助ル-テン(auxiliary routines)で構成されています.ドライバ ルーチンと計算ルーチンの詳細は4章をご覧ください. LAPACK/VPは,ベクトル演算や行列演算などの『核』となる部分でBLAS/VP(正式名: UXP/V BLAS/VP VIO)ライブラリを呼び出します3. BLAS/VPもLAPACK/VPと同様, netlibで公開されているライブラy BLAS(Basic Linear Algebra Subprograms)をベクトルチューニングしたものです4. 1.5 UNPACK, EISPACKとの関係 LAPACKは1970年代に開発,提供された連立1次方程式の解法パッケージLINPACKと固有値問 題の解法パッケージEISPACKを統合したものです LINPACK, EISPACKからLAPACK -の詳し い移行方法がマニュアル[2], [3]に記述されています・ 2 LAPACK/VPの利用方法 ここでは,翻訳・結合によって実行可能ファイルを作成するまでの手順を説明します.翻訳・結合に よる実行可能ファイルの作成,実行はバッチ処理でも行なうことができます.バッチ処理を行なう場合 のシェルスクリプトの書き方,バッチリクエストの投入方法,処理コマンドのオプションの詳細は[1] を御覧ください. 0実行可能ファイルの作り方 LAPACK/VPのルーチンは,利用者のFortranプログラムにCALL文で記述します. LAPACK!VP のライブラリはfrt(/usr/lang/bin/frt)コマンドにリンクオプション-Ilapackvpを指定すること により結合されます5. また, LAPACK/VPはBLAS/VPを使用します・そのため,リンクオプションーIblasvpもあわ せて記述します. リンクオプションは,必ずソースプログラムファイル名やオブジェクトファイル名よりも後ろに -llapackvp -lblasvp の順番に記述してください6.以下は,ソースプログラムsa皿pie.f90を翻訳・結合して実行可能ファ イルを作成する例です: 蜘-yppX frJ sample,f90 -llapackvp -lblasyp ◎ -実行可能フアイjL,の搾成 3計算の核の部分を構成するBLASを,搭載する計算機にあわせて「ギンギン」にチューニングすることによって, LAPACKソースの移植性を保ったまま高速化が実現できます.さらに,すべてのソースを公開した上で利用者の意見を真撃に受 け入れる(格好いい)姿勢によって, LAPACKは世界的な名声を獲得しました.厳密にはLAPACKとBLASは別のライブ ラリです.しかしnetlibで入手できるLAPACKのソースにはBLASのソースプログラムがついてきます. 4こちらも殊念ながらソースプログラムは非公開です. 5"ll"はリンクオプションを意味します. 6順番にLAPACK/VPライブラリ(liblapackvp.a), BLAS/VPライブラリ(libblasvp.a)を呼び出しています. 九州大学大型計算機センタ-広報 Vol.32 No. 1 1999 -2- 行列計算パッケージLAPACK/VPの紹介 結合処理が無事に終わると,実行可能ファイルa.outが作成されます.実行可能ファイル名を任意の 名前に変更するには一〇オプションに続けて適当なファイル名を入力します.以下は実行可能ファイル 名を"example.ex"に変更する例です. 蜘-vpp% fxt -0 example.ex sample,f90 -1lapac加p -Iblasyp ◎ 3 マニュアル ここでは, LAPACK/VPマニュアルの参照方法について説明します. 3.1 書籍 公式マニュアルとして書籍[2]が販売されています・日本語訳同もあります. 3.2 manコマンド kyu-vppではman(/usr/uxp/man)コマンドによる検索が可能です.ただし英語のみです. LAPACKの概要は`'man lapack"で調べることができます. kyu-vpp*/,恥R Iapack 薗 キーLAPACKの概要を見る LAHCK CL) LAPAC妊FORTRAN LIBRARY; ROOT王NES ‥‥ LAPACKく1) WHAT・ IS LAPAGK? LAPAぽis ^transportable library of Fortran 77 subroutinesねr solv軸g the mo畠もcommon problems in numericaユIinear algebra: 野鴫餌等0王Iinear equ醜ions, linear leasも squares px曲1卵, eigenvalue problems, and singular value problem5. It has been des丘gned to be efまIcieat on a 甘ide rmge of modern M酔perfformCe CO叩1止er昆・ LAPACK is intended to be the successor to LI封PACK and EISPAGK. It extend昏 tIie fu且C七ionality of these packages by including equilibration., iterative refinement, error bounds, and 血iver rou七iaes かr linear systems, routines for comp-止ing血reordering the Scmxr factorization, and condition esti:血的ion rou一 七ine基軸r eigenvalue problems. LAPACK improves on七he accirr&ey of七Iie standard algorithms in EISPACK by including hi酔 accuracy 娘gorxthn串まor finding singular values and eigenvalues of bidiagoflal and tridi喝oaal matrices respectively that arise ia SVD and 昏ymnieはic eigenvalue problems. The algori七hnS and so王も甘旺e have been restructured to achieve Mgh.占f王iciency on vector prOce55ors, Mgk-performance Hsuperscalar'* work的ationS aneU shared-memory multIprocessors. A comprehensive testユ喝 and ti血i王唱 suite is provided along 甘i七五 the LAPACK So王もware. HOW TO GET LAPACK The entire LAPACK` package is available via xnetIib and NAG, or 8P声eifxc routines can be obtained via netIib. To see a description, of the coatents of LAPAClく send email to netliib鮎rnl.gov and in the mail message type:缶end index王rom H削巳ism -3- 九州大学大型計算機センター広報 Vol.32 No. 1 1999 解 説 manに続けて各ルーチンの名前を指定することにより,機能・引数などを詞べることができます.な お,ルーチン名は小文字で入力してください. 3.3 WWWブラウザによる検索 netlibの http : //www. netlib ・ org/lapack/ にLAPACKの公式ホームページがあります. ここではマニュアル[2]のHTML版を参腐することができます7.また,個別のソースプログラムの ダウンロード,テクニカル・ノート,並列版・ C版 Fortran 90版LAPACKなど,最新の情報を入 手することができます. LJ色PACK - Linear AIg昏b和PACKage 'pTWM.V/^Kil',冒問 題rPm即1*サォJ!?!H5!!R5! 【相聞) Click品蛇teォee触れumberoface耶¢tothail如rY JLr一レームー・・-′一ヽJdl…ーtJ-一一 LAPACK仰山塔rouOT*Sbr*olvmi野tomeofcimuttsnei甘地さIt-squ:細WIutl帥印加鵬ofat&sbo鵬. elenvaitiaoroblamsandsd'arvaJuetreble鵬The議書Dciぬdmatnr如tonzatJons虹はchol捗%.CRS油Seh叫tenerdi如Sc 毒血oprovitfe或革arVrelit'号ytJclI由nn功urfactonZ等b†椅鞠d堺もTr曲れumbersDens事3nd bphdrrartncesrehsictcdbutn°Indffvtss.ctmfarrunctronafity■d・idcomplexmatri捕 血aidehubteoY的 輸lIran20ofU聯血鵬.亀mil串B加dnf軸9functionalityofsヵ事加froutinesnO(totaledinform*輸rI° rwiciam.plixarefertor貞ゞ担 '胤抜幽息触 Thoon抑;91ォ03lof伽∪籾Kprojectはtomslサthサm由秘仏。王立即土mlU封r=琵追Iitran嘘頗軸もneh的叫トrTd相Or vBc加randparallelproeォ銘8桔OnAォ29machines.Lfl臓CKmfBSPACK耶Lne頗cmnibecausetheirme棚田等Pa的11噂血re 監芯浩一忠恕㌶r冒ぷembyrein漂iよsretw ltfci昌まま空intuisfu!flo昌恕.iてこ theinnermostloops transp。rtsttewayt。ま忠霊綜霊,so霊zei fattestpossiblepe血Trr由れco.LWACKraquir辞thathilh吋opもむixoporalも°栂toair.叫rlmか印サntサdonoサ:h朋 d。:浩蒜恕悪霊*霊謂浩濫蒜woiyhie instead翻oprovidea 岩慧㍑lUtl 'fcweaae,for lie品蒜芯品隷arebase品謂豊盈thecomputationi監琵雷だ訂,瑠謡品賢:LinearAleebraSu e癖!oittheLevel3郎五一一的etof幸pecific>地軸如q抑dl如do欄nOue蜘Bfmtnズmultiplic曲en都d也ssoluも○れd medesiinedattfti恕㌫ 細聯teT稚wtfcmulも如rt肘handsl如hc3脹oofthocaさ即脚tLlimtyoftheLevel3BLftSoper的e帆鉄郎fate(re恥t8n恥 6絹ciencyollmanyhi*h-peiね¢事括.卵eul叫dispecial鞍eo血d岬〆甘血tunr ughtyefficien upACKr。ufc£譜me-specrficI深窓慧㌫濫詣eB慧formany Alth。uth忠恕悪霊温TheBUSenrffe 的馳intho乱輸It碍note聯撫ぜtgpa:血円め串aspeeisiむむ噂輸en°inmosth!fh-pe血rrr肺C8 BUSinwalstig nc芸t。fferany。than蒜濫'tab。n。fthサH.AS欄叩 -butltd如棚細U糊血鵬誠血 LAPACKホームページ(1999年1月現在) Iatex2htmlで機械的に変換したものです. 九州大学大型計算棟センター広報 Vol. 32 No. 1 1999 -4- 行列計算パッケージLAPACK/VPの紹介 4 ドライバルーチン,計算ル-テン一覧 LAPACK/VPで利用できるドライバルーチン,計算ルーチンの一覧です・ 4.1 ドライバルーチン ドライバルーチン(driver routines)は,それぞれが1つの完全な問題を解くルーチンです・各ドライ バルーチンは,ふつう一連の計算ルーチンを呼び出す構造になっています. 連立1次方程式 連立1次方程式のドライバルーチンには,通常の単純ドライバ(simple driver)に加えて,幾つかの機 能を追加したエキスパート・ドライバ(expert drive)があります・エキスパート・ドライバは,条件数 の算定,行列の特異性のチェック,解の反復改良,誤差解析などの機能をサポートします.ただしエキ スパート・ドライバを実行するた糾こは,単純ドライバの約2倍の記憶容量が必要です. 行列の型と格納形式 倍精度 複素数 ドライバ 線形最小二乗問題 単精度 複素数 -5- 倍精度 複素数 九州大学大型計算機センター広報 Vol.32 No. 1 1999 堰 読 ●一般化線形最小二乗問題 ●標準固有値問題,特異値分解 対称固有値問題の単純ドライバルーチンは,固有値すべてと選択された固有ベクトルを計算します・ divide and conquerドライバルーチンtt,単純ドライバに比べ高速な代わりに記憶容量を多く使用する 手法を用いています.エキスパート・ドライバは指定した範囲の固有値と対応する固有ベクトルが計算 できます. 非対称固有値問題のエキスパート・ドライバは単純ドライバルーチンに行列の均衡化,条件数の計算 などの機能が追加されています. 壁 圧 ^J 固 値 固 ●一般化固有値問題,一般化特異値分解 対称またはHermite行列Aと正定値対称行列Bに対してはAz -入Bx, ABx -入a:, BAx - ACを 選択できます. JL州人・、(' -人^,fl一群機センターIiこm Vol.32No.11999 ^9t^^5 行列計算パッケージLAPACK/VPの紹介 4.2 計算ルーチン 計算ルーチンはLU分解,実対称行列の三重対角化など,個々の計算を実行します.ドライバルーチ ンは一連の計算ルーチンを呼び出す構成になっています.利用者はこれらの計算ルーチンを組み合わせ てドライバルーチンでは実行できない処理を実行することができます. "LDL"分解とは,対角行列Dおよび上三角行列Uまたは下三角行列Lを用いて行列をLDLT, UDUT, LDLH, UDUHの形に分解する総称とします.ただし"T"は行列の転置'#'は行列の共役転置をそ れぞれ表します. ●連立1次方程式(1) 行列の型と格納形式 一般行列 一般バンド行列 一般三重対角行列 対称/Hermite 正定値行列 対称/Hermite 正定値行列 (圧縮形式) 対称/Hermite 正定値バンド行列 対称/Hermite 正定値三重対角行列 複素数 部分ピボット選択付きLU分解 分解を使って解を求める 条件数を推定する 解の誤差限界を計算する 分解を使って逆行列を求める 方程式を均衡化する 部分ピボット選択付きLU分解 分解を使って解を求める 条件数を推定する 解の誤差限界を計算する 方程式を均衡化する 部分ピボット選択付きLU分解 分解を使って解を求める 条件数を推定する 解の誤差限界を計算する Cholesky分解 分解を使って解を求める 条件数を推定する 解の誤差限界を計算する 分解を使って逆行列を求める 方程式を均衡化する Cholesky分解 分解を使って解を求める 条件数を推定する 解の誤差限界を計算する 分解を使って逆行列を求める 方程式を均衡化する Cholesky分解 分解を使って解を求める 条件数を推定する 解の誤差限界を計算する 方程式を均衡化する LDL分解 分解を使って解を求める 粂件数を推定する 解の誤差限界を計算する -7- 倍精度 複素数 S GETRF C GETRF DGETRF Z GETRF SGETRS C GETRS DGETRS ZGETRS SGECON CGECON DGECON ZGECON S GERFS C GERFS D GERFS ZGERFS S GETRI CGETRI DGETRI ZGETRI SGEEQU CGEEQU D GEEQU Z GEE QU S GBTRF CGB TRF DGBTRF ZGBTRF S GBTRS CGBTRS D GBTRS Z GBTRS SGBCON CGBCON DGBCON ZGBCON SGBRFS CGBRFS DGBRFS Z GBRFS SGBEQU CGBEQU DGBEQU ZGBEQU S GTTRF C GTTRF D GTTRF Z GTTRF SGTTRS C GTTRS DGTTRS Z GTTRS SGTCON CGTCON DGTCON ZGTCON SGTRFS C GTRFS DGTRFS Z GTRF S SPOTRF CPOTRF DP OTRF ZPOTRF SP OTRS CPOTRS DPOTRS ZPOTRS SPOCON CPOCON DPOCON ZPOCON SPORFS CP ORFS DP ORFS ZPORFS SPOTRI CP OTRI DPOTR工 ZPOTRI SPOEQU CPOEQU DPOEQU ZPOEQU SPPTRF CPP TRF DPPTRF ZPPTRF SPPTRS CPPTRS DPPTRS ZPP TRS SPPCON CPPCON DPPCON ZPPCON SPPRFS CPPRFS DPPRFS ZPPRFS SPPTRI CPPTRI DPPTR工 ZPPTRI SPPEQU CPPEQU DPPEQU ZPPEQU S PB TRF CPB TRF DPBTRF ZPBTRF SPBTRS CPBTRS DPBTRS ZPBTRS SPBCON CPBCON DPBCON ZPBCON SPBRFS CPBRFS DPBRFS ZPBRFS SPBEQU CPBEQU DPBEQU ZPBEQU SPTTRF CP TTRF DPTTRF Z PTTRF S PTTRS CP TTRS DPTTRS ZPTTRS SPTCON CPTCON DPTCON ZPTCO N SPTRFS CPTRFS DPTRFS ZPTRFS 九州大学大型計算機センター広報 Vol.32 No. 1 1999 解 説 連立1次方程式(2) 直交分解と線形最小二乗問題 九州大学夫JFIJ計算機センター広報 Vol.32 No. 1 1999 -8- 行列計算パッケージLAPACK/VPの紹介 ●一般化直交分解と線形最小二乗問題 対称固有値問題 非対称固有値問題 特異値分解 -9- 九州大学大型計算機センター広報 Vol.32 No. 1 1999 解 説 対称正定借一般化固有値問題 一一般化固有値問題 ●一般化特異値分解 ●その他 参考文献 囲VPP700/56利用の手引(第2版),九州大学大型計算機センター1998. [2] Anderson, E., Bai, Z., Bischof, C, Demmel, J., Dongarra, J., Du Croz, J., Greenbaum, A., Hammarling, S., McKenney, A., Ostrouchov, S-, and Sorensen, D.: LAPACK Users Guide, Second Edition, Society for Industrial and Applied Mathematics, Philadelphia, ISBN 0-89871345-5, 1995. (http: //www.netlib. org/lapack/) [3] Anderson, E., Bai, Z., Bischof, C, Demmel, J., Dongarra, J., Du Croz, J., Greenbaum, A., Hammarling, S., McKenney, A., Ostrouchov, S., and Sorensen, D.,小国力訳:行列計算パッ ケージLAPACK利用の手引,丸善ISBN 4-621-04076-6, 1995. 九州大学大型計算機センターIA報 Vol.32 No.1 1999 - 10 ---
© Copyright 2024 ExpyDoc