Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Structural Select isn't very memory efficient on full, iso-valued objects #138

Open
eriknw opened this issue Apr 24, 2022 · 1 comment
Open
Labels
performance enhancement GraphBLAS is working but could be faster.

Comments

@eriknw
Copy link
Contributor

eriknw commented Apr 24, 2022

I would expect some select operations to be more memory efficient then they currently are.

Here are a couple examples where I get OutOfMemory error:

  • Large, full iso-valued Matrix as input and using a mask with few elements (i.e., whose indices comfortably fit in memory); for example, when selecting with TRIL.
  • Large, full iso-valued Vector as input with select operator "ROWLE" with small thunk value (i.e., final indices comfortably fit in memory).

I stumbled upon the first one when writing an algorithm. The second one was simply exploration and not important to me.

@DrTimothyAldenDavis
Copy link
Owner

My GrB_select method currently does the select as T = select(A,...), which does not exploit the mask, followed by C=T. That's why you're seeing the out-of-memory error. T is very large and is explicitly constructed. I realize that's not optimal. I have this marked as a "TODO":

// TODO: GB_selector does not exploit the mask.

It's on my radar to speed up GrB_select when a sparse mask is present.

@DrTimothyAldenDavis DrTimothyAldenDavis added the performance enhancement GraphBLAS is working but could be faster. label Apr 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance enhancement GraphBLAS is working but could be faster.
Projects
None yet
Development

No branches or pull requests

2 participants