-
Notifications
You must be signed in to change notification settings - Fork 54
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
Synchronizing CRS format arrays #313
Comments
You'd need to form a different communication pattern (underlying Dist object). It can be done, but is more expensive and isn't something you can do with existing |
Do you mean that it is more expensive than synchronizing an "equivalent" array with a fixed number of degrees of freedom? Would you still recommend this approach in order to store arrays with a varying size? Or do you think that it would be more efficient to have a fixed size array with the maximum number such that the values are 0 where we would like to store nothing (assuming that we can afford in term of memory and that the maximum number of degrees of freedom is not more than twice the minimum for instance)? |
In general, the two-array CRS approach is the most efficient general way to store varying size data. If the variance is less than 2X, using a fixed size could be cheaper, especially for communication, but only profiling can confirm that. |
Instead of one arrays with a varying number of degrees of freedom, it might be equivalent to work with several arrays such that for each them we store data on a different subset of the mesh (each being identified, e.g., using a Mesh::class_sets -> cf. #307). Would such an approach simplify the implementation? Would the performance be good in terms of communication? |
This task is now on the top of our stack and we would like to move forward on it. We already implemented the following
but when it comes to synchronize this data structure we of course cannot call the function |
If the number of degree of freedoms is not the same for all tets, we can use a2ab and ab2b to store it. Can the data stored in ab2b be synchronized? For Read array we can use sync_array to do so. But what about varying size arrays?
The text was updated successfully, but these errors were encountered: