-
Notifications
You must be signed in to change notification settings - Fork 10
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
Add tuple_vector
, particle_traits
and views::all
interface
#6
Conversation
Results updated after b16899e.
|
Looks good to start with? @camistolo @hidmic |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very interesting work and outcome @nahueespinosa. I left some questions and comments.
This will make adding new properties less error prone, and it also makes the implementation more consistent.
It turns out that setting a constant value is not a fair comparison.
791cf67
to
482f6c5
Compare
08cca1a
to
79d4c04
Compare
tuple_vector
and views::all
interface
79d4c04
to
1ce14cc
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nahueespinosa superb!
446b126
to
10d1125
Compare
The benchmark and tests pass though...
... with an extra variadic template parameter.
0be4f8c
to
f8fc51f
Compare
tuple_vector
and views::all
interfacetuple_vector
, particle_traits
and views::all
interface
This patch adds an implementation for two particle storage policies:
StructureOfArrays
andArrayOfStructures
.It also adds a benchmark for the two most common use cases:
After compilation, the benchmark can be run with the following command:
Example results from my machine:
From the results, we can see that this abstraction adds no overhead compared to the baseline implementation of both policies (without using iterators and STL algorithms). It's interesting to note that SoA already shows great performance when updating particle properties, but this naive population method is not the best when we have to maintain multiple containers.
Closes #4.