Skip to content

Losing Alignments Due to Asymmetric Substitution Matrix #2

@esaliya

Description

@esaliya

There are a couple of things that we may need to think in the future due to the S matrix being asymmetric. This is the first issue to think about.

We lose pairs in the resultant matrix because we only compute the top half due to this asymmetry in the resultant ASAt.

  • Each process in the process grid computes their upper halves only. For example Pij and Pji collectively computes all non-zero overlaps of process grid cell ij (or ji).

  • When the matrix is symmetric this works flawlessly because the top half of Pij captures all the non-zero overlaps of the bottom half of Pji, which is not computed by Pji. In the same way, the top half of Pji captures all the non-zero elements of the bottom half of Pij.

  • However, when the matrix is asymmetric the above condition does not hold true anymore. To fix it we can do the following.

    • Each process, Pij, can send the non-zero pair IDs of their bottom halves to Pji using MPI_Isend asynchornously.

    • While they receive these bottom half pair IDs from their partner processes, they can compute alignments for the non-zero elements in their top-halves.

    • Once, the alignments are computed and done for the partner pair IDs, each process can check which of the received pair IDs were NOT in their top-halves. Each process should perform alignments for those pair IDs that were not previously computed from this received set.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions