Author: Remi Meier <[email protected]> Branch: extradoc Changeset: r5282:c8099a66025a Date: 2014-05-29 15:35 +0200 http://bitbucket.org/pypy/extradoc/changeset/c8099a66025a/
Log: tweaks diff --git a/talk/dls2014/paper/paper.tex b/talk/dls2014/paper/paper.tex --- a/talk/dls2014/paper/paper.tex +++ b/talk/dls2014/paper/paper.tex @@ -966,7 +966,7 @@ because we can minimise non-determinism. We also do not want to depend on the capabilities of the JIT in these experiments. -We performed all benchmarks on a machine with a Intel Core i7-4770 +We performed all benchmarks on a machine with an Intel Core i7-4770 [email protected] (4 cores, 8 threads). There are 16~GiB of memory available and we ran them under Ubuntu 14.04 with a Linux 3.13.0 kernel. The STM system was compiled with a number of segments $N=4$ @@ -1002,6 +1002,13 @@ (incl. the sharing segment). During major collections we re-share the pages if possible. +\begin{figure}[h] + \centering + \includegraphics[width=1\columnwidth]{plots/richards_mem.pdf} + \caption{Actual memory managed by the GC and the page privatisation + over time in Richards benchmark\label{fig:richards_mem}} +\end{figure} + In figure \ref{fig:richards_mem} we look at the memory usage of one of our benchmarks called Richards\footnote{OS kernel simulation benchmark}. The \emph{GC managed memory} counts all memory used in the @@ -1034,18 +1041,11 @@ duplicate any data structures like e.g. the Nursery for each thread. This, the missing optimisation, and the additional memory requirements for STM explained above account for this difference. -We expect to improve this aspect in the future, in this paper we +We expect to improve this aspect in the future; in this paper we want to focus first on performance. \remi{I don't know how much sense it makes to go deeper. We will improve this in the future, but right now this is the overall picture.} -\begin{figure}[h] - \centering - \includegraphics[width=1\columnwidth]{plots/richards_mem.pdf} - \caption{Actual memory managed by the GC and the page privatisation - over time in Richards benchmark\label{fig:richards_mem}} -\end{figure} - \subsection{Overhead Breakdown} @@ -1065,7 +1065,8 @@ \subsection{Scaling} To asses how well the STM system scales on its own (without any real -workload), we execute the following loop on 1 to 4 threads: +workload), we execute the following loop on 1 to 4 threads on our +Python interpreter with STM: \begin{lstlisting} def workload(): i = 20000000 @@ -1073,11 +1074,13 @@ i -= 1 \end{lstlisting} -For the results in figure \ref{fig:scaling}, we averaged -over 5 runs and normalised the average runtimes to the -time it took on a single thread. From this we see that there -is additional overhead introduced by each thread ($13\%$ -for all 4 threads together). +For the results in figure \ref{fig:scaling}, we averaged over 5 runs +and normalised the average runtimes to the time it took on a single +thread. From this we see that there is additional overhead introduced +by each thread (\remi{$13\%$} for all 4 threads together). While this +is not ideal, we think that \remi{$13\%$} are acceptable on four +threads. In terms of throughput, 4 threads have \remi{$3.53\times$} +more iterations per second than a single thread. \remi{what we don't show is by how much this overhead is influenced by allocations} diff --git a/talk/dls2014/paper/plots/performance.pdf b/talk/dls2014/paper/plots/performance.pdf index 91fb1a124c3de207c8b7a0781e2869c04d295d85..fc79357f425d91a5bb8d7139429603cec7458407 GIT binary patch [cut] diff --git a/talk/dls2014/paper/plots/plot_scaling.py b/talk/dls2014/paper/plots/plot_scaling.py --- a/talk/dls2014/paper/plots/plot_scaling.py +++ b/talk/dls2014/paper/plots/plot_scaling.py @@ -40,9 +40,9 @@ print y ax.errorbar(xs, y, yerr=yerr, - label="STM") + label="pypy-stm-nojit") ax.plot(xs, opt_y, label="optimal") - return ax.legend(loc=4) + return ax.legend(loc=0) def main(): @@ -55,7 +55,7 @@ ax.set_ylabel("Runtime normalized to 1 thread") ax.set_xlabel("Threads") - ax.set_ylim(0, 1.5) + ax.set_ylim(0.9, 1.3) ax.set_xlim(0, 5) legend = plot_mems(ax) @@ -87,7 +87,7 @@ if __name__ == "__main__": import argparse parser = argparse.ArgumentParser(description='Plot stm log files') - parser.add_argument('--figure-size', default='6x4', + parser.add_argument('--figure-size', default='6x3', help='set figure size in inches: format=6x4') parser.add_argument('--font-size', default='10.0', help='set font size in pts: 10.0') diff --git a/talk/dls2014/paper/plots/scaling.pdf b/talk/dls2014/paper/plots/scaling.pdf index 3b5b43b271d3c03d3edf230a38d24389b7bfdb6c..04b19a058dc3bc65177d65132dbdb9ee2d1e2c3d GIT binary patch [cut] _______________________________________________ pypy-commit mailing list [email protected] https://mail.python.org/mailman/listinfo/pypy-commit
