-
Notifications
You must be signed in to change notification settings - Fork 44
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
Make segment IDs unique again! #257
Conversation
…team ID Add routines for querying the flags of a segment
We have all the flags, we have the best flags! |
Let's make DART segment IDs great again! |
Hmm...why not following the suggestion by @fuerlinger. If OK for you I will implement it and see if it is feasible. |
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.
I hear ya, sorry! It worked for all my use cases but it's not practicable in general.
@rkowalewski You're right, I forgot about this proposal. It's easily done using bitfields. Should we still store the flags centrally and only use the |
@fmoessbauer I am stuck with the failing HDF5 test cases. After adding typesafe checks I get errors like the following:
This seems to me that there is a loss in precision somewhere. The way I understand the HDF5 implementation is that it reads data directly into local memory so I have no idea where things go wrong and why these test fail only in this branch. Maybe you have an idea what's going on there? |
@devreal We should store it both in the segment and gptr. You are right. And yes, with bitfields it is very convenient. |
…ry tree and index into global array
@devreal It seems like our HDF5 adapter is broken, as the reported failures are not only precision problems. Will have a look at that. Edit: I am not too happy with changes in the HDF5 adapter (DASH side), as this will lead to massive conflicts with the new implementation (almost from scratch) in branch |
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.
Currently building with DART logging enabled is not possible, as log statements are not adapted to new interface.
@fmoessbauer That's one of the reasons why I reverted your merge. The integration of log levels as proposed in #247 is not complete, the logging run-time configuration does not comply to the DART config interface and de-centralizes parsing of user settings, etc. |
@fmoessbauer Building with debug output should be fixed now, sorry for that. We can defer this PR until #252 has been approved, working on it. |
@devreal I tried to merge with current development but the conflicts in the DART part are not trivial to merge. Please have a look at them. As the new HDF5 adapter is already merged in development, I guess that the HDF5 bugs will not appear anymore. If still, let me know. I will fix them as soon as possible so we can review and merge this PR. |
@fmoessbauer Thanks for the heads-up. I finished merging but I now see a |
I think I am finished merging the current development in this trunk, tests passed locally. the TransformTest failures I mentioned earlier came from an older version of MPI (1.10.2), which seems to have problems with atomic operations. Please start your review at your convenience. It ended up being quite a big chunk, sorry for that. |
From my side it looks good so far, but someone else who is more familiar with DART should review too. |
@devreal Ready to merge! Please resolve the conflicts and merge. |
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.
Great work! Thanks for this.
Thanks for your positive reviews. I merged the conflicts. However, with the recent changes from #282 I see multiple threads hang in the ThreadSafety tests in
I seem to remember a discussion about this kind of hangs but cannot straight remember the potential solution. I gotta do some debugging. However, I assume that this is not related with the changes in this branch. Not sure I can spend much time on the weekend on this, though. EDIT: For some reason the tests passed here. I ran my tests with OpenMPI 1.10.5 with |
@devreal So it passes in CI but currently still fails on your local machine? Please attach details on your build environment (esp. compiler versions), I will try to reproduce this. |
I just tried again with MPICH and the tests pass with shared memory windows disabled. I think we can go ahead and merge this PR, I will open an issue with the details of the hang. Let's just wait for the latest round of CI to pass... |
Store the team ID in the gptr and give every team it's own segment namespace. Segments can thus be uniquely identified on all units in the team that allocated the segment.
Flags are now stored per segment, accessed through
dart_gptr_getflags
anddart_gptr_setflags
.Points left to do:
Tests passed locally but this is a crucial piece of code, so please review carefully.
Addresses #221