Skip to content

Commit 7f6623e

Browse files
committed
60017: Finished introduction (except for extra resources)
1 parent 5251a27 commit 7f6623e

File tree

4 files changed

+84
-10
lines changed

4 files changed

+84
-10
lines changed
Binary file not shown.
Loading
Loading

60017 - System Performance Engineering/introduction/introduction.tex

Lines changed: 84 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,36 @@
11
\chapter{introduction}
22

33
\section{Logistics}
4-
% Systems not algos
5-
% Hardware Efficiency
6-
4+
\twosplit{
5+
\begin{center}
6+
\begin{tikzpicture}
7+
\clip (0,0) circle (2cm) ;
8+
\node[anchor=center] at (0,-0.5) {\includegraphics[width=4.5cm]{introduction/images/holger_pirk.jpg}};
9+
\end{tikzpicture}
10+
\centerline{\textbf{Dr Holger Pirk}}
11+
\end{center}
12+
\textbf{First Half}
13+
\begin{itemize}
14+
\item Hardware efficiency in complex systems
15+
\item Scaling up
16+
\item \textit{"getting the most bang for buck"}
17+
\end{itemize}
18+
}{
19+
\begin{center}
20+
\begin{tikzpicture}
21+
\clip (0,0) circle (2cm) ;
22+
\node[anchor=center] at (-.1,0.0) {\includegraphics[width=4.5cm]{introduction/images/luis_vilanova.jpg}};
23+
\end{tikzpicture}
24+
\centerline{\textbf{Dr Luis Vilanova}}
25+
\end{center}
26+
\textbf{Second Half}
27+
\begin{itemize}
28+
\item Scale out Processing
29+
\end{itemize}
30+
}
731

32+
\subsection{Extra Resources}
33+
\unfinished
834

935
\section{What is System Performance Engineering}
1036
\begin{definitionbox}{System}
@@ -161,7 +187,6 @@ \section{Optimisation Loop}
161187
\includegraphics[width=.6\textwidth]{introduction/images/optimisation_loop.drawio.pdf}
162188
\end{center}
163189

164-
\subsection{Parameters}
165190
\begin{definitionbox}{Performance Parameters}
166191
System and workload characteristics that affect performance.
167192
\\
@@ -175,20 +200,69 @@ \subsection{Parameters}
175200
\\ The term \textit{resource Parameters/Resources} refers to the parameters of the underlying platform (e.g CPU, memory).
176201
\end{definitionbox}
177202

178-
\unfinished
179203

180-
\subsection{Utilisation}
204+
\begin{tcbraster}[raster columns=2,raster equal height]
181205
\begin{definitionbox}{Utilisation}
206+
The proportion of a resource used by a to perform a service by a system.
207+
\begin{itemize}
208+
\item A service has limited resources available (e.g CPU time, memory capacity, network bandwidth etc)
209+
\item Total available resources/resource budget available to a service is a parameter
210+
\end{itemize}
182211
\end{definitionbox}
183212
\begin{definitionbox}{Bottleneck}
213+
The resource with the highest utilisation.
214+
\begin{itemize}
215+
\item The limiting factor in performance of a system
216+
\item given some resource $x$ is the bottleneck, the system is $x$-bound (e.g CPU-bound).
217+
\item Not always a resource, and performance may be bottlenecked by some other factor (e.g latency-bound $\to$ the system is dominated by waiting for some operation)
218+
\end{itemize}
184219
\end{definitionbox}
220+
\end{tcbraster}
221+
It is typically infeasible to identify all bottlenecks for an entire complex software system.
185222

186-
\subsection{performance-Dominating Coe Paths}
223+
To limit optimisation complexity efforts should be restricted to optimising code paths that have particularly large effect on performance.
224+
\begin{tcbraster}[raster columns=2,raster equal height]
225+
\begin{definitionbox}{Critical Path}
226+
The sequence of activities which contribute the larges overall duration.
227+
\end{definitionbox}
228+
\begin{definitionbox}{Hot Path}
229+
A code path where most of the execution time is spent (e.g very commonly executed subroutine)
230+
\end{definitionbox}
231+
\end{tcbraster}
187232

233+
In order to optimise we require:
234+
\begin{itemize}
235+
\item Ability to quickly compare alternative designs
236+
\item Ability to select a near optimal value for platform parameters
237+
\end{itemize}
238+
While workload parameters are not typically controllable at this stage, some system parameters are.
188239

189-
\subsection{parameter Tuning}
240+
\begin{definitionbox}{Parameter Tuning}
241+
Finding the vector within the parameter space that minimises resource usage, or maximises performance.
242+
\begin{itemize}
243+
\item Exploring the parameter space is expensive (even with non-linear optimisation)
244+
\item Analytical models can be used to accelerate search.
245+
\item Tuning needs to consider tradeoffs (e.g much of a cheap resource versus little of an expensive one)
246+
\end{itemize}
247+
\end{definitionbox}
190248

191-
\subsection{Analytical Performance Models}
249+
\begin{definitionbox}{Analytical Performance Model}
250+
A model describing the relationship between system parameters and performance metrics.
251+
\begin{itemize}
252+
\item Having an accurate analytical model for the system is analogous to \textit{understanding} the performance of the system.
253+
\item Models can be stateless (e.g an equation) or stateful (e.g using markov chains).
254+
\item Need to model dynamic systems with (ideally small) static models.
255+
\item Very fast (faster than search parameter space)
256+
\item Allow for \textit{what-if analysis} of system and workload parameters.
257+
\end{itemize}
258+
\end{definitionbox}
192259

193-
\subsection{Simulation}
260+
\begin{definitionbox}{Simulation}
261+
A single observed run of a stateful model
262+
\begin{itemize}
263+
\item Can see all interactions within the system in perfect detail
264+
\item Extremely expensive to run (limiting number of simulations and the speed of the optimisation workflow)
265+
\item Much more rarely used than other techniques described
266+
\end{itemize}
267+
\end{definitionbox}
194268

0 commit comments

Comments
 (0)