コレスキー分解によるフラクタル

このディレクトリー下には、書籍の15 章で紹介されるコレスキー分解のアルゴリズム実装例が含まれます。

BLAS の前提条件

このサンプルコードは、インテル・マス・カーネル・ライブラリー(MKL)のBLASの利用を前提としています。コンパイラーが、MKLのヘッダーとライブラリーを検出できるよう、インストール先のパスを設定する必要があります。

MKL 以外の BLAS を利用する場合、cilkplus/blas_leaf.h ファイルを以下のように変更してください:

  1. #include "mkl.h" 行を、適切なBLASのヘッダーに置き換えます。
  2. 利用する BLAS が通常の C インターフェースを持っていない場合、ラッパーを修正する必要があります。

一覧

書籍中のリスト番号

ファイル

説明

追加

cilkplus/blas_leaf.h

C++ から BLAS ルーチンを簡単に呼び出すため、ラッパーを用意しました。書籍の15.1 節に leaf_trsm 向けのサンプルがあります

追加

cilkplus/gemm_cilk.h

再帰的な行列乗算。これは、CIlk Plus の実際のコードで、リスト8.8 の疑似コードに対応しています。書籍の15.1節では、インターフェースについて述べています

15.1

cilkplus/potrf_cilk.h

再帰のコレスキー分解

15.2

cilkplus/trsm_cilk.h

Cilk Plus による並列三角行列解決

15.3

cilkplus/syrk_cilk.h

Cilk Plus による並列対象ランクの更新

追加

common/FortranArray.h

インデックスを1から開始して、Fortran 形式の列優先レイアウトで配列を操作するクラス

追加

common/test_cholesky.h

時間計測とコレスキー分解の結果をチェックする実行用コード

 

戻る