source: doc/theses/mubeen_zulfiqar_MMath/performance.tex @ 028404f

ADTast-experimentalenumpthread-emulationqualifiedEnum
Last change on this file since 028404f was 028404f, checked in by Peter A. Buhr <pabuhr@…>, 3 years ago

more editing of Mubeen's thesis

  • Property mode set to 100644
File size: 4.4 KB
Line 
1\chapter{Performance}
2
3\noindent
4====================
5
6Writing Points:
7\begin{itemize}
8\item
9Machine Specification
10\item
11Allocators and their details
12\item
13Benchmarks and their details
14\item
15Results
16\end{itemize}
17
18\noindent
19====================
20
21\section{Machine Specification}
22
23The performance experiments were run on three different multicore systems to determine if there is consistency across platforms:
24\begin{itemize}
25\item
26AMD EPYC 7662, 64-core socket $\times$ 2, 2.0 GHz
27\item
28Huawei ARM TaiShan 2280 V2 Kunpeng 920, 24-core socket $\times$ 4, 2.6 GHz
29\item
30Intel Xeon Gold 5220R, 48-core socket $\times$ 2, 2.20GHz
31\end{itemize}
32
33
34\section{Existing Memory Allocators}
35With dynamic allocation being an important feature of C, there are many stand-alone memory allocators that have been designed for different purposes. For this thesis, we chose 7 of the most popular and widely used memory allocators.
36
37\paragraph{dlmalloc}
38dlmalloc (FIX ME: cite allocator) is a thread-safe allocator that is single threaded and single heap. dlmalloc maintains free-lists of different sizes to store freed dynamic memory. (FIX ME: cite wasik)
39
40\paragraph{hoard}
41Hoard (FIX ME: cite allocator) is a thread-safe allocator that is multi-threaded and using a heap layer framework. It has per-thread heaps that have thread-local free-lists, and a global shared heap. (FIX ME: cite wasik)
42
43\paragraph{jemalloc}
44jemalloc (FIX ME: cite allocator) is a thread-safe allocator that uses multiple arenas. Each thread is assigned an arena. Each arena has chunks that contain contagious memory regions of same size. An arena has multiple chunks that contain regions of multiple sizes.
45
46\paragraph{ptmalloc}
47ptmalloc (FIX ME: cite allocator) is a modification of dlmalloc. It is a thread-safe multi-threaded memory allocator that uses multiple heaps. ptmalloc heap has similar design to dlmalloc's heap.
48
49\paragraph{rpmalloc}
50rpmalloc (FIX ME: cite allocator) is a thread-safe allocator that is multi-threaded and uses per-thread heap. Each heap has multiple size-classes and each size-class contains memory regions of the relevant size.
51
52\paragraph{tbb malloc}
53tbb malloc (FIX ME: cite allocator) is a thread-safe allocator that is multi-threaded and uses private heap for each thread. Each private-heap has multiple bins of different sizes. Each bin contains free regions of the same size.
54
55\paragraph{tc malloc}
56tcmalloc (FIX ME: cite allocator) is a thread-safe allocator. It uses per-thread cache to store free objects that prevents contention on shared resources in multi-threaded application. A central free-list is used to refill per-thread cache when it gets empty.
57
58
59\section{Memory Allocators}
60For these experiments, we used 7 memory allocators excluding our standalone memory allocator uHeapLmmm.
61
62\begin{tabularx}{0.8\textwidth} {
63        | >{\raggedright\arraybackslash}X
64        | >{\centering\arraybackslash}X
65        | >{\raggedleft\arraybackslash}X |
66}
67\hline
68Memory Allocator & Version     & Configurations \\
69\hline
70dl               &             &  \\
71\hline
72hoard            &             &  \\
73\hline
74je               &             &  \\
75\hline
76pt3              &             &  \\
77\hline
78rp               &             &  \\
79\hline
80tbb              &             &  \\
81\hline
82tc               &             &  \\
83\end{tabularx}
84
85%(FIX ME: complete table)
86
87\section{Experiment Environment}
88We conducted these experiments ... (FIX ME: what machine and which specifications to add).
89
90We used our micro becnhmark suite (FIX ME: cite mbench) to evaluate other memory allocators (FIX ME: cite above memory allocators) and our uHeapLmmm.
91
92\section{Results}
93
94\subsection{Memory Benchmark}
95FIX ME: add experiment, knobs, graphs, and description
96
97\subsection{Speed Benchmark}
98FIX ME: add experiment, knobs, graphs, and description
99
100\subsubsection{Speed Time}
101FIX ME: add experiment, knobs, graphs, and description
102
103\subsubsection{Speed Workload}
104FIX ME: add experiment, knobs, graphs, and description
105
106\subsection{Cache Scratch}
107FIX ME: add experiment, knobs, graphs, and description
108
109\subsubsection{Cache Scratch Time}
110FIX ME: add experiment, knobs, graphs, and description
111
112\subsubsection{Cache Scratch Layout}
113FIX ME: add experiment, knobs, graphs, and description
114
115\subsection{Cache Thrash}
116FIX ME: add experiment, knobs, graphs, and description
117
118\subsubsection{Cache Thrash Time}
119FIX ME: add experiment, knobs, graphs, and description
120
121\subsubsection{Cache Thrash Layout}
122FIX ME: add experiment, knobs, graphs, and description
Note: See TracBrowser for help on using the repository browser.