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