diff options
| author | Florian Fischer <florian.fl.fischer@fau.de> | 2019-06-17 14:54:26 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fl.fischer@fau.de> | 2019-06-17 14:54:26 +0200 |
| commit | 0d192f8cf3c21b2382e227fab057dabe16ea5e8b (patch) | |
| tree | d1182f33bd69e72fdde0a4731287f28c318ef109 /src/allocators/all.py | |
| parent | 3988f2e21754208a548725c590fb42e372a32efa (diff) | |
| download | allocbench-0d192f8cf3c21b2382e227fab057dabe16ea5e8b.tar.gz allocbench-0d192f8cf3c21b2382e227fab057dabe16ea5e8b.zip | |
reduce code duplication by giving each known allocator its own class
also move allocator related code to src/allocators
Diffstat (limited to 'src/allocators/all.py')
| -rw-r--r-- | src/allocators/all.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/allocators/all.py b/src/allocators/all.py new file mode 100644 index 0000000..3973c37 --- /dev/null +++ b/src/allocators/all.py @@ -0,0 +1,44 @@ +from src.allocator import Allocator as Alloc +from src.allocator import Allocator_Sources as Alloc_Src + +from src.allocators.glibc import Glibc +from src.allocators.tcmalloc import TCMalloc +from src.allocators.jemalloc import Jemalloc +from src.allocators.hoard import Hoard + +glibc = Glibc("glibc", color="C1") + +glibc_notc = Glibc("glibc-notc", + configure_args="--disable-experimental-malloc", + color="C2") + +glibc_nofs = Glibc("glibc_nofs", + patches=["allocators/glibc_2.28_no_passive_falsesharing.patch"], + color="C3") + +glibc_nofs_fancy = Glibc("glibc_nofs_fancy", + patches=["allocators/glibc_2.28_no_passive_falsesharing_fancy.patch"], + color="C4") + +tcmalloc = TCMalloc("tcmalloc", color="C5") + +tcmalloc_nofs = TCMalloc("tcmalloc_nofs", + patches= ["{patchdir}/tcmalloc_2.7_no_active_falsesharing.patch"], + color="C5") + +jemalloc = Jemalloc("jemalloc", color="C6") + +hoard = Hoard("Hoard", color="C7", patches=["allocators/hoard_make.patch"]) + +mesh = Alloc("Mesh", sources=Alloc_Src("Mesh", + retrieve_cmds=["git clone https://github.com/plasma-umass/Mesh"], + reset_cmds=["git stash"]), + LD_PRELOAD="{srcdir}/libmesh.so", + build_cmds=["cd {srcdir}; git submodule update --init", + "cd {srcdir}; ./configure", + "cd {srcdir}; make -j 4", + "mkdir {dir}"]) + +allocators_to_build = [glibc, glibc_notc, glibc_nofs, glibc_nofs_fancy, tcmalloc, tcmalloc_nofs, jemalloc, hoard, mesh] + +allocators = {a.name: a.build() for a in allocators_to_build} |
