Skip to content

WaveletTree CPU usage #55

@heckendorfc

Description

@heckendorfc

WaveletTree.rangeQuery regularly uses excessive CPU time (10+ cores used when calling with -threads 1), I believe due to JVM overhead in handling the recursion. Is it possible to rewrite this iteratively?

Activity

mvaudel

mvaudel commented on Jan 18, 2022

@mvaudel
Contributor

Hi and thanks for narrowing down the issue this specifically.
We are currently refactoring another section of the code and will look into this issue as soon as we get some bandwidth. I will get back to you as soon as I have looked into it. In the meantime, PRs are most welcome :-)

self-assigned this
on Jan 18, 2022
heckendorfc

heckendorfc commented on Jan 19, 2022

@heckendorfc
Author

I tried rewriting rangeQueryOneValue as an iterative algorithm as a proof of concept since it was already tail call, but it doesn't seem to make much difference on the CPU usage. Maybe the problem is more involved and we just have to live with it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @heckendorfc@mvaudel

      Issue actions

        WaveletTree CPU usage · Issue #55 · CompOmics/compomics-utilities