-
Notifications
You must be signed in to change notification settings - Fork 325
Add integration with Paralight #656
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
base: master
Are you sure you want to change the base?
Conversation
|
I think that it's fair to do this given the presence of a Rayon implementation also (although, IMHO, we shouldn't be including these implementations in this crate…) but I also think that regardless of what is done, any primitives needed to make this work should be added to For example, at one point I was contemplating offering an API that directly provided access to the |
|
I talked about this in person with @gendx at EuroRust. The main issue with the current implementation is that it returns an iterator of A mid-level API that just exposes buckets like #613 might work for |
…(de)allocate the hash table on other threads.
|
With Paralight v0.0.10, it's now possible to define parallel iterators where each bucket produces an Some general remarks:
*Internally, the Paralight execution engine will ensure that each bucket index has been passed once and only once to a call to |
Paralight is a lightweight parallelism library tuned for indexed structures such as slices. Given that the internal representation of hashbrown's hash tables is a slice of buckets (that each optionally contain a value), it's a good fit to integrate with (gendx/paralight#5).
This pull request is here to iterate on the design. As the integration needs access to the raw hash table representation, it's done here in the hashbrown crate (similarly to Rayon's integration).