iccsa-20-waves

git clone https://git.igankevich.com/iccsa-20-waves.git
Log | Files | Refs

commit 92d567d63056cf312c6449163833ec8071281a0c
parent a3c96a9c87c9aa8c92cbd2006814af1529f12dae
Author: Ivan Gankevich <i.gankevich@spbu.ru>
Date:   Mon, 16 Mar 2020 14:37:16 +0300

Discussion.

Diffstat:
main.tex | 38++++++++++++++++++++++++++++----------
1 file changed, 28 insertions(+), 10 deletions(-)

diff --git a/main.tex b/main.tex @@ -372,8 +372,6 @@ This solution reduces to the solution for the wall when \(\vec{n}=(0,0,1)\). %\input{stationary-surface.tex} %\input{progressively-moving-surface.tex} -\section{Results} - \subsection{OpenCL implementation} Solution for fluid velocity field was implemented in velocity potential solver @@ -398,11 +396,6 @@ always one time step behind the wetted panels. This inconsistency is a result of the decision not to solve ship motions and fluid motions in one system of equations, which would be too difficult to do. -We implemented velocity potential solver using OpenMP for parallel computations -on a processor and OpenCL for graphical accelerator. The solver uses single -precision floating point numbers. Benchmark results are presented in -tab.~\ref{tab-benchmark}. - Let us consider process of computing wavy surface in more detail. Since wavy surface grid is irregular (i.e.~we store a matrix of fluid particle positions that describe the surface), we compute the same formula for each point of the @@ -444,6 +437,27 @@ following: \end{itemize} Following these simple rules, we can easily implement efficient algorithms. +\section{Results} + +\subsection{Performance benchmarks} + +We implemented velocity potential solver using OpenMP for parallel computations +on a processor and OpenCL for graphical accelerator. The solver uses single +precision floating point numbers. Benchmark results are presented in +tab.~\ref{tab-benchmark}. + +We performed benchmarks for three ships: Diogen, Aurora and MICW. Diogen is a +small-size fishing vessel, Aurora is mid-size cruiser and MICW is a large-size +ship with small moment of inertia for the current waterline +(fig.~\ref{fig-ships}). The main difference between the ships that affects +benchmarks is the number of panels into which the hull is decomposed. These +numbers are shown in tab.~\ref{tab-ships}. + +Benchmarks were performed using three workstations: DarkwingDuck, GPUlab, +Capybara. DarkwingDuck is a laptop, GPUlab is a desktop workstation, and +Capybara is a desktop with professional graphical accelerator server-grade +processor (tab.~\ref{tab-config}). + \begin{table} \centering \caption{Performance benchmarks results. Numbers represent average time in milliseconds @@ -497,9 +511,6 @@ Following these simple rules, we can easily implement efficient algorithms. \end{table} - - - \section{Discussion} All the solutions obtained for various boundaries satisfy continuity equation @@ -520,9 +531,16 @@ accurate results. Nevertheless, only fluid velocity in the centre of each panel is used to calculate ship motions, and velocity field near the ship hull is used only for visualisation. +Performance benchmarks showed that graphical accelerator greatly improves +performance of velocity potential solver. Linear memory access patterns and +large amount of floating point operations make this solver an ideal candidate +for running on a graphical accelerator, and these features are the result of +deriving explicit solution for fluid motions near the ship hull boundary. \section{Conclusion} + + \subsubsection*{Acknowledgements.} Research work is supported by Saint Petersburg State University (grants no.~51129371 and~51129725) and Council for grants of the President of the Russian Federation