CUDAプログラムのサンプルとしてDAXPYを作成。DGEMMも作ろうかなぁと思いつつ,あんまり深入りするとCUDAの本になってしまうので自重する。OpenMPもDAXPYの並列化程度にしておいた方が無難かな・・・といろいろ考えて文章は手つかず也。
[進捗報告] 逆べき乗法追加
今週末が大学紀要原稿の締め切り日なのでそのためのプログラムを作成。LAPACK入門の方はべき乗法のプログラムをちょっと弄って逆べき乗法に変更したのみ。明日はCUDAプログラムの解説をちみっとできればいいかな。
[進捗報告] BLAS解説修正,Jacobi反復法,べき乗法追加
BLASの解説を手直しして,Level 1, 2だけで計算できるアルゴリズムを追加。BiCG, BiCGSTAB辺りも言えれておくべきかしらん? 疎行列のところで使いたいしなぁ。
来週からはBLAS Level 3の解説がてら,一生懸命行列積の計算をするなりよ。OpenMPの解説,ここに入れておくべきかしらん? IMKL並列化の効果の話も書かなきゃいかんしなぁ。
・・・どこまで膨れるんだ~。
[進捗報告] SPARK流実装完了,固有値問題コード整理
SPARK流の実装,割とあっさり完成。まぁ一度作ってあるしな。ちょろっと動かしてみたが,やっぱり早いなぁ。しかしステップ幅制御がテキトーすぎるのでrejectが割と頻繁。この辺は動かしながら調整しよう。
固有値問題もコード整理して,非対称行列と対称行列の固有値・固有ベクトル計算完了。とはいえ,Intel Math KernelのC99のdouble complex, MKL_Complex16, magmaDoubleComplexの非互換性についての解説はどうしたもんやらと思案中。も~複素数ったら扱いが杜撰なのかみんなテキトーに実装しすぎだよ全く。大体,magmaDoubleComplexって実部と虚部がx, yってふざけてんのか。
まぁこの辺で第一稿の完成が見えてきたのは喜ばしい。今後は
- 固有値問題,リダクションとQR分解の解説
- 疎行列の解説,BiCG, BiCGSTABの解説
- 斉次線型ODEの解析解計算
- 並列計算(PthreadとOpenMP)の解説
あたりを埋めたら全体を整理して3月中に関係者にチェックを希う予定。
[進捗報告] ODEの解説一応完了,SPARK流実装一応完了
結局,陽的RK,陰的RK+単純反復, +Newton, +簡易Newton, +簡易Newton+Tridiagonalization(SPARK流実装)と,陽的・陰的Euler法まで作ってしまった。アホかワシ。SPARK流実装についてはエラーが出なくなったという段階なので,明日以降デバッグ作業。今週中にまともに動くといいなぁ(希望的観測)。
来週は紀要原稿兼JSIAM発表準備のため,ちと進みが遅くなる。とはいえ,とりあえず何としても固有値計算とcuBLASとMAMGMAの解説は終わらせたい。しかしsparse BLASの話のおさまりが悪くてどうしようか思案中也。密行列だけにしておこうかなぁとも思いつつ,MAGMAに疎行列の反復法まで入っちゃったからなぁ。この辺使ってみたいんだよなぁ。悩ましい也