RokkoWrapperSparseSolvers - t-sakashita/rokko GitHub Wiki

疎行列のラッパー

SLEPc

  • MatSetValues:インデックスは全て、グローバル。 自プロセスが持っていない行を指定した場合、自動でMPI通信により、担当しているプロセスで格納されるようだ。
  • INSERT_VALUESを用いると、complete時に既にある値に足し込まれる。
  • ADD_VALUESを使うと、格納した行列の値がおかしくなる。ADD_VALUESは、既に格納されている値にしか使えないようだ。
  • 自プロセスが持っていない行が与えられたとき、担当するプロセスに自動で通信されるようだ。

http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatSetValues.html

Anasazi

InsertGlobalValuesInsertGlobalValues

  • 自プロセスが持っていない行が与えられたとき無視される。通信はされない。
  • complete実行時に既にある値に足し込まれる。
    • InsertGlobalValues : 引数rowとcolsのインデックスがローカル
    • InsertMyValues : 引数rowとcolsのインデックスがグローバル

https://trilinos.org/docs/dev/packages/epetra/doc/html/classEpetra__CrsMatrix.html

インターフェースの設計

  • 成分を上書きするバージョンは、replace関数として実装するか?