commit ba6298ef857f9c7189cf79b7a141316c6aacd8be
parent ab6b86876ecca6dc7c6b555026c2504d3b459626
Author: Ivan Gankevich <igankevich@ya.ru>
Date: Tue, 31 Oct 2017 17:24:15 +0300
Edit p2.
Diffstat:
2 files changed, 42 insertions(+), 15 deletions(-)
diff --git a/arma-thesis-ru.org b/arma-thesis-ru.org
@@ -1904,6 +1904,44 @@ MPP части, от которых зависит данная, должны б
| Количество процессорных ядер | 4 |
| Количество потоков на ядро | 2 |
+Программа АРСС использует несколько библиотек математических функций, численных
+алгоритмов и примитивов визуализации (перечисленных в таб.\nbsp{}[[tab-arma-libs]]),
+и написана с использованием нескольких технологий параллельного программирования
+(OpenMP, OpenCL), чтобы найти наиболее эффективную. Для каждой технологии и
+каждой модели была оптимизирована генерация взволнованной поверхности (за
+исключением модели СС, для которой была сделана только реализация OpenMP).
+Вычисление потенциала скорости было реализована на OpenMP, реализация на OpenCL
+была сделана только для визуализации взволнованной поверхности в реальном
+времени. Для каждой технологии программа перекомпилировалась, запускалась
+несколько раз и замерялась производительность каждой высокоуровневой функции
+посредством системных часов.
+
+Результаты тестирования представлены в таб.\nbsp{}[[tab-arma-performance]]. Все
+тесты запускались на машине с видеокартой, характеристики которой собраны в
+таб.\nbsp{}[[tab-gpulab]]. Все тесты запускались с одними и теми же входными
+параметрами для всех моделей: реализация длиной в 10000 сек. и размер выходной
+сетки \(40\times40\)м. Единственный параметр, который отличался, это порядок
+(количество коэффициентов): порядок моделей АР и СС был выбран равным \(7,7,7\),
+а порядок модели ЛХ \(40,40\). Это связано с большим количеством коэффициентов,
+необходимым для исключения периодичности модели ЛХ.
+
+Во всех тестах генерация взволнованной поверхности и НБП занимают большую часть
+времени счета, в то время как вычисления потенциала скорости вместе с остальными
+подпрограммами лишь малую его часть.
+
+#+name: tab-arma-libs
+#+caption: Список библиотек, используемых в программе АРСС.
+#+attr_latex: :booktabs t
+| Библиотека | Назначение |
+|--------------------------------------------------------------+----------------------------------|
+| DCMT\nbsp{}cite:matsumoto1998dynamic | параллельный ГПСЧ |
+| Blitz\nbsp{}cite:veldhuizen1997will,veldhuizen2000techniques | многомерные массивы |
+| GSL\nbsp{}cite:gsl2008scientific | вычисление ФПР, ФР, БПФ |
+| | проверка стационарности процесса |
+| LAPACK, GotoBLAS\nbsp{}cite:goto2008high,goto2008anatomy | определение коэффициентов АР |
+| GL, GLUT\nbsp{}cite:kilgard1996opengl | трехмерная визуализация |
+| CGAL\nbsp{}cite:fabri2009cgal | триангуляция волновых чисел |
+
**** Производительность ввода-вывода.
**** Параллельное вычисление поля потенциала скорости.
**** Производительность OpenCL-решателя, вычисляющего поле потенциала скорости.
@@ -2070,18 +2108,6 @@ GotoBLAS и основанная на ней LAPACK, для непрерывно
для других библиотек эффективность не является важной, и они были выбраны,
исходя из удобства их использования.
-#+name: tab-arma-libs
-#+caption: Список библиотек, используемых в реализации модели АРСС.
-#+attr_latex: :booktabs t
-| Библиотека | Назначение |
-|--------------------------------------------------------------+----------------------------------|
-| DCMT\nbsp{}cite:matsumoto1998dynamic | параллельный ГПСЧ |
-| Blitz\nbsp{}cite:veldhuizen1997will,veldhuizen2000techniques | многомерные массивы |
-| GSL\nbsp{}cite:gsl2008scientific | вычисление ФПР, ФР, БПФ |
-| | проверка стационарности процесса |
-| LAPACK, GotoBLAS\nbsp{}cite:goto2008high,goto2008anatomy | определение коэффициентов АР |
-| GL, GLUT\nbsp{}cite:kilgard1996opengl | трехмерная визуализация |
-| CGAL\nbsp{}cite:fabri2009cgal | триангуляция волновых чисел |
**** Производительность алгоритма распределения нагрузки. :noexport:
Программная реализация генерации взволнованной поверхности сбалансирована с
diff --git a/arma-thesis.org b/arma-thesis.org
@@ -1874,15 +1874,16 @@ periodicity allows to use far fewer coefficients compared to LH model.
| No. of CPU cores | 4 |
| No. of threads per core | 2 |
-ARMA implementation uses several libraries of mathematical functions, numerical
+ARMA programme uses several libraries of mathematical functions, numerical
algorithms and visualisation primitives (listed in table\nbsp{}[[tab-arma-libs]]),
and was implemented using several parallel programming technologies (OpenMP,
OpenCL) to find the most efficient one. For each technology and each model an
optimised wavy surface generation was implemented (except for MA model for which
only OpenMP implementation was done). Velocity potential computation was done in
-OpenMP and was implemented in OpenCL only for real-time visualisation of the
+OpenMP and was implemented in OpenCL only for real-time visualisation of wavy
surface. For each technology the programme was recompiled and run multiple times
and performance of each top-level subroutine was measured using system clock.
+
Results of benchmarks of the technologies are summarised in
table\nbsp{}[[tab-arma-performance]]. All benchmarks were run on a machine equipped
with a GPU, characteristics of which are summarised in table\nbsp{}[[tab-gpulab]].
@@ -1897,7 +1898,7 @@ time, whereas velocity potential calculation together with other subroutines
only a small fraction of it.
#+name: tab-arma-libs
-#+caption: A list of mathematical libraries used in ARMA model implementation.
+#+caption: A list of mathematical libraries used in ARMA programme.
#+attr_latex: :booktabs t
| Library | What it is used for |
|--------------------------------------------------------------+---------------------------------|