-
Notifications
You must be signed in to change notification settings - Fork 4
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
Create a pool wrapper of DynamicSparseNumberArray #29
Conversation
Running:
I get these profiles (click-in to see closely). The timings are
PoolDynamicSparseNumberArrayDynamicSparseNumberArraySemiDynamicSparseNumberArray |
It looks like smart pointer counting is the primary expense. Using this becomes trickier if we are running with multithreading. Just doing a |
Hmm actually running the same test with the same refinement as above with |
Anyway maybe @permcody @friedmud @roystgnr and I should meet and talk about whether we want to try and drill down on this PR more. I think I'd like to merge something, but what that is is up for discussion. (And then what the end result is will determine whether we push this downstream at all. As it stands now, we would not push this downstream) |
@roystgnr what are your thoughts on this PR? |
For merging? IMHO adding this would be something in between a red herring and an outright trap for users; if we're 120% slower than non-pool DSNA then there's nothing to justify the extra complication. For improvement? I'd try, instead of having a PDSNA that pulls from a pool-of-DSNA and accesses the memory via pointers, have a PDSNA that pulls from a pool-of-vector and a pool-of-vector and accesses the memory by std::move'ing it directly into (and out from, when returning it to the pool) its own |
Yea I think |
11.88-12.02% in Or ... perhaps when we first find ourselves having to The 15.48-15.84% in
Sad, but "we tried X and it didn't work" is a useful test outcome too. |
So I did some work on reserving up front for what the maximum sparsity pattern size might be in roystgnr#1 (comment) and at that time, it was slower than vanilla |
One of our tasks for NEAMS this year is to test pool-based AD