-
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
[WIP] Finish Global Dynamic Memory and Allocator Concepts #310
Merged
Merged
Changes from 47 commits
Commits
Show all changes
57 commits
Select commit
Hold shift + click to select a range
b686a7f
introducted local memory spaces
95dd2eb
Introducing allocator traits [no ci]
fuchsto 4b0314c
Merge branch 'development' of github.com:dash-project/dash into feat-…
fuchsto 6095f1c
Documentation of allocator- and memory space concepts, intermediate […
fuchsto 286fa93
Documentation of allocator- and memory space concepts, intermediate […
fuchsto 1858ddb
Merge branch 'development' into feat-303-glob-dyn-alloc
fuchsto 48e6d01
Merge remote-tracking branch 'origin/development' into feat-umap-rede…
d663220
added Hash Policy for UnorderedMap
8e99f4a
added a simple memory pool for efficient allocation and deallocation
d6978c6
fixed includes after moving GlobDynamicMem
9badabc
added a small unit test for SimpleMemoryPool
fc7bb81
Merge remote-tracking branch 'origin/feat-303-glob-dyn-alloc' into fe…
3bdc29f
Merge branch 'development' into feat-303-glob-dyn-alloc
fuchsto be9fc50
added documentation for SimpleMemoryPool
a5560e0
Merge remote-tracking branch 'origin/feat-303-glob-dyn-alloc' into fe…
78740c5
introducing scoped local and global memory allocators
1f555c1
temporarily disable unit tests
77759eb
integrate Memory Spaces Concept in Dynmic Allocator
35849ee
Merge branch 'development' into feat-303-glob-dyn-alloc
fuchsto ad1930b
integrated allocator traits and memory spaces
eb7f671
Merge remote-tracking branch 'origin/feat-303-glob-dyn-alloc' into fe…
e7b9d14
Merge branch 'development' into feat-303-glob-dyn-alloc
fuchsto bf55465
Merge branch 'feat-globptr' of github.com:dash-project/dash into feat…
fuchsto 207dd98
Merge branch 'feat-303-glob-dyn-alloc' of github.com:dash-project/das…
fuchsto 7d1de17
STL-compliant definition of MemorySpace, added documentation and notes
fuchsto 8c1fc03
Make Allocators aware of the underlying memory spaces
14b7046
Merge branch 'development' into feat-303-glob-dyn-alloc
fuchsto 65960db
Merge branch 'feat-umap-redesign' into feat-303-glob-dyn-alloc
5654ea9
Merge remote-tracking branch 'origin/feat-303-glob-dyn-alloc' into fe…
5ac9da7
Fix as reported by Clang
085a1b3
Fixes for clang-5
fuchsto 8959212
Merge remote-tracking branch 'origin/feat-303-glob-dyn-alloc' into fe…
94b9314
Introduced dash::max_align_t
fuchsto a9d71b2
Merge branch 'development' into feat-303-glob-dyn-alloc
fuchsto 288ab7f
Merge branch 'development' of github.com:dash-project/dash into feat-…
fuchsto 3c9b21c
Merge branch 'feat-303-glob-dyn-alloc' of github.com:dash-project/das…
fuchsto 7a3181a
Merge branch 'development' into feat-303-glob-dyn-alloc
fuchsto 6ffe94f
Merge branch 'development' into feat-303-glob-dyn-alloc
fuchsto c893c2c
Merge branch 'development' into feat-303-glob-dyn-alloc
fuchsto 379eb3c
Reduce communication overhead in GlobHeapMem
673c8a1
Merge branch 'feat-globptr' into feat-303-glob-dyn-globptr-alloc
f83955c
Minor fixes
57ab07b
minor fixes in the allocators
c611916
Merge remote-tracking branch 'origin/development' into feat-303-glob-…
6cd0184
fixed resize of attached memory chunks
14f809d
fixed GlobalHeapMemTest
1ffd812
minor changes
a3b6dd0
Merge branch 'development' into feat-303-glob-dyn-alloc
fuchsto c48b280
addresses review comments
833e114
Merge branch 'development' into feat-303-glob-dyn-alloc
fuchsto 2006dab
Merge branch 'development' into feat-303-glob-dyn-alloc
fuchsto 6c08616
Merge branch 'development' into feat-303-glob-dyn-alloc
fuchsto 31dac7d
Merge branch 'development' into feat-303-glob-dyn-alloc
fuchsto 29c12bf
Merge remote-tracking branch 'origin/development' into feat-303-glob-…
0ff1cbe
Merge remote-tracking branch 'origin/development' into feat-303-glob-…
9f79019
Memory concept: use only local memory domain
2afc898
symmtric allocator: use dynamic windows
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
#ifndef DASH__ALLOCATOR__ALLOCATOR_TRAITS_H__INCLUDED | ||
#define DASH__ALLOCATOR__ALLOCATOR_TRAITS_H__INCLUDED | ||
|
||
#include <dash/memory/MemorySpace.h> | ||
|
||
#include <memory> | ||
|
||
namespace dash { | ||
|
||
struct collective_allocator_tag { | ||
}; | ||
|
||
struct noncollective_allocator_tag { | ||
}; | ||
|
||
template <class Allocator> | ||
struct allocator_traits { | ||
|
||
typedef Allocator allocator_type; | ||
|
||
typedef typename allocator_type::allocator_category allocator_category; | ||
typedef typename allocator_type::local_pointer local_pointer; | ||
|
||
// | ||
typedef typename allocator_type::value_type value_type; | ||
typedef typename allocator_type::pointer pointer; | ||
|
||
/* | ||
typedef | ||
typename dash::pointer_traits<pointer>::template rebind<const value_type> | ||
const_pointer; | ||
typedef typename dash::pointer_traits<pointer>::template rebind<void> | ||
void_pointer; | ||
typedef typename dash::pointer_traits<pointer>::template rebind<const void> | ||
const_void_pointer; | ||
*/ | ||
|
||
typedef typename allocator_type::const_pointer const_pointer; | ||
typedef typename allocator_type::void_pointer void_pointer; | ||
typedef typename allocator_type::const_void_pointer const_void_pointer; | ||
|
||
typedef typename allocator_type::difference_type difference_type; | ||
typedef typename allocator_type::size_type size_type; | ||
|
||
/* | ||
typedef | ||
typename dash::pointer_traits<pointer>::difference_type difference_type; | ||
typedef typename std::make_unsigned<difference_type>::type size_type; | ||
*/ | ||
|
||
template <class U> | ||
using rebind_alloc = typename allocator_type::template rebind<U>::other; | ||
|
||
template <class U> | ||
using rebind_traits = | ||
dash::allocator_traits<rebind_alloc<U>>; | ||
|
||
|
||
static pointer allocate(allocator_type& a, size_type n) | ||
{ return a.allocate(n); } | ||
|
||
static void deallocate(allocator_type& a, pointer p, size_type n) | ||
{ a.deallocate(p, n); } | ||
|
||
}; | ||
|
||
} // namespace dash | ||
|
||
#endif // DASH__ALLOCATOR__ALLOCATOR_TRAITS_H__INCLUDED |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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'm not happy with having additional C++ code in DART. Maybe implement these operators somewhere in DASH, potentially in a header wrapping
dart_globmem.h
.