最近は、HPL コードを掘り下げて、HPL の基礎となる実装メカニズムを理解しようとしています。( http://www.netlib.org/benchmark/hpl/ )
現在、HPL_T_panel 構造体のいくつかのパラメーターについて少し混乱しています。(include/hpl_panel.h)。
A; /* ptr to trailing part of A */
* WORK; /* work space */
* L2; /* ptr to L */
* L1; /* ptr to jb x jb upper block of A */
lda; /* local leading dim of array A */
ldl2; /* local leading dim of array L2 */
いくつかの質問:
「lda」と「ldl2」の意味は何ですか? L2 の先頭の次元と行数の違いは何ですか?
A、L1、L2 の値は? 言い換えれば、パネル分解の各反復後の L、U、およびサブマトリックスの正確なサイズは? 反復中にこれらの値を追跡しようとしましたが、パターンを知ることができません。
たとえば、HPL に次のパラメーターがあるとします。
N 1024 (matrix size)
NB 128 (block size)
PxQ 2x2 (process grid)
(src/pgesv/HPL_pdgesv0.c) を使用した「A の列のループ」では、各プロセスの各反復の A、L1、L2 の値は何ですか? ここで統計分析をしてもらえますか?インデックスや残りのマトリックス サイズなど。
誰か (HPL ソース コードに精通している) から何か提案があれば幸いです。