Skip to content

Batching and prefetching #45

@RagnarGrootKoerkamp

Description

@RagnarGrootKoerkamp

The paper writes that the C++ version of AWRY processes batches of 4 queries at a time, and prefetches the memory for the next rank query as soon as possible, and indeed the code seems to do this:

batch processing: https://github.com/TravisWheelerLab/AvxWindowFmIndex/blob/92b849fddaea62a3b6bf47c7ff6db3ac3d896a10/src/AwFmParallelSearch.c#L273
prefetching: https://github.com/TravisWheelerLab/AvxWindowFmIndex/blob/92b849fddaea62a3b6bf47c7ff6db3ac3d896a10/src/AwFmSearch.c#L73

Looking at the Rust implementation, I don't find hits for either batch or prefetch.
Am I correct that these aren't implemented? (I guess that could be the reason for the 50% performance difference with the C++ implementation?)

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