Changeset 29d8c02 for doc/theses/mubeen_zulfiqar_MMath/performance.tex
- Timestamp:
- May 20, 2022, 10:36:32 AM (2 years ago)
- Branches:
- ADT, ast-experimental, master, pthread-emulation, qualifiedEnum
- Children:
- 74ec742
- Parents:
- d8075d28
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/mubeen_zulfiqar_MMath/performance.tex
rd8075d28 r29d8c02 3 3 4 4 This chapter uses the micro-benchmarks from \VRef[Chapter]{s:Benchmarks} to test a number of current memory allocators, including llheap. 5 The goal is to see if llheap is competitive with the current bestmemory allocators.5 The goal is to see if llheap is competitive with the currently popular memory allocators. 6 6 7 7 … … 11 11 \begin{itemize} 12 12 \item 13 \textbf{Algol} Huawei ARM TaiShan 2280 V2 Kunpeng 920, 24-core socket $\times$ 4, 2.6 GHz, GCC version 9.4.0 14 \item 13 15 \textbf{Nasus} AMD EPYC 7662, 64-core socket $\times$ 2, 2.0 GHz, GCC version 9.3.0 14 \item15 \textbf{Algol} Huawei ARM TaiShan 2280 V2 Kunpeng 920, 24-core socket $\times$ 4, 2.6 GHz, GCC version 9.4.016 16 \end{itemize} 17 17 … … 31 31 32 32 \paragraph{glibc (\textsf{glc})} 33 \cite{glibc} is the default g cc thread-safe allocator.33 \cite{glibc} is the default glibc thread-safe allocator. 34 34 \\ 35 35 \textbf{Version:} Ubuntu GLIBC 2.31-0ubuntu9.7 2.31\\ … … 46 46 47 47 \paragraph{hoard (\textsf{hrd})} 48 \cite{hoard} is a thread-safe allocator that is multi-threaded and us inga heap layer framework. It has per-thread heaps that have thread-local free-lists, and a global shared heap.48 \cite{hoard} is a thread-safe allocator that is multi-threaded and uses a heap layer framework. It has per-thread heaps that have thread-local free-lists, and a global shared heap. 49 49 \\ 50 50 \textbf{Version:} 3.13\\ … … 78 78 79 79 \paragraph{tbb malloc (\textsf{tbb})} 80 \cite{tbbmalloc} is a thread-safe allocator that is multi-threaded and uses private heap for each thread.80 \cite{tbbmalloc} is a thread-safe allocator that is multi-threaded and uses a private heap for each thread. 81 81 Each private-heap has multiple bins of different sizes. Each bin contains free regions of the same size. 82 82 \\ … … 90 90 \section{Experiments} 91 91 92 The each micro-benchmark is configured and run with each of the allocators,93 The less time an allocator takes to complete a benchmark the better, so lower in the graphs is better. 92 Each micro-benchmark is configured and run with each of the allocators, 93 \PAB{The less time an allocator takes to complete a benchmark the better so lower in the graphs is better, except for the Memory micro-benchmark graphs.} 94 94 All graphs use log scale on the Y-axis, except for the Memory micro-benchmark (see \VRef{s:MemoryMicroBenchmark}). 95 95 … … 231 231 Second is the low-performer group, which includes the rest of the memory allocators. 232 232 These memory allocators have significant program-induced passive false-sharing, where \textsf{hrd}'s is the worst performing allocator. 233 All of the allocator's in this group are sharing heaps among threads at some level. 234 235 Interestingly, allocators such as \textsf{hrd} and \textsf{glc} performed well in micro-benchmark cache thrash (see \VRef{sec:cache-thrash-perf}). 236 But, these allocators are among the low performers in the cache scratch. 237 It suggests these allocators do not actively produce false-sharing but preserve program-induced passive false sharing. 233 All of the allocators in this group are sharing heaps among threads at some level. 234 235 Interestingly, allocators such as \textsf{hrd} and \textsf{glc} performed well in micro-benchmark cache thrash (see \VRef{sec:cache-thrash-perf}), but, these allocators are among the low performers in the cache scratch. 236 It suggests these allocators do not actively produce false-sharing, but preserve program-induced passive false sharing. 238 237 239 238 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Note: See TracChangeset
for help on using the changeset viewer.