Ignore:
Timestamp:
Apr 21, 2022, 9:02:09 AM (3 years ago)
Author:
m3zulfiq <m3zulfiq@…>
Branches:
ADT, ast-experimental, master, pthread-emulation, qualifiedEnum
Children:
4c530a5
Parents:
5b84a321
Message:

completed performance/evaluations chapter

Location:
doc/theses/mubeen_zulfiqar_MMath
Files:
2 edited
2 moved

Legend:

Unmodified
Added
Removed
  • doc/theses/mubeen_zulfiqar_MMath/benchmarks.tex

    r5b84a321 r3c79ea9  
    5656-threadA :  sets number of alloc threads (producers) for mem benchmark\\
    5757-consumeS:  sets production and conumption round size\\
    58 -threadF :  sets number of free threads (consumers) for mem benchmark
     58-threadF :  sets number of free threads (consumers) for each producer for mem benchmark
    5959
    6060Object allocation size can be changed using the knobs:\\
     
    7070 It uses following chains and measures allocator runtime speed against them:
    7171\begin{itemize}
    72 \item malloc 0
    73 \item free NULL
    7472\item malloc
    7573\item realloc
     
    10199each chain.
    102100
    103 Number of worker threads can be adjust using a command-line argument -threadN.
     101Following knobs can be adjusted to tune memory usage.\\
     102-maxS    :  sets max object size\\
     103-minS    :  sets min object size\\
     104-stepS   :  sets object size increment\\
     105-distroS :  sets object size distribution\\
     106-objN    :  sets number of objects per thread\\
     107-threadN :  sets number of worker threads\\
    104108
    105109\section{Churn Benchmark} Churn benchmark measures the overall runtime speed of an allocator in a multi-threaded
  • doc/theses/mubeen_zulfiqar_MMath/performance.tex

    r5b84a321 r3c79ea9  
    188188\subsection{Speed Benchmark}
    189189
    190 Speed benchmark tested memory allocators for program induced allocator preserved passive false sharing.
     190Speed benchmark tested memory allocators for runtime latency.
    191191
    192192This experiment was run with following configurations:
    193193
    194 -threadN :  sets number of threads, K\\
    195 -cSpots  :  sets number of spots for churn, M\\
    196 -objN    :  sets number of objects per thread, N\\
    197 -maxS    :  sets max object size\\
    198 -minS    :  sets min object size\\
    199 -stepS   :  sets object size increment\\
    200 -distroS :  sets object size distribution
    201 
    202 %speed-1-malloc-null.eps
    203 \begin{figure}
    204 \centering
    205 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/speed-1-malloc-null}
    206 \caption{speed-1-malloc-null}
    207 \label{fig:speed-1-malloc-null}
    208 \end{figure}
    209 
    210 %speed-2-free-null.eps
    211 \begin{figure}
    212 \centering
    213 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/speed-2-free-null}
    214 \caption{speed-2-free-null}
    215 \label{fig:speed-2-free-null}
    216 \end{figure}
     194-maxS    :  500
     195
     196-minS    :  50
     197
     198-stepS   :  50
     199
     200-distroS :  fisher
     201
     202-objN    :  1000000
     203
     204-threadN    : \{ 1, 2, 4, 8, 16 \} *
     205
     206* Each allocator was tested for its performance across different number of threads. Experiment was repeated for each allocator for 1, 2, 4, 8, and 16 threads by setting the configuration -threadN.
     207
     208Results for speed benchmark are shown in 12 figures, one figure for each chain of speed benchmark.
     209X-axis shows number of threads. Each allocator's performance for each thread is shown in different colors.
     210Y-axis shows the total time experiment took to finish. Less time an allocator takes to complete allocation, better it is so lower the better.
     211
     212\begin{itemize}
     213\item Fig. \ref{fig:speed-3-malloc} shows results for chain: malloc
     214\item Fig. \ref{fig:speed-4-realloc} shows results for chain: realloc
     215\item Fig. \ref{fig:speed-5-free} shows results for chain: free
     216\item Fig. \ref{fig:speed-6-calloc} shows results for chain: calloc
     217\item Fig. \ref{fig:speed-7-malloc-free} shows results for chain: malloc-free
     218\item Fig. \ref{fig:speed-8-realloc-free} shows results for chain: realloc-free
     219\item Fig. \ref{fig:speed-9-calloc-free} shows results for chain: calloc-free
     220\item Fig. \ref{fig:speed-10-malloc-realloc} shows results for chain: malloc-realloc
     221\item Fig. \ref{fig:speed-11-calloc-realloc} shows results for chain: calloc-realloc
     222\item Fig. \ref{fig:speed-12-malloc-realloc-free} shows results for chain: malloc-realloc-free
     223\item Fig. \ref{fig:speed-13-calloc-realloc-free} shows results for chain: calloc-realloc-free
     224\item Fig. \ref{fig:speed-14-malloc-calloc-realloc-free} shows results for chain: malloc-realloc-free-calloc
     225\end{itemize}
    217226
    218227%speed-3-malloc.eps
    219228\begin{figure}
    220229\centering
    221 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/speed-3-malloc}
    222 \caption{speed-3-malloc}
     230    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-3-malloc} }
     231    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-3-malloc} }
     232\caption{Speed benchmark chain: malloc}
    223233\label{fig:speed-3-malloc}
    224234\end{figure}
     
    227237\begin{figure}
    228238\centering
    229 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/speed-4-realloc}
    230 \caption{speed-4-realloc}
     239    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-4-realloc} }
     240    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-4-realloc} }
     241\caption{Speed benchmark chain: realloc}
    231242\label{fig:speed-4-realloc}
    232243\end{figure}
     
    235246\begin{figure}
    236247\centering
    237 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/speed-5-free}
    238 \caption{speed-5-free}
     248    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-5-free} }
     249    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-5-free} }
     250\caption{Speed benchmark chain: free}
    239251\label{fig:speed-5-free}
    240252\end{figure}
     
    243255\begin{figure}
    244256\centering
    245 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/speed-6-calloc}
    246 \caption{speed-6-calloc}
     257    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-6-calloc} }
     258    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-6-calloc} }
     259\caption{Speed benchmark chain: calloc}
    247260\label{fig:speed-6-calloc}
    248261\end{figure}
     
    251264\begin{figure}
    252265\centering
    253 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/speed-7-malloc-free}
    254 \caption{speed-7-malloc-free}
     266    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-7-malloc-free} }
     267    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-7-malloc-free} }
     268\caption{Speed benchmark chain: malloc-free}
    255269\label{fig:speed-7-malloc-free}
    256270\end{figure}
     
    259273\begin{figure}
    260274\centering
    261 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/speed-8-realloc-free}
    262 \caption{speed-8-realloc-free}
     275    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-8-realloc-free} }
     276    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-8-realloc-free} }
     277\caption{Speed benchmark chain: realloc-free}
    263278\label{fig:speed-8-realloc-free}
    264279\end{figure}
     
    267282\begin{figure}
    268283\centering
    269 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/speed-9-calloc-free}
    270 \caption{speed-9-calloc-free}
     284    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-9-calloc-free} }
     285    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-9-calloc-free} }
     286\caption{Speed benchmark chain: calloc-free}
    271287\label{fig:speed-9-calloc-free}
    272288\end{figure}
     
    275291\begin{figure}
    276292\centering
    277 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/speed-10-malloc-realloc}
    278 \caption{speed-10-malloc-realloc}
     293    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-10-malloc-realloc} }
     294    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-10-malloc-realloc} }
     295\caption{Speed benchmark chain: malloc-realloc}
    279296\label{fig:speed-10-malloc-realloc}
    280297\end{figure}
     
    283300\begin{figure}
    284301\centering
    285 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/speed-11-calloc-realloc}
    286 \caption{speed-11-calloc-realloc}
     302    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-11-calloc-realloc} }
     303    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-11-calloc-realloc} }
     304\caption{Speed benchmark chain: calloc-realloc}
    287305\label{fig:speed-11-calloc-realloc}
    288306\end{figure}
     
    291309\begin{figure}
    292310\centering
    293 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/speed-12-malloc-realloc-free}
    294 \caption{speed-12-malloc-realloc-free}
     311    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-12-malloc-realloc-free} }
     312    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-12-malloc-realloc-free} }
     313\caption{Speed benchmark chain: malloc-realloc-free}
    295314\label{fig:speed-12-malloc-realloc-free}
    296315\end{figure}
     
    299318\begin{figure}
    300319\centering
    301 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/speed-13-calloc-realloc-free}
    302 \caption{speed-13-calloc-realloc-free}
     320    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-13-calloc-realloc-free} }
     321    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-13-calloc-realloc-free} }
     322\caption{Speed benchmark chain: calloc-realloc-free}
    303323\label{fig:speed-13-calloc-realloc-free}
    304324\end{figure}
     
    307327\begin{figure}
    308328\centering
    309 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/speed-14-{m,c,re}alloc-free}
    310 \caption{speed-14-{m,c,re}alloc-free}
    311 \label{fig:speed-14-{m,c,re}alloc-free}
     329    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-14-m-c-re-alloc-free} }
     330    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-14-m-c-re-alloc-free} }
     331\caption{Speed benchmark chain: malloc-calloc-realloc-free}
     332\label{fig:speed-14-malloc-calloc-realloc-free}
    312333\end{figure}
    313334
     
    318339\subsection{Memory Benchmark}
    319340
     341Speed benchmark tested memory allocators for their memory footprint.
     342
     343This experiment was run with following two configurations for each allocator:\\
     344
     345Configuration 1:
     346
     347-threadA :  1
     348
     349-threadF :  1
     350
     351-maxS    :  500
     352
     353-minS    :  50
     354
     355-stepS   :  50
     356
     357-distroS :  fisher
     358
     359-objN    :  100000
     360
     361-consumeS:  100000\\
     362
     363Configuration 2:
     364
     365-threadA :  4
     366
     367-threadF :  4
     368
     369-maxS    :  500
     370
     371-minS    :  50
     372
     373-stepS   :  50
     374
     375-distroS :  fisher
     376
     377-objN    :  100000
     378
     379-consumeS:  100000
     380
     381Difference between the two configurations is the number of producers and consumers.
     382Configuration 1 has one producer and one consumer.
     383While configuration 2 has four producers where each producer has four consumers.
     384
     385\begin{table}[h!]
     386\centering
     387    \begin{tabular}{ |c||c|c| }
     388     \hline
     389    Memory Allocator & Configuration 1 Result & Configuration 2 Result\\
     390     \hline
     391    cfa & Fig. \ref{fig:mem-1-prod-1-cons-100-cfa} & Fig. \ref{fig:mem-4-prod-4-cons-100-cfa}\\
     392     \hline
     393    dl & Fig. \ref{fig:mem-1-prod-1-cons-100-dl} & Fig. \ref{fig:mem-4-prod-4-cons-100-dl}\\
     394     \hline
     395    glibc & Fig. \ref{fig:mem-1-prod-1-cons-100-glc} & Fig. \ref{fig:mem-4-prod-4-cons-100-glc}\\
     396     \hline
     397    hoard & Fig. \ref{fig:mem-1-prod-1-cons-100-hrd} & Fig. \ref{fig:mem-4-prod-4-cons-100-hrd}\\
     398     \hline
     399    je & Fig. \ref{fig:mem-1-prod-1-cons-100-je} & Fig. \ref{fig:mem-4-prod-4-cons-100-je}\\
     400     \hline
     401    pt3 & Fig. \ref{fig:mem-1-prod-1-cons-100-pt3} & Fig. \ref{fig:mem-4-prod-4-cons-100-pt3}\\
     402     \hline
     403    rp & Fig. \ref{fig:mem-1-prod-1-cons-100-rp} & Fig. \ref{fig:mem-4-prod-4-cons-100-rp}\\
     404     \hline
     405    tbb & Fig. \ref{fig:mem-1-prod-1-cons-100-tbb} & Fig. \ref{fig:mem-4-prod-4-cons-100-tbb}\\
     406     \hline
     407    \end{tabular}
     408\caption{Memory benchmark results}
     409\label{table:mem-benchmark-figs}
     410\end{table}
     411
     412Results for memory benchmark are shown in 16 figures, two figures for each of the 8 allocators, one for each configuration.
     413Table \ref{table:mem-benchmark-figs} shows the list of figures that contain memory benchmar results.
     414
     415Each figure has 2 graphs, one for each experiment environment.
     416Each graph has following 5 subgraphs that show program's memory usage and statistics throughout the program lifetime.
     417
     418\begin{itemize}
     419\item \textit{\textbf{current\_req\_mem(B)}} shows the amount of dynamic memory requested and currently in-use of the benchmark.
     420\item \textit{\textbf{heap}}* shows the memory requested by the program (allocator) from the system that lies in the heap area.
     421\item \textit{\textbf{mmap\_so}}* shows the memory requested by the program (allocator) from the system that lies in the mmap area.
     422\item \textit{\textbf{mmap}}* shows the memory requested by the program (allocator or shared libraries) from the system that lies in the mmap area.
     423\item \textit{\textbf{total\_dynamic}} shows the total usage of dynamic memory by the benchmark program which is a sum of heap, mmap, and mmap\_so.
     424\end{itemize}
     425
     426* These statistics are gathered by monitoring the \textit{/proc/self/maps} file of the process in linux system.
     427
     428For each subgraph, x-axis shows the time during the program lifetime at which the datapoint was generated.
     429Y-axis shows the memory usage in bytes.
     430
     431For the experiment, at a certain time in the prgram's life, the difference betweem the memory requested by the benchmark (\textit{current\_req\_mem(B)})
     432and the memory that the process has recieved from system (\textit{heap}, \textit{mmap}) should be minimum.
     433This difference is the memory overhead caused by the allocator and shows the level of fragmentation in the allocator.
     434
    320435%mem-1-prod-1-cons-100-cfa.eps
    321436\begin{figure}
    322437\centering
    323 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-cfa}
    324 \caption{mem-1-prod-1-cons-100-cfa}
     438    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-cfa} }
     439    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-cfa} }
     440\caption{Memory benchmaark results with 1 producer for cfa memory allocator}
    325441\label{fig:mem-1-prod-1-cons-100-cfa}
    326442\end{figure}
     
    329445\begin{figure}
    330446\centering
    331 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-dl}
    332 \caption{mem-1-prod-1-cons-100-dl}
     447    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-dl} }
     448    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-dl} }
     449\caption{Memory benchmaark results with 1 producer for dl memory allocator}
    333450\label{fig:mem-1-prod-1-cons-100-dl}
    334451\end{figure}
     
    337454\begin{figure}
    338455\centering
    339 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-glc}
    340 \caption{mem-1-prod-1-cons-100-glc}
     456    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-glc} }
     457    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-glc} }
     458\caption{Memory benchmaark results with 1 producer for glibc memory allocator}
    341459\label{fig:mem-1-prod-1-cons-100-glc}
    342460\end{figure}
     
    345463\begin{figure}
    346464\centering
    347 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-hrd}
    348 \caption{mem-1-prod-1-cons-100-hrd}
     465    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-hrd} }
     466    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-hrd} }
     467\caption{Memory benchmaark results with 1 producer for hoard memory allocator}
    349468\label{fig:mem-1-prod-1-cons-100-hrd}
    350469\end{figure}
     
    353472\begin{figure}
    354473\centering
    355 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-je}
    356 \caption{mem-1-prod-1-cons-100-je}
     474    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-je} }
     475    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-je} }
     476\caption{Memory benchmaark results with 1 producer for je memory allocator}
    357477\label{fig:mem-1-prod-1-cons-100-je}
    358478\end{figure}
     
    361481\begin{figure}
    362482\centering
    363 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-pt3}
    364 \caption{mem-1-prod-1-cons-100-pt3}
     483    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-pt3} }
     484    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-pt3} }
     485\caption{Memory benchmaark results with 1 producer for pt3 memory allocator}
    365486\label{fig:mem-1-prod-1-cons-100-pt3}
    366487\end{figure}
     
    369490\begin{figure}
    370491\centering
    371 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-rp}
    372 \caption{mem-1-prod-1-cons-100-rp}
     492    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-rp} }
     493    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-rp} }
     494\caption{Memory benchmaark results with 1 producer for rp memory allocator}
    373495\label{fig:mem-1-prod-1-cons-100-rp}
    374496\end{figure}
     
    377499\begin{figure}
    378500\centering
    379 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-tbb}
    380 \caption{mem-1-prod-1-cons-100-tbb}
     501    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-tbb} }
     502    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-tbb} }
     503\caption{Memory benchmaark results with 1 producer for tbb memory allocator}
    381504\label{fig:mem-1-prod-1-cons-100-tbb}
    382505\end{figure}
     
    385508\begin{figure}
    386509\centering
    387 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-cfa}
    388 \caption{mem-4-prod-4-cons-100-cfa}
     510    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-cfa} }
     511    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-cfa} }
     512\caption{Memory benchmaark results with 4 producers for cfa memory allocator}
    389513\label{fig:mem-4-prod-4-cons-100-cfa}
    390514\end{figure}
     
    393517\begin{figure}
    394518\centering
    395 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-dl}
    396 \caption{mem-4-prod-4-cons-100-dl}
     519    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-dl} }
     520    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-dl} }
     521\caption{Memory benchmaark results with 4 producers for dl memory allocator}
    397522\label{fig:mem-4-prod-4-cons-100-dl}
    398523\end{figure}
     
    401526\begin{figure}
    402527\centering
    403 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-glc}
    404 \caption{mem-4-prod-4-cons-100-glc}
     528    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-glc} }
     529    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-glc} }
     530\caption{Memory benchmaark results with 4 producers for glibc memory allocator}
    405531\label{fig:mem-4-prod-4-cons-100-glc}
    406532\end{figure}
     
    409535\begin{figure}
    410536\centering
    411 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-hrd}
    412 \caption{mem-4-prod-4-cons-100-hrd}
     537    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-hrd} }
     538    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-hrd} }
     539\caption{Memory benchmaark results with 4 producers for hoard memory allocator}
    413540\label{fig:mem-4-prod-4-cons-100-hrd}
    414541\end{figure}
     
    417544\begin{figure}
    418545\centering
    419 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-je}
    420 \caption{mem-4-prod-4-cons-100-je}
     546    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-je} }
     547    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-je} }
     548\caption{Memory benchmaark results with 4 producers for je memory allocator}
    421549\label{fig:mem-4-prod-4-cons-100-je}
    422550\end{figure}
     
    425553\begin{figure}
    426554\centering
    427 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-pt3}
    428 \caption{mem-4-prod-4-cons-100-pt3}
     555    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-pt3} }
     556    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-pt3} }
     557\caption{Memory benchmaark results with 4 producers for pt3 memory allocator}
    429558\label{fig:mem-4-prod-4-cons-100-pt3}
    430559\end{figure}
     
    433562\begin{figure}
    434563\centering
    435 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-rp}
    436 \caption{mem-4-prod-4-cons-100-rp}
     564    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-rp} }
     565    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-rp} }
     566\caption{Memory benchmaark results with 4 producers for rp memory allocator}
    437567\label{fig:mem-4-prod-4-cons-100-rp}
    438568\end{figure}
     
    441571\begin{figure}
    442572\centering
    443 \includegraphics[width=1\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-tbb}
    444 \caption{mem-4-prod-4-cons-100-tbb}
     573    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-tbb} }
     574    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-tbb} }
     575\caption{Memory benchmaark results with 4 producers for tbb memory allocator}
    445576\label{fig:mem-4-prod-4-cons-100-tbb}
    446577\end{figure}
     578
     579%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     580%% ANALYSIS
     581%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Note: See TracChangeset for help on using the changeset viewer.