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
Migrate components #1966
Migrate components #1966
Conversation
f402153
to
1762853
Compare
1762853
to
c1886da
Compare
typedef server::trigger_migrate_component_action<Component> action_type; | ||
return async<action_type>(naming::get_locality_from_id(to_migrate), | ||
typedef server::perform_migrate_component_action<Component> action_type; | ||
return hpx::detail::async_colocated<action_type>(to_migrate, |
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.
Why don't you use hpx::components::colocated
here?
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.
It's an internal invocation, so I directly call the implementation for the colocated async.
The code currently tries to unpin an already migrated component right after the migration has been completed: https://gist.github.com/sithhell/44bf05eb58c1a9b83eaa |
…as located earlier
- added missing checks for was_migrated - routing of just received parcel is now done with normal priority (if local) - store stripped gids in AGAS was_migrated table - add more tests - flyby changes: -- add optional deadlock detection in spinlock (very crude!) -- minor move optimizations in parcel-port and AGAS -- renamed HPX_THREAD_MINIMAL_DEADLOCK_DETECTION to HPX_HAVE_THREAD_...
- flyby: write error message for failing tests
…nctional now - added more asserts to migration code - diagnostic printouts in migrate_component test
- adding serialization to distribution policies
1e9f04d
to
5671622
Compare
All discussed issues have been addressed. This PR is ready to be merged. |
- implemented segmented iterator for hpx::unordered_map - implemented serialization for std::unordered_map and corresponding test - refactored test for component storage - flyby: renamed partition_vector to partitioned_vector_partition this fixes #1163
- flyby: fixed un-registration of migrated simple components
@sithhell Which of the tests is causing this? |
@hkaiser migrate_component |
@sithhell I understand that migrate_component fails. I meant what sub-test is failing? Is it blowing up always or is it a race? |
For completeness: The eariler post has been deleted because it used an earlier version. However, the problem is still there. Running two localities, one thread per locality. On 02/03/2016 04:19 PM, Hartmut Kaiser wrote:
Seems to blow up always. Looks like I used a earlier version, however, A release build, without address sanitizer, segfaults as well and gives |
There seems to be one leftover problem with caching. when disabling the cache, it works. However, once using more than one thread per locality, the test_migrate_busy_component2 test either hangs (in release):
or prints this output (debug + sanitizer):
|
Disabling caching just causes for more networking to happen as things will never be resolved by the AGAS caches. I think this has no bearing wrt the migration operation itself, just exposes the problem in a different way. |
Which of the localities is failing? the one where the object comes from or the one where it goes to? |
The latest commit makes it work for the one thread per locality case, the more than one thread per locality test is still failing with the same symptoms. |
\o/ The bad news ... the touched migration to storage tests fail now:
|
The assertion you're seeing is the same as reported in #1944. It seems to be unrelated to the migration functionality. By the looks of it, the code which handles sending parcels to gids which are not AGAS cached misses to set the destination locality properly under certain circumstances. |
- this removes the changes to migrate_[to|from]_storage
1c1135a
to
87ad0ff
Compare
This fixes the remaining open issues in #559.
Transparent migration of arbitrary components is fully implemented now - \o/