Skip to content

speeding up deep graphs #2

Description

@ekg

On deep graphs (2k-fold) I'm seeing gfaffix taking quite a bit of time. It's essentially single threaded, right? Is there a possible way to adapt it to operate in parallel?

Activity

  1. danydoerr commented on May 18, 2022

    @danydoerr
    Member

    There is potential for speedup by multithreading parts of GFAffix, especially if the bottle neck is the graph traversal. I'd be interested in knowing which step in the algorithm affects the running time on these deep graphs. The graph traversal can be parallelized, but it's not embarrassingly parallelizable, as the graph editing (which is intertwined in the graph traversal) can only be done safely in a single thread.

  2. natir commented on May 19, 2022

    @natir
    Contributor

    If you give me some sample dataset I can try to perform runtime analysis and try to improve running time by parallelized or not.

  3. danydoerr commented on May 19, 2022

    @danydoerr
    Member

    @ekg do you have such a "deep graph" handy?

  4. natir commented on May 19, 2022

    @natir
    Contributor

    Or just smaller but similar graph.

  5. ekg commented on May 19, 2022

    @ekg
    Author
  6. danydoerr commented on May 19, 2022

    @danydoerr
    Member

    Do these deep graphs have a particular high node degree, or is the number of nodes exceptionally high?

  7. ekg commented on May 19, 2022

    @ekg
    Author
  8. danydoerr commented on May 19, 2022

    @danydoerr
    Member

    GFAffix should scale linearly with path depth, overall this shouldn't dominate the runtime. But node degree is certainly a bottle neck.

  9. natir commented on May 19, 2022

    @natir
    Contributor

    @ekg Could you give me advise how to build a similar graph, type of data, pipeline, tools, etc…

  10. ekg commented on Jun 8, 2022

    @ekg
    Author

    @natir sorry to take a while here. I may need to share this somehow, but the graph is rather large and will take 4 days to build if you do so from scratch. I'll see if I can get a simpler test case together.

  11. danydoerr commented on Mar 24, 2023

    @danydoerr
    Member

    @ekg Just so you know that your issue is not forgotten: I have a solution for parallelizing GFAffix and will work on this sometime soonish.

  12. AndreaGuarracino commented on Dec 19, 2024

    @AndreaGuarracino

    @danydoerr any updates on the parallelization?

  13. danydoerr commented on Dec 20, 2024

    @danydoerr
    Member

    @AndreaGuarracino thanks for asking. I'm preparing a release that should be out in the next few days. Do you want to have already a binary to test on? I'm also changing the cli...

  14. AndreaGuarracino commented on Dec 20, 2024

    @AndreaGuarracino
  15. danydoerr commented on Dec 20, 2024

    @danydoerr
    Member
  16. AndreaGuarracino commented on Dec 20, 2024

    @AndreaGuarracino

    Thx! Now I've noticed your refined_deduplication branch!

    Looks extremely great. With 1 thread it is already a bit faster than the current main branch. And it is also slimmer in memory.

  17. danydoerr commented on Dec 20, 2024

    @danydoerr
    Member
  18. danydoerr commented on Dec 21, 2024

    @danydoerr
    Member

    @AndreaGuarracino do you have ungfaffixed graphs of the new HPRC assemblies that I can test on?

  19. AndreaGuarracino commented on Dec 21, 2024

    @AndreaGuarracino
  20. danydoerr commented on Jan 4, 2025

    @danydoerr
    Member

    New version is released now. It still requires improvement in speed and memory usage for these large graphs. The bottleneck is now only the i/o part of gfaffix, and I already have some concrete ideas how to improve it. I'll leave this issue open for now.

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

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