-
-
Notifications
You must be signed in to change notification settings - Fork 439
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
Relocation algorithms Clean #6314
Relocation algorithms Clean #6314
Conversation
Can one of the admins verify this patch? |
add to whitelist |
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.
We do have a facility that decides whether copy/move should use memcpy/memmove. Not sure if that's of use for you in this context (see: https://github.com/STEllAR-GROUP/hpx/blob/master/libs/core/algorithms/include/hpx/parallel/util/transfer.hpp).
libs/core/type_support/include/hpx/type_support/uninitialized_relocate.hpp
Outdated
Show resolved
Hide resolved
libs/core/type_support/include/hpx/type_support/uninitialized_relocate.hpp
Outdated
Show resolved
Hide resolved
libs/core/type_support/include/hpx/type_support/uninitialized_relocate.hpp
Outdated
Show resolved
Hide resolved
libs/core/type_support/include/hpx/type_support/uninitialized_relocate.hpp
Outdated
Show resolved
Hide resolved
Thanks for reviewing. I think the end goal is indeed to integrate relocation into transfer. In this PR I'm laying the groundwork by incorporating as many HPX facilities as possible into the conventional version. |
@Pansysk75 Is jenkins/lsu failing a known issue? I know that boost has not been "loadable" on Rostam for a while now and we rather have to access it directly from
|
|
I am not sure how I should interpret |
@isidorostsa You can to the Artifacts tab and download the html report file
FYI boost can be loaded on Rostam, you just have to load a compiler first (that's how it behaves for me at least, check out |
Ohh thanks, looks like a line was too many characters. I may have found the culprit... hpx::relocate_at(ptr1, ptr2);
// count = 1 + 0 (relocation on trivially relocatable objects does not trigger move constructors
// or destructors); no object is destroyed or created
HPX_TEST(trivially_relocatable_struct::count == 1); |
…x_fork into relocate_algorithms_clean
Performance test reportHPX PerformanceComparison
Info
Comparison
Info
Comparison
Info
Explanation of Symbols
|
libs/core/algorithms/include/hpx/parallel/algorithms/uninitialized_relocate.hpp
Show resolved
Hide resolved
libs/core/algorithms/include/hpx/parallel/algorithms/uninitialized_relocate.hpp
Show resolved
Hide resolved
Closed in favor of #6344 |
6344: uninitialized_relocate w/ type_support primitive r=hkaiser a=isidorostsa This PR replaces the `type_support::uninitialized_relocate` with a primitive version for uninitialized relocation, named `uninitialized_relocate_n_primitive`. This is used by the parallel and sequenced versions of `algorithms::uninitialized_relocate`. In contrast to the previous attempt of implementing the relocation functions, #6314, this does not place the primitive in `transfer.hpp`, which is in the `algorithms` module, nor does it modify `loop.hpp` to add the specific exception handling method required by `uninitialized_relocate`. The goal of keeping a primitive in type support, which is relatively low level in terms of dependencies, is to use it in the higher level `small_vector` and other data structures. 6348: Adding --exclusive to launching tests on rostam r=hkaiser a=hkaiser 6349: Moving hpx::threads::run_as_xxx to namespace hpx r=hkaiser a=hkaiser - run_as_os_thread - run_as_hpx_thread Co-authored-by: isidorostsa <tsa.isidoros@gmail.com> Co-authored-by: Hartmut Kaiser <hartmut.kaiser@gmail.com>
This is a reiteration of isidorostsa#2 which unfortunately got tangled up due to some mishandling of versioning on my end. Feedback from the original PR, specifically Arthur's comments, has been considered and implemented in this iteration.
Also, tests that are expected to fail to compile have been implemented.
The original pr's description:
This is a starting point for the implementation of the P1144 relocate_at and uninitialized_relocate algorithms for HPX. They will later be used as base primitives for parallelized versions.