冬休み中に SDPA 関係で3件の問い合わせが来ていた。
ここでは、Q&Aっぽく2件をまとめてみる。
[Q1] SDPA-M を実行すると Matlab ごとクラッシュする。特に Schur が SPARSE になったときにクラッシュするようである。
[A1] この場合、原因は MUMPS の可能性が高い。
MUMPS は一部がスレッドセーフになっていないようで、マルチスレッド計算をするとクラッシュすることがある。
この場合は、
>>> maxNumCompThreads(1);
としておけば、シングルスレッドになるため、(計算時間はかかるが)計算は続行できる。
[Q2] SDPA の callable library を呼んだときと SDPA のバイナリファイルを読んだときだと、数値結果が若干異なることがある。
[A2] リンクしているライブラリ (BLASや LAPACK, GLIBC など)が異なると、数値誤差の影響が出やすい(入力行列が一次従属など)場合では数値結果にも影響が出くることがある。
たとえば、OpenBLAS でも、最新版を git で取ってきて、それまでの版と比較すると、入力行列が一次従属な問題では数値誤差の影響が表面化しやすい。
今日の作業内容:SDPA 対応 3h
今日のランチ:シッダルータ チキンカレー
明日の予測作業時間:4h
0 件のコメント:
コメントを投稿