Skip to content
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

use mallocMC for species storage #640

Merged

Conversation

psychocoderHPC
Copy link
Member

This pull request use mallocMC to manage the shared species memory.

  • add mallocMC to CMakeLists.txt
  • add PointerWrapper class Pointer<>
  • delete old Heap- and RingBuffer/Boxes
  • remove the possibility that species device memory can directly copied to host memory

Tests:

  • KHI heating comparison to current dev
  • add more documentation

Do not merge before #717

@psychocoderHPC psychocoderHPC added this to the Open Beta milestone Jan 21, 2015
@psychocoderHPC psychocoderHPC added component: core in PIConGPU (core application) component: PMacc in PMacc feature refactoring code change to improve performance or to unify a concept but does not change public API labels Jan 21, 2015
@ax3l ax3l removed the refactoring code change to improve performance or to unify a concept but does not change public API label Jan 21, 2015
# Find mallocMC
###############################################################################

find_package(mallocMC 2.0.1 REQUIRED)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for now: +EXACT due to upcoming interface changes in mallocMC 2.1.0

@@ -253,6 +252,12 @@ if( (Boost_VERSION EQUAL 105500) AND
"${CUDA_NVCC_FLAGS} \"-DBOOST_NOINLINE=__attribute__((noinline))\" ")
endif()

################################################################################
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok for now, but as talked offline: we will simply add a include in the final version to reduce install dependencies.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

opened #717

@ax3l
Copy link
Member

ax3l commented Feb 16, 2015

looks good 👍

@psychocoderHPC
Copy link
Member Author

This version needs a small refactoring against the current mallocMC release.
I am back tomorrow and will do this.

@ax3l
Copy link
Member

ax3l commented Feb 16, 2015

fantastico! ✨

@psychocoderHPC
Copy link
Member Author

After our compile suite is updated it is ready to merge.

@psychocoderHPC
Copy link
Member Author

electron/positron heating on 16gpus
heating

@ax3l
Copy link
Member

ax3l commented Feb 17, 2015

After our compile suite is updated it is ready to merge.

I will update it asap - nevertheless, I think we should

  • import mallocMC via subtree
    before we can merge :)

@psychocoderHPC
Copy link
Member Author

rebased against #717

- add `mallocMC` to CMake
- add previues and next pointer to the `Frame` class
- add PointerWrapper class `Pointer<>`
delete not maintained classes
- add documentation
- CMakeLists.txt: search for exact `mallocMC` version
- ParticlesFunctors.hpp: fix hard coded `FrameType`
add threadfence_block() after one thread cleared all `multi masks`.
- change github annotations
- change pagesize to 2MiB
- set reset free pages to `true`
@@ -39,7 +39,6 @@ set(CMAKE_PREFIX_PATH "/usr/lib/x86_64-linux-gnu/" "$ENV{MPI_ROOT}"
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
${CMAKE_CURRENT_SOURCE_DIR}/../../thirdParty/cmake-modules/)


Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pls revert the changes in this file

@psychocoderHPC psychocoderHPC force-pushed the topic-useMallocMC-rb2 branch 2 times, most recently from 90ef4d1 to 8e088ea Compare February 20, 2015 14:35
- ParticleBox:
  - remove host modifier for all methods
  - use mallocMC::malloc and mallocMC::free
@ax3l
Copy link
Member

ax3l commented Feb 20, 2015

It would be cool if we could add a plain benchmark "before" - "after" mallocMC (without plugins) to just document the performance stayed the same.
(last time we did that check we found some bugs that were then fixed in mallocMC)

@psychocoderHPC
Copy link
Member Author

Runtime KHI 3d Esirkepov [in seconds] on 16 K80 GPUs 10k simulation steps:

init simulation
dev 26 1575
branch 10 1569

@ax3l
Copy link
Member

ax3l commented Feb 20, 2015

well done, good work! 👍

ax3l added a commit that referenced this pull request Feb 20, 2015
@ax3l ax3l merged commit 699c983 into ComputationalRadiationPhysics:dev Feb 20, 2015
@PrometheusPi
Copy link
Member

👍 cool

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: core in PIConGPU (core application) component: PMacc in PMacc
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants