Skip to content

Assertion in rank_of and data_of fails for submatrix #761

Description

@QingleiCao
  1. in rank_of, because mt and nt are for the submatrix:

    /* Offset by (i,j) to translate (m,n) in the global matrix */
    m += dc->super.i / dc->super.mb;
    n += dc->super.j / dc->super.nb;

    assert( m < dc->super.mt );
    assert( n < dc->super.nt );

This can be solved by changing mt/nt to lmt/lnt.

  1. in data_of, which calls desc->rank_of(desc, m, n) again:
    /* Offset by (i,j) to translate (m,n) in the global matrix */
    m += dc->super.i / dc->super.mb;
    n += dc->super.j / dc->super.nb;

    assert( m < dc->super.mt );
    assert( n < dc->super.nt );

#if defined(DISTRIBUTED)
assert(desc->myrank == desc->rank_of(desc, m, n));
#endif

Not sure yet.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions