[進捗報告] SPARK流実装完了,固有値問題コード整理

 SPARK流の実装,割とあっさり完成。まぁ一度作ってあるしな。ちょろっと動かしてみたが,やっぱり早いなぁ。しかしステップ幅制御がテキトーすぎるのでrejectが割と頻繁。この辺は動かしながら調整しよう。

 固有値問題もコード整理して,非対称行列と対称行列の固有値・固有ベクトル計算完了。とはいえ,Intel Math KernelのC99のdouble complex, MKL_Complex16, magmaDoubleComplexの非互換性についての解説はどうしたもんやらと思案中。も~複素数ったら扱いが杜撰なのかみんなテキトーに実装しすぎだよ全く。大体,magmaDoubleComplexって実部と虚部がx, yってふざけてんのか。

 まぁこの辺で第一稿の完成が見えてきたのは喜ばしい。今後は

  • 固有値問題,リダクションとQR分解の解説
  • 疎行列の解説,BiCG, BiCGSTABの解説
  • 斉次線型ODEの解析解計算
  • 並列計算(PthreadとOpenMP)の解説

あたりを埋めたら全体を整理して3月中に関係者にチェックを希う予定。

[進捗報告] Newton法, 簡易Newton法完了

 一応陰的RK法の3バージョン(単純反復,Newton, 簡易Newton)はでけた。係数はRow MajorなのにJacobi行列はColumn Majorってのは変態かしらん? でもTestsetのFortranルーチンをそのまんま使おうとするとColumn Majorの方がいいのよね。cuBLASにも対応楽だし。

 つーことで,次は並列化→GPU化という段階。さて明日にはできるかしらん・・・。

 ところでRow majorは「行方向格納」,Column majorは「列方向格納」って訳語を作ったけど,もうちっとマシな言葉にならないかしらん。

LAPACK入門(仮)参照URL一覧

外部リンク

T.Kouyaメモ

[進捗報告] ゴール設定

 最終ゴールはODEってことは決めてあるのだが,斉次線型どまりにするか,陰的RK法まで踏み込むか,まだ迷ってたりする。
 とりあえず,陰的RKを手直しすることで作業を開始しようと思ったところで終電一本前の時間になっておしまい。大丈夫か最初からこんなんで・・・。

 ちなみに,LAPACK入門にくっつける予定だった「Scilabによる線型代数入門」は自分の職場で使用するテキストとして再構成し直して一応完成。線型差分方程式の解説付きだが,さてそこまで進むかな? こっちも姉妹編ってことで公開しようかしらん。

進捗報告するぞ宣言

 つーことで,「LAPACK入門(仮)」は捗々しい進展を見ていないのである。理由は簡単で,一重にワシの見通しの甘さである。最初は書き溜めてきた自分のプログラムを整理すればすぐにできるさと高をくくっていたのだが,テキストにするとなると統一的な書き方をせねばならず,できうる限り正確な関数の使い方を心がける必要もあり,とても研究用に作ってきたドガチャカなプログラムをそのまま使うわけにはいかない。テキストなんだから,このルーチンもあのルーチンも解説を・・・で,際限がないのである。まぁ最終的には疲れ果てたところで打ち止めになる訳だが,まだそこまで突き詰めて作っていないということなのである。
 かてて加えて,解説しようとしていたLAPACKが昨年11月に3.5.0になるし,MAGMAは1.6.0になるし,あまつさえCUDAも7.0RCが出てきて,最後の締めにとっておいた非線型問題向けのプログラム,Newton法とODE Solverも含まれているというcuSOLVEが入っているというではないか(RCにはcuSOLVEの散布プルが見当たらないな,今のところ)。まぁいつまでも最新版を追いかけるわけにもいかないのだが,できうる限り新しいもの,特にLAPACK, BLASに絡むものは抑えておきたい。
 そんなわけでダラダラと最初の目標だった昨年末には到底仕上がらずに1章のみ下書きができただけ。年明けになればすらすら進むかと思ったら卒研だの自由制作だのとタダでさえ時間がないのに(Twitterは別勘定なのだ)じっくりプログラムと構成に向き合う時間が取れず,とうとう1月も終わろうとしているのである。

 んで,これ以上〆切を伸ばしてくださいという泣きごとメールをM出版のFさんにお送りするのが心苦しくなったので,「進展状況は逐次ここに書くから心配ならチェックして~」ということになった。ちょうどBlog更新が滞っていたところだし勿怪の幸い。なるべくチマチマとできたところをここに書くことにしたい。つーか,こうして公開の場で宣言しておかないと怠惰なワシはまたTwitterにかまけて何もしなくなるかもしれないのである。

 一応,今のところの縛りとしては

  1. 平日必ずちみっとはプログラム開発か本文執筆を進めること。
  2. ちみっとでも進んだからそのことをここに書くこと。

としたい。つまりは来週月曜日からはしっかり進めるということなのである。

 頑張りますのでしばしお付き合い下さいまし。

以下課題メモ

  • magma_dgesvがちっとも早くない件
  • Matrix Marketから行列データを読みこんで条件数を出すプログラムの作成
  • 非対称実行列の固有値・固有ベクトルを求めるプログラムの整理
  • spBLASってまだ実用性あんのか?な件
  • cuSOLVE探索の件