commit d08f746d8be3deff58d9e2e8c8d142f59a9a6639
parent 4db20186419056dc3c2a670f59843ef93b93df50
Author: Ivan Gankevich <igankevich@ya.ru>
Date: Mon, 24 Jun 2019 17:11:28 +0300
compile sldes
Diffstat:
Makefile | | | 8 | ++++++++ |
preamble.tex | | | 28 | ++++++++++++++++++++++++++++ |
slides.tex | | | 174 | ++++--------------------------------------------------------------------------- |
3 files changed, 43 insertions(+), 167 deletions(-)
diff --git a/Makefile b/Makefile
@@ -9,6 +9,10 @@ FLAGS = \
-shell-escape
NAME = iccsa-19-vtestbed
+SLIDES = iccsa-19-vtestbed-slides
+
+all: build/$(NAME).pdf
+all: build/$(SLIDES).pdf
build/$(NAME).pdf: build/aurora.eps
build/$(NAME).pdf: build/micw.eps
@@ -18,6 +22,10 @@ build/$(NAME).pdf: main.tex
@echo " LATEX $<"
@-$(LATEXMK) $(FLAGS) -f $<
+build/$(SLIDES).pdf: slides.tex
+ @echo " LATEX $<"
+ @-$(LATEXMK) $(FLAGS) -xelatex -f $<
+
build/%.vsl.svg: data/%.vsl.gnuplot
gnuplot -c gnuplot/vessel.gnuplot $< $@
diff --git a/preamble.tex b/preamble.tex
@@ -7,6 +7,7 @@
\newcommand{\SqrtZeta}[1]{\sqrt{\vphantom{\zeta_x^2}\smash[b]{#1}}}
\newcommand{\SqrtZetaXY}{\SqrtZeta{1 + \zeta_x^2 + \zeta_y^2}}
\newcommand{\InertiaMatrix}{\mathcal{I}}
+\newcommand{\FracSqrtZetaXY}[1]{\frac{#1}{\SqrtZetaXY{}}}
\tikzstyle{Block} = [
rectangle,
@@ -23,3 +24,30 @@
arrows={-Triangle[length=0.25cm,width=0.125cm]},
draw=spbuDarkGray
]
+
+
+\definecolor{markRed}{HTML}{E5C6C5}
+\newcommand*{\fillrectemph}[2]{%
+ \begin{tikzpicture}[baseline=(#1tmp.base),remember picture]
+ \node[fill=none,inner sep=0mm] (#1tmp) {$\displaystyle\phantom{#2}$};%
+ \node[overlay,rectangle,fill=markRed,ultra thick,draw=none, inner xsep=0mm, inner ysep=0.5mm] (#1) at (#1tmp) {$\displaystyle#2$};%
+ \end{tikzpicture}
+}
+% down arrow
+\newcommand*{\spbuArrow}{%
+\mode<presentation>{%
+\begin{center}%
+\begin{tikzpicture}[scale=1]%
+\draw[
+ -triangle 90,
+ very thick,
+ double,
+ double equal sign distance,
+ draw=spbuWhite2,
+ fill=spbuWhite2
+]
+ (0,0.1) -- (0,0);
+\end{tikzpicture}%
+\end{center}%
+}%
+}
diff --git a/slides.tex b/slides.tex
@@ -1,18 +1,17 @@
\documentclass[aspectratio=169]{beamer}
+\usepackage{polyglossia}
+\setdefaultlanguage{english}
+\usetheme{SaintPetersburg}
\usepackage{booktabs}
-\usepackage{multicolumn}
-\usepackage{polyglossia}
+\usepackage{multicol}
\usepackage{pgfgantt}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\setlength{\tabcolsep}{4pt}
-\setdefaultlanguage{english}
%\setbeamertemplate{footline}[frame number]
-\usetheme{SaintPetersburg}
-
\input{preamble}
\title{Virtual testbed: Ship motion simulation for personal workstations}
@@ -56,127 +55,6 @@ A.\:Grigorev%
How much performance can be gained using GPUs?
\end{frame}
-\begin{frame}{Project timeline (2018)}
- \begin{tikzpicture}[remember picture,overlay]
- \draw[TimelinePresent] (-2,0)--(7,0) node[right]{};
- \draw[TimelineFuture] (7,0)--(18,0) node[right]{};
- \draw[ultra thick] (1.8,-0.2)--(1.8,0.2) node[above] {Aug};
- \draw[ultra thick] (7.0,-0.2)--(7.0,0.2) node[above] {Sep};
- \draw[ultra thick] (12.1,-0.2)--(12.1,0.2) node[above] {Dec};
- \end{tikzpicture}
- \vskip0.4cm
- \begin{columns}[T]
- \begin{column}{0.33\textwidth}
- \centering
- \begin{tikzpicture}[remember picture,y=-0.75cm]
- % nodes
- \node[DataBlock] (pplWavySurface) at (0,0) {Wavy surface\strut{}};
- \node[DataBlock] (pplVelocityPotential) at (0,1) {Velocity potential\strut{}};
- \node[DataBlock] (pplWavePressure) at (0,2) {Wave pressure\strut{}};
- \node[DataBlock] (pplShipMotion) at (0,3) {Ship motion\strut{}};
- \node[DataBlock,ColorGPU] (pplVisualisation) at (0,4) {Visualisation\strut{}};
- \end{tikzpicture}
- \par{}No copying, but slow.
- \end{column}
- \begin{column}{0.33\textwidth}
- \centering
- \uncover<2-3>{%
- \begin{tikzpicture}[remember picture,y=-0.75cm]
- % nodes
- \node[DataBlock] (pplWavySurface) at (0,0) {Wavy surface\strut{}};
- \node[DataBlock,ColorGPU] (pplVelocityPotential) at (0,1) {Velocity potential\strut{}};
- \node[DataBlock,ColorGPU] (pplWavePressure) at (0,2) {Wave pressure\strut{}};
- \node[DataBlock] (pplShipMotion) at (0,3) {Ship motion\strut{}};
- \node[DataBlock,ColorGPU] (pplVisualisation) at (0,4) {Visualisation\strut{}};
- \end{tikzpicture}
- \par{}Faster, but a lot of copying (30~FPS).
- }
- \end{column}
- \begin{column}{0.33\textwidth}
- \centering
- \uncover<3>{%
- \begin{tikzpicture}[remember picture,y=-0.75cm]
- % nodes
- \node[DataBlock,ColorGPU] (pplWavySurface) at (0,0) {Wavy surface\strut{}};
- \node[DataBlock,ColorGPU] (pplVelocityPotential) at (0,1) {Velocity potential\strut{}};
- \node[DataBlock,ColorGPU] (pplWavePressure) at (0,2) {Wave pressure\strut{}};
- \node[DataBlock,ColorGPU] (pplShipMotion) at (0,3) {Ship motion\strut{}};
- \node[DataBlock,ColorGPU] (pplVisualisation) at (0,4) {Visualisation\strut{}};
- \end{tikzpicture}
- \par{}Expected to be much faster with no copying.
- }
- \end{column}
- \end{columns}
- \begin{tikzpicture}[remember picture,y=0.75cm,overlay]
- \node[DataBlockLegend,anchor=south west,yshift=0.1cm,xshift=0.1cm]
- at (current page.south west) {CPU\strut{}};
- \node[DataBlockLegend,ColorGPULegend,anchor=south west,yshift=0.1cm,xshift=1.2cm]
- at (current page.south west) {GPU\strut{}};
- \end{tikzpicture}
-\end{frame}
-
-\begin{frame}{The anatomy of a frame}
- \centering
- \begin{tikzpicture}[remember picture,x=2.5cm]
- % nodes
- \node[DataBlockH] (pplWavySurface) at (0,0) {Wavy surface\strut{}};
- \only<1>{%
- \node[DataBlockH] (pplVelocityPotential) at (1,0) {Velocity potential\strut{}};
- \node[DataBlockH] (pplWettedPanels) at (2,0) {Wetted panels\strut{}};
- \node[DataBlockH] (pplWavePressure) at (3,0) {Wave pressure\strut{}};
- }
- \only<2>{%
- \node[DataBlockH,fill=markRed] (pplVelocityPotential) at (1,0) {Velocity potential\strut{}};
- \node[DataBlockH,fill=markRed] (pplWettedPanels) at (2,0) {Wetted panels\strut{}};
- \node[DataBlockH,fill=markRed] (pplWavePressure) at (3,0) {Wave pressure\strut{}};
- }
- \node[DataBlockH] (pplShipMotion) at (4,0) {Ship motion\strut{}};
- \node[DataBlockH,text width=1.8cm] (pplVisualisation) at (5,0) {Visualisation\strut{}};
- % arrows
- \path[Arrow] (pplWavySurface.east) -- (pplVelocityPotential.west);
- \path[Arrow] (pplVelocityPotential.east) -- (pplWettedPanels.west);
- \path[Arrow] (pplWettedPanels.east) -- (pplWavePressure.west);
- \path[Arrow] (pplWavePressure.east) -- (pplShipMotion.west);
- \path[Arrow] (pplShipMotion.east) -- (pplVisualisation.west);
- \draw[Arrow] (pplVisualisation.south) -- ++(0,-0.6cm)coordinate (a) -- ($(a-|pplWavySurface)$) -- (pplWavySurface.south);
- % labels
- \node[Label,anchor=south,above=of pplWavySurface]
- (lblWavySurface)
- {Linear models};
- \node[Label,anchor=north,below=of pplVelocityPotential,text width=3.0cm]
- (lblVelocityPotential)
- {Convolution (4$\times$FFT), derivatives};
- \node[Label,anchor=south,above=of pplWettedPanels,text width=4cm]
- (lblWettedPanels)
- {Geometric transformations, transcendental functions, derivatives};
- \node[Label,anchor=south,above=of pplShipMotion]
- (lblShipMotion)
- {Runge---Khutta---Fehlberg};
- \path[Dashed] (pplWavySurface.north -| lblWavySurface.south) -- (lblWavySurface.south);
- \path[Dashed] (lblVelocityPotential.north -| pplVelocityPotential.south) -- (pplVelocityPotential.south);
- \path[Dashed] (pplWettedPanels.north -| lblWettedPanels.south) -- (lblWettedPanels.south);
- \path[Dashed] (pplWavePressure.north) -- (lblWettedPanels.south);
- \path[Dashed] (pplShipMotion.north -| lblShipMotion.south) -- (lblShipMotion.south);
- \end{tikzpicture}
- \begin{columns}[T]
- \begin{column}{0.49\textwidth}
- \end{column}
- \begin{column}{0.49\textwidth}
- \footnotesize
- \uncover<2>{%
- \begin{tabular}{lll}
- \toprule
- FPS & One frame, ms & One stage, ms \\
- \midrule
- 60 & 16 & 5 \\
- 30 & 33 & 11 \\
- \bottomrule
- \end{tabular}
- }
- \end{column}
- \end{columns}
-\end{frame}
-
\begin{frame}{Velocity potential equations}
\footnotesize
\begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}%
@@ -204,9 +82,9 @@ A.\:Grigorev%
\begin{align*}%
& \phi_{xx} + \phi_{yy} + \phi_{zz} = 0\\
& \zeta_t
- = \underbrace{\fillrectemph{f1}{\left(\FracSqrtZetaY{\zeta_x} - \zeta_x\right)}}_{f_1} \phi_x
- + \underbrace{\fillrectemph{f2}{\left(\FracSqrtZetaY{\zeta_y} - \zeta_y\right)}}_{f_2} \phi_y
- - \underbrace{\fillrectemph{f3}{\FracSqrtZetaY{1}}}_{f_3} \phi_z \\
+ = \underbrace{\fillrectemph{f1}{\left(\FracSqrtZetaXY{\zeta_x} - \zeta_x\right)}}_{f_1} \phi_x
+ + \underbrace{\fillrectemph{f2}{\left(\FracSqrtZetaXY{\zeta_y} - \zeta_y\right)}}_{f_2} \phi_y
+ - \underbrace{\fillrectemph{f3}{\FracSqrtZetaXY{1}}}_{f_3} \phi_z \\
\end{align*}%
\vspace{-2.7\baselineskip}%
\end{beamercolorbox}%
@@ -233,25 +111,6 @@ Solution:\vspace{-0.5\baselineskip}%
\endgroup%
\end{frame}
-\begin{frame}{Velocity potential field computation performance}
- \centering
- \begin{columns}
- \begin{column}{0.70\textwidth}
- \includegraphics[width=\textwidth]{velocity.eps}
- \end{column}
- \begin{column}{0.33\textwidth}
- \footnotesize
- \begin{tabular}{ll}
- \toprule
- CPU & AMD FX-8370 \\
- GPU & GeForce GTX 1060 6GB \\
- OS & Fedora 28 \\
- \bottomrule
- \end{tabular}
- \end{column}
- \end{columns}
-\end{frame}
-
\begin{frame}{Wave pressure}
Pressure:
\begin{equation*}
@@ -265,25 +124,6 @@ Solution:\vspace{-0.5\baselineskip}%
\end{equation*}
\end{frame}
-\begin{frame}{Pressure computation performance}
- \centering
- \begin{columns}
- \begin{column}{0.70\textwidth}
- \includegraphics[width=\textwidth]{output.eps}
- \end{column}
- \begin{column}{0.33\textwidth}
- \footnotesize
- \begin{tabular}{ll}
- \toprule
- CPU & AMD FX-8370 \\
- GPU & GeForce GTX 1060 6GB \\
- OS & Fedora 28 \\
- \bottomrule
- \end{tabular}
- \end{column}
- \end{columns}
-\end{frame}
-
\begin{frame}
\frametitle{Main loop}
\begin{tikzpicture}[x=2.2cm,y=-1.4cm]