iccsa-19-vtestbed

git clone https://git.igankevich.com/iccsa-19-vtestbed.git
Log | Files | Refs

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]