Skip to content

Assertion in rank_of and data_of fails for submatrix #761

@QingleiCao

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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions