arma-thesis

git clone https://git.igankevich.com/arma-thesis.git
Log | Files | Refs | LICENSE

commit 46df707f8a72819558eec1f5d2f80683f83193ab
parent e79e67c377d00bba8e67a7a4c4aa5f6a8bc6adf2
Author: Ivan Gankevich <igankevich@ya.ru>
Date:   Sat, 11 Nov 2017 17:29:22 +0300

Edit figures and tables captions.

Diffstat:
arma-thesis-ru.org | 160++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
arma-thesis.org | 150+++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
2 files changed, 217 insertions(+), 93 deletions(-)

diff --git a/arma-thesis-ru.org b/arma-thesis-ru.org @@ -235,7 +235,7 @@ Motion Programme (LAMP), программе для моделирования к **** Модель Лонге---Хиггинса. Наиболее простой моделью, формула которой выводится в рамках линейной теории -волн (см.\nbsp{}прил.\nbsp{}[[#longuet-higgins-derivation]]), является модель +волн (см.\nbsp{}разд.\nbsp{}[[#longuet-higgins-derivation]]), является модель Лонге---Хиггинса (ЛХ)\nbsp{}cite:longuet1957statistical. Подробный сравнительный анализ этой модели и модели АРСС проведен в работах\nbsp{}cite:degtyarev2011modelling,boukhanovsky1997thesis. @@ -244,9 +244,9 @@ Motion Programme (LAMP), программе для моделирования к элементарных гармонических волн случайных амплитуд \(c_n\) и фаз \(\epsilon_n\), равномерно распределенных на интервале \([0,2\pi]\). Подъем (координата \(z\)) поверхности определяется формулой -#+name: eq-longuet-higgins \begin{equation} \zeta(x,y,t) = \sum\limits_n c_n \cos(u_n x + v_n y - \omega_n t + \epsilon_n). + \label{eq-longuet-higgins} \end{equation} Здесь волновые числа \((u_n,v_n)\) непрерывно распределены на плоскости \((u,v)\), т.е.\nbsp{}площадка \(du\times{}dv\) содержит бесконечно большое @@ -286,12 +286,12 @@ Motion Programme (LAMP), программе для моделирования к которые не позволяют использовать ее в качестве фундамента для построения более совершенных моделей. - В программной реализации скорость сходимости - выражения\nbsp{}[[eq-longuet-higgins]] низка, т.к.\nbsp{}фазы \(\epsilon_n\) - имеют распределены равномерно. + выражения\nbsp{}[[eqref:eq-longuet-higgins]] низка, т.к.\nbsp{}фазы + \(\epsilon_n\) имеют распределены равномерно. - Обобщение модели для негауссовых и нелинейных процессов затруднено, - поскольку требует включения нелинейных членов в\nbsp{}[[eq-longuet-higgins]], - для которых не известна формула вычисления - коэффициентов\nbsp{}cite:rozhkov1990stochastic. + поскольку требует включения нелинейных членов + в\nbsp{}[[eqref:eq-longuet-higgins]], для которых не известна формула + вычисления коэффициентов\nbsp{}cite:rozhkov1990stochastic. Таким образом, модель ЛХ применима для решения задачи генерации взволнованной морской поверхности только в рамках линейной теории волн, неэффективна для @@ -1259,7 +1259,7 @@ Mathematica\nbsp{}cite:mathematica10. В линейной теории широ В\nbsp{}cite:huang1980experimental было экспериментально показано, что распределение аппликат морской поверхности отличается от нормального ненулевым эксцессом и асимметрией. В\nbsp{}cite:rozhkov1996theory показано, что такое -распределение раскладывается в ряд Грама---Шарлье: +распределение раскладывается в ряд Грама---Шарлье (РГШ): \begin{align} \label{eq-skew-normal-1} & F(z; \mu=0, \sigma=1, \gamma_1, \gamma_2) \approx @@ -1311,14 +1311,17 @@ legend( ) #+end_src -#+caption: Вид плотности распределения\nbsp{}eqref:eq-skew-normal-1 аппликат взволнованной морской поверхности при различных значениях асимметрии \(\gamma_1\) и эксцесса \(\gamma_2\). +#+caption[График плотности распределения на основе РГШ]: +#+caption: График плотности распределения закона, основанного на РГШ, +#+caption: при различных значениях асимметрии \(\gamma_1\) и эксцесса +#+caption: \(\gamma_2\). #+name: fig-skew-normal-1 #+RESULTS: fig-skew-normal-1 [[file:build/skew-normal-1-ru.pdf]] **** Асимметричное нормальное распределение. Альтернативной аппроксимацией распределения волновых аппликат служит формула -асимметричного нормального распределения: +асимметричного нормального распределения (АНР): \begin{align} \label{eq-skew-normal-2} F(z; \alpha) & = \frac{1}{2} @@ -1363,7 +1366,9 @@ legend( ) #+end_src -#+caption: Вид плотности распределения\nbsp{}eqref:eq-skew-normal-2 волновых аппликат при различных значениях коэффициента асимметрии \(\alpha\). +#+caption[График плотности АНР]: +#+caption: График плотности АНР при различных значениях коэффициента +#+caption: асимметрии \(\alpha\). #+name: fig-skew-normal-2 #+RESULTS: fig-skew-normal-2 [[file:build/skew-normal-2.pdf]] @@ -1444,7 +1449,8 @@ source(file.path("R", "common.R")) arma.plot_ramp_up_interval(label="Интервал разгона") #+end_src -#+caption: Интервал разгона в начале оси \(OX\) реализации. +#+caption[Интервал разгона в начале реализации]: +#+caption: Интервал разгона в начале реализации. #+name: fig-ramp-up-interval #+RESULTS: fig-ramp-up-interval [[file:build/ramp-up-interval-ru.pdf]] @@ -1474,7 +1480,11 @@ arma.plot_ramp_up_interval(label="Интервал разгона") опускаются. Как следствие, формула для трехмерного случая не выводилась. #+name: tab-delta-functions -#+caption: Формулы для вычисления \(\Fun{z}\) и \(\FunSecond{z}\) из [[#sec-pressure-2d]], использующие нормировку для исключения неоднозначности определения дельта функции комплексного аргумента. +#+caption[Формулы для вычисления \(\Fun{z}\) и \(\FunSecond{z}\)]: +#+caption: Формулы для вычисления \(\Fun{z}\) и \(\FunSecond{z}\) из +#+caption: разд.\nbsp{}[[#sec-pressure-2d]], использующие нормировку для +#+caption: исключения неоднозначности определения дельта функции комплексного +#+caption: аргумента. #+attr_latex: :booktabs t | Функция | Без нормировки | С нормировкой | |-------------------+--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------| @@ -1509,7 +1519,9 @@ arma.plot_ramp_up_interval(label="Интервал разгона") надежно получены из реализации конечной длины. #+name: tab-weibull-shape -#+caption: Значение коэффициента формы \(k\) распределения Вейбулла для различных характеристик волн. +#+caption[Значение коэффициента формы распределения Вейбулла]: +#+caption: Значение коэффициента формы распределения Вейбулла для различных +#+caption: характеристик волн. #+attr_latex: :booktabs t | Характеристика | Коэффициент формы \(k\) | |-------------------------+-------------------------| @@ -1538,6 +1550,7 @@ arma.qqplot_grid( ) #+end_src +#+caption[Спрямленные диаграммы для прогрессивных волн]: #+caption: Спрямленные диаграммы для прогрессивных волн. #+name: propagating-wave-distributions #+RESULTS: propagating-wave-distributions @@ -1556,6 +1569,7 @@ arma.qqplot_grid( ) #+end_src +#+caption[Спрямленные диаграммы для стоячих волн]: #+caption: Спрямленные диаграммы для стоячих волн. #+name: standing-wave-distributions #+RESULTS: standing-wave-distributions @@ -1574,6 +1588,7 @@ for (i in seq(0, 4)) { } #+end_src +#+caption[Временные срезы АКФ для стоячих и прогрессивных волн]: #+caption: Временные срезы АКФ для стоячих (слева) и прогрессивных (справа) волн. #+name: acf-slices #+RESULTS: acf-slices @@ -1676,7 +1691,10 @@ arma.plot_velocity_potential_field_legend( #+end_src #+name: fig-potential-field-nonlinear -#+caption: Поле потенциала скорости прогрессивной волны \(\zeta(x,y,t) = \cos(2\pi x - t/2)\). Поле, полученное по формуле\nbsp{}eqref:eq-solution-2d-full (сверху) и по формуле линейной теории волн (снизу). +#+caption[Поля потенциала скорости прогрессивной волны]: +#+caption: Поля потенциала скорости прогрессивной волны +#+caption: \(\zeta(x,y,t) = \cos(2\pi x - t/2)\). Поле, полученное по общей +#+caption: формуле (сверху) и по формуле из линейной теории волн (снизу). #+attr_latex: :width \textwidth #+RESULTS: fig-potential-field-nonlinear [[file:build/plain-wave-velocity-field-comparison-ru.pdf]] @@ -1719,7 +1737,11 @@ arma.plot_velocity( #+end_src #+name: fig-velocity-field-2d -#+caption: Сравнение полей скоростей на поверхности моря, полученных по общей формуле (\(u_1\)) и формуле для волн малой амплитуды (\(u_2\)). Поле скоростей для поверхности волн малой амплитуды (сверху) и большой амплитуды (снизу). +#+caption[Поля потенциала скорости волн малых и больших амплитуд]: +#+caption: Сравнение полей потенциала скорости, полученных +#+caption: по общей формуле (\(u_1\)) и формуле для волн малой амплитуды +#+caption: (\(u_2\)): поле скоростей для поверхности волн малой (сверху) +#+caption: и большой амплитуды (снизу). #+attr_latex: :width \textwidth #+RESULTS: fig-velocity-field-2d [[file:build/large-and-small-amplitude-velocity-field-comparison-ru.pdf]] @@ -1761,12 +1783,17 @@ arma.plot_nonlinear(file.path("build", "nit-standing"), args) #+end_src #+name: fig-nit -#+caption: Срезы взволнованной поверхности с различными распределениями волновых аппликат (Гауссово, РГШ и асимметричное нормальное). +#+caption[Срезы взволнованной поверхности с различными распределениями]: +#+caption: Срезы взволнованной поверхности с различными распределениями +#+caption: волновых аппликат (Гауссово, РГШ и асимметричное нормальное). #+RESULTS: fig-nit [[file:build/nit.pdf]] #+name: tab-nit-error -#+caption: Ошибка аппроксимации АКФ (разность дисперсий) для различных распределений волновых аппликат. \(N\)\nbsp{}--- количество коэффициентов аппроксимации АКФ. +#+caption[Ошибки аппроксимации АКФ]: +#+caption: Ошибки аппроксимации АКФ (разность дисперсий) для различных +#+caption: распределений волновых аппликат. \(N\)\nbsp{}--- количество +#+caption: коэффициентов аппроксимации АКФ. #+attr_latex: :booktabs t | Тип волн | Распред. | \(\gamma_1\) | \(\gamma_2\) | \(\alpha\) | Ошибка | \(N\) | Высота волн | |---------------+----------+--------------+--------------+------------+--------+-------+-------------| @@ -1845,7 +1872,8 @@ arma.plot_ar_cubes_2d(3, 3, xlabel="Индекс части (X)", ylabel="Инд #+end_src #+name: fig-ar-cubes -#+caption: Авторегрессионные зависимостями между частями взволнованной поверхности. +#+caption[Авторегрессионные зависимости между частями поверхности]: +#+caption: Авторегрессионные зависимости между частями взволнованной поверхности. #+RESULTS: fig-ar-cubes [[file:build/ar-cubes-ru.pdf]] @@ -1945,7 +1973,8 @@ arma.plot_ar_cubes_2d(3, 3, xlabel="Индекс части (X)", ylabel="Инд позволяют использовать гораздо меньше коэффициентов по сравнению с моделью ЛХ. #+name: tab-gpulab -#+caption: Конфигурация системы Gpulab. +#+caption[Конфигурация системы "Gpulab"]: +#+caption: Конфигурация системы "Gpulab". #+attr_latex: :booktabs t | Процессор | AMD FX-8370 | | Память процессора | 16ГБ | @@ -1955,7 +1984,7 @@ arma.plot_ar_cubes_2d(3, 3, xlabel="Индекс части (X)", ylabel="Инд | Количество процессорных ядер | 4 | | Количество потоков на ядро | 2 | -Программа реализация использует несколько библиотек математических функций, +Программная реализация использует несколько библиотек математических функций, численных алгоритмов и примитивов визуализации (перечисленных в таб.\nbsp{}[[tab-arma-libs]]), и написана с использованием нескольких технологий параллельного программирования (OpenMP, OpenCL) для возможности выбора наиболее @@ -1981,7 +2010,8 @@ OpenMP, реализация на OpenCL была сделана только д остальными подпрограммами лишь малую его часть. #+name: tab-arma-libs -#+caption: Список библиотек, используемых в программе АРСС. +#+caption[Список библиотек, используемых в программной реализации]: +#+caption: Список библиотек, используемых в программной реализации. #+attr_latex: :booktabs t | Библиотека | Назначение | |--------------------------------------------------------------+----------------------------------| @@ -2058,7 +2088,8 @@ arma.print_openmp_vs_opencl(model_names, row_names) #+end_src #+name: tab-arma-performance -#+caption: Время работы (с.) реализации OpenMP и OpenCL для моделей АР, СС и ЛХ. +#+caption[Производительность реализаций OpenMP и OpenCL]: +#+caption: Время работы (с.) реализаций OpenMP и OpenCL моделей АР, СС и ЛХ. #+attr_latex: :booktabs t #+RESULTS: tab-arma-performance | | | | OpenMP | | OpenCL | @@ -2149,7 +2180,10 @@ arma.print_sync_vs_async_io(suffix_names, row_names, top_names, mark=",") #+end_src #+name: tab-arma-io-performance -#+caption: Время работы подпрограмм (сек.) при использовании файловых систем XFS, NFS и GlusterFS совместно с последовательным (I) и параллельным (II) выводом в файл. +#+caption[Производительность ввода/вывода для XFS, NFS и GlusterFS]: +#+caption: Время работы подпрограмм (сек.) при использовании файловых систем +#+caption: XFS, NFS и GlusterFS совместно с последовательным (I) и +#+caption: параллельным (II) выводом в файл. #+attr_latex: :booktabs t #+RESULTS: tab-arma-io-performance | | | | I | | | II | @@ -2171,7 +2205,10 @@ arma.plot_io_events(names) #+end_src #+name: fig-arma-io-events -#+caption: График событий для XFS, NFS и GlusterFS, показывающий временные интервалы для каждого из потоков, на протяжении которых производится запись в файл (красный) и вычисления (черный). +#+caption[График событий для XFS, NFS и GlusterFS]: +#+caption: График событий для XFS, NFS и GlusterFS, показывающий +#+caption: временные интервалы для каждого из потоков, на протяжении которых +#+caption: производится запись в файл (красный) и вычисления (черный). #+RESULTS: fig-arma-io-events [[file:build/arma-io-events-ru.pdf]] @@ -2258,7 +2295,8 @@ OpenCL и меньше всего времени в случае OpenMP. В об таб.\nbsp{}[[tab-storm]]. #+name: tab-storm -#+caption: Конфигурация вычислительной системы Storm. +#+caption[Конфигурация системы "Storm"]: +#+caption: Конфигурация системы "Storm". #+attr_latex: :booktabs t | Процессор | Intel Core 2 Quad Q9550 | | Память процессора | 8ГБ | @@ -2278,7 +2316,10 @@ title(xlab="Размер взволнованной поверхности по #+end_src #+name: fig-arma-realtime-graph -#+caption: Сравнение производительности версий кода, вычисляющего поле потенциала скорости, для центрального процессора (OpenMP) и видеокарты (OpenCL). +#+caption[Производительность различных версий кода для потенциала скорости]: +#+caption: Сравнение производительности версий кода, вычисляющего поле +#+caption: потенциала скорости, для центрального процессора (OpenMP) и +#+caption: видеокарты (OpenCL). #+RESULTS: fig-arma-realtime-graph [[file:build/realtime-performance-ru.pdf]] @@ -2310,7 +2351,10 @@ arma.print_table_for_realtime_data(data, routine_names, column_names) #+end_src #+name: tab-arma-realtime -#+caption: Время работы подпрограмм вычисления поля потенциала скорости в реальном времени для взволнованной поверхности (размер по \(OX\) равен 16384). +#+caption[Производительность вычисления поля потенциала скорости]: +#+caption: Время работы подпрограмм вычисления поля потенциала скорости +#+caption: в реальном времени для взволнованной поверхности (размер по +#+caption: \(OX\) равен 16384). #+attr_latex: :booktabs t #+RESULTS: tab-arma-realtime | Подпрограмма | Время OpenMP, сек. | Время OpenCL, сек. | @@ -2608,7 +2652,11 @@ graph G { } #+end_src -#+caption: Отображение конвейеров родительского и дочернего процессов на вычислительные устройства. Сплошные линии обозначают агрегацию, пунктирные линии обозначают отображение между логическими и физическими сущностями. +#+caption[Отображение конвейеров процессов на вычислительные устройства]: +#+caption: Отображение конвейеров родительского и дочернего процессов +#+caption: на вычислительные устройства. Сплошные линии обозначают агрегацию, +#+caption: пунктирные линии\nbsp{}--- отображение между логическими и +#+caption: физическими сущностями. #+attr_latex: :width \textwidth #+label: fig-subord-ppl #+RESULTS: fig-subord-ppl @@ -2631,6 +2679,7 @@ graph G { - поля, определяющие целевое местонахождение управляющего объекта. #+name: tab-kernel-fields +#+caption[Описание полей управляющего объекта]: #+caption: Описание полей управляющего объекта. #+attr_latex: :booktabs t :align lp{0.7\textwidth} | Поле | Описание | @@ -2823,7 +2872,9 @@ digraph { } #+end_src -#+caption: Схема конвейера обработки данных, реализующего генерацию взволнованной морской поверхности по АР модели. +#+caption[Схема конвейера обработки данных]: +#+caption: Схема конвейера обработки данных, реализующего генерацию +#+caption: взволнованной морской поверхности с помощью АР модели. #+name: fig-pipeline #+RESULTS: fig-pipeline [[file:build/pipeline-ru.pdf]] @@ -3045,7 +3096,10 @@ digraph { } #+end_src -#+caption: Древовидная иерархия для кластера из 11 узлов со значением ветвления 2. Красными стрелками обозначен порядок обхода иерархии узлом с IP-адресом 10.0.0.10. +#+caption[Древовидная иерархия для кластера из 11 узлов]: +#+caption: Древовидная иерархия для кластера из 11 узлов со +#+caption: значением ветвления 2. Красными стрелками обозначен порядок +#+caption: обхода иерархии узлом с IP-адресом ~10.0.0.10~. #+name: fig-tree-hierarchy-11 #+RESULTS: fig-tree-hierarchy-11 [[file:build/tree-hierarchy-11-ru.pdf]] @@ -3064,7 +3118,8 @@ digraph { табл.\nbsp{}[[tab-ant]]. #+name: tab-ant -#+caption: Конфигурация системы Ant. +#+caption[Конфигурация системы "Ant"]: +#+caption: Конфигурация системы "Ant". #+attr_latex: :booktabs t | Процессор | Intel Xeon E5440, 2,83ГГц | | Память | 4ГБ | @@ -3118,7 +3173,11 @@ bscheduler.plot_discovery( toplabel="ppn") #+end_src -#+caption: Время обнаружения всех резидентных процессов, запущенных на кластере, в зависимости от количества процессов. Пунктирная линия обозначает минимальное и максимальное значение за все проведенные тесты, "ppn" --- количество резидентных процессов на узел. +#+caption[Время обнаружения всех резидентных процессов на кластере]: +#+caption: Время обнаружения всех резидентных процессов, запущенных на кластере, +#+caption: в зависимости от количества процессов. Пунктирная линия обозначает +#+caption: минимальное и максимальное значение за все проведенные тесты, +#+caption: "ppn"\nbsp{}--- количество резидентных процессов на узел. #+name: fig-discovery-benchmark #+RESULTS: fig-discovery-benchmark [[file:build/discovery-benchmark-ru.pdf]] @@ -3441,7 +3500,8 @@ Keepalived\nbsp{}cite:cassen2002keepalived. \spbuInsertFigure{tex/legend-ru} #+end_src -#+caption: Пример работы алгоритма восстановления после сбоев. +#+caption[Схема работы алгоритма восстановления после сбоев]: +#+caption: Схема работы алгоритма восстановления после сбоев. #+name: fig-fail-over-example #+attr_latex: :width \textwidth #+RESULTS: fig-fail-over-example @@ -3504,7 +3564,10 @@ digraph { #+end_src #+name: fig-master-slave-backup -#+caption: Главный и подчиненный узлы, а также отображение главного объекта \(M\), его копии \(M'\), объекта, соответствующего текущему шагу выполнения \(N\) и подчиненных объектов \(S_{1,2,3}\) на эти узлы. +#+caption[Отображение управляющих объектов на главный и подчиненный узлы]: +#+caption: Главный и подчиненный узлы, а также отображение главного объекта +#+caption: \(M\), его копии \(M'\), объекта, соответствующего текущему шагу +#+caption: выполнения \(N\) и подчиненных объектов \(S_{1,2,3}\) на эти узлы. #+RESULTS: fig-master-slave-backup [[file:build/master-slave-backup-ru.pdf]] @@ -3545,6 +3608,7 @@ arma.plot_master_slave_failure_data( title(xlab="Размер взволнованной поверхности", ylab="Время, сек.") #+end_src +#+caption[Производительность программы при выходе из строя узлов]: #+caption: Производительность модели АР при выходе из строя узлов. #+name: fig-master-slave-failure #+RESULTS: fig-master-slave-failure @@ -3818,7 +3882,9 @@ title(xlab="Размер взволнованной поверхности", yla #+end_src #+name: fig-bscheduler-performance -#+caption: Сравнение производительности Bscheduler и OpenMP. +#+caption[Производительность Bscheduler и OpenMP версий программы]: +#+caption: Сравнение производительности Bscheduler и OpenMP версий программы +#+caption: для модели АР. #+RESULTS: fig-bscheduler-performance [[file:build/bscheduler-performance-ru.pdf]] @@ -3897,16 +3963,16 @@ Emacs, предоставляющего вычислительное окруж - <<<SMP>>> :: Symmetric Multi-Processing, класс вычислительных систем с общей памятью. - <<<GPGPU>>> :: General-purpose computing on graphics processing units, вычисления общего назначения на графических ускорителях. -- <<<АКФ>>> :: автоковариационная функция. +- АКФ :: автоковариационная функция. - <<<БПФ>>> :: быстрое преобразование Фурье. - <<<ГПСЧ>>> :: генератор псевдослучайных чисел. - <<<ГУ>>> :: граничное условие. - <<<ДУЧП>>> :: дифференциальное уравнение в частных производных. - <<<НБП>>> :: нелинейное безынерционное преобразование. -- <<<АР>>> :: процесс авторегрессии. +- АР :: процесс авторегрессии. - <<<АРСС>>> :: процесс авторегрессии скользящего среднего. -- <<<СС>>> :: процесс скользящего среднего. -- <<<ЛХ>>> :: модель Лонге---Хиггинса. +- СС :: процесс скользящего среднего. +- ЛХ :: модель Лонге---Хиггинса. - <<<LAMP>>> :: Large Amplitude Motion Programme, программа для моделирования качки судна на морских волнах. - <<<ЦПТ>>> :: центральная предельная теорема. @@ -3916,9 +3982,9 @@ Emacs, предоставляющего вычислительное окруж - <<<ФПР>>> :: функция плотности распределения. - <<<ФР>>> :: функция распределения. - <<<BSP>>> :: Bulk Synchronous Parallel. -- <<<OpenCL>>> :: Open Computing Language. +- OpenCL :: Open Computing Language. - <<<OpenGL>>> :: Open Graphics Library. -- <<<OpenMP>>> :: Open Multi-Processing. +- OpenMP :: Open Multi-Processing. - <<<MPI>>> :: Message Passing Interface. - <<<POSIX>>> :: Portable Operating System. - <<<FMA>>> :: Fused multiply-add. @@ -3928,8 +3994,8 @@ Emacs, предоставляющего вычислительное окруж - <<<LAPACK>>> :: Linear Algebra Package. - <<<DNS>>> :: Dynamic name resolution. - <<<HPC>>> :: High-performance computing. -- <<<РГШ>>> :: Распределение на основе ряда Грама---Шарлье. -- <<<АНР>>> :: Асимметричное нормальное распределение. +- РГШ :: Распределение на основе ряда Грама---Шарлье. +- АНР :: Асимметричное нормальное распределение. - <<<PBS>>> :: Portable batch system. - Трансцендентные функции :: математические функции, не являющиеся алгебраическими (т.е.\nbsp{}логарифмические, тригонометрические и др.). @@ -3965,9 +4031,9 @@ bibliography:bib/refs.bib \left[ A_t(k, t) \cos(k x) + B_t(k, t) \sin(k x) \right] dk \\ &= -\frac{1}{g} \int\limits_{0}^{\infty} C_t(k, t) \cos(kx + \epsilon(k, t)). \end{align*} -Здесь \(\epsilon\)\nbsp{}--- белый шум, а \(C_t\) включает в себя значение \(dk\). -Подставляя бесконечную сумму вместо интеграла, получаем двухмерную форму -ур.\nbsp{}[[eq-longuet-higgins]]. +Здесь \(\epsilon\)\nbsp{}--- белый шум, а \(C_t\) включает в себя значение +\(dk\). Подставляя бесконечную сумму вместо интеграла, получаем двухмерную +форму\nbsp{}[[eqref:eq-longuet-higgins]]. ** Производная в направлении нормали к поверхности :PROPERTIES: diff --git a/arma-thesis.org b/arma-thesis.org @@ -217,18 +217,18 @@ generation, instead of wavy surface generation. **** Longuet---Higgins model. The simplest model, formula of which is derived in the framework of linear wave -theory (see\nbsp{}appendix\nbsp{}[[#longuet-higgins-derivation]]), is -Longuet---Higgins (LH) model\nbsp{}cite:longuet1957statistical. In-depth -comparative analysis of this model and ARMA model is done +theory (see\nbsp{}sec.\nbsp{}[[#longuet-higgins-derivation]]), is Longuet---Higgins +(LH) model\nbsp{}cite:longuet1957statistical. In-depth comparative analysis of +this model and ARMA model is done in\nbsp{}cite:degtyarev2011modelling,boukhanovsky1997thesis. LH model represents sea wavy surface as a superposition of sine waves with random amplitudes \(c_n\) and phases \(\epsilon_n\), uniformly distributed on interval \([0,2\pi]\). Wavy surface elevation (\(z\) coordinate) is defined by -#+name: eq-longuet-higgins \begin{equation} \zeta(x,y,t) = \sum\limits_n c_n \cos(u_n x + v_n y - \omega_n t + \epsilon_n). + \label{eq-longuet-higgins} \end{equation} Here wave numbers \((u_n,v_n)\) are continuously distributed on plane \((u,v)\), i.e.\nbsp{}area \(du\times{}dv\) contains infinite quantity of wave numbers. @@ -263,11 +263,12 @@ disadvantages. simulations. 3. Finally, there are peculiarities which make LH model unsuitable as a base for building more advanced simulation models. - - In software implementation convergence rate of\nbsp{}[[eq-longuet-higgins]] is - low due to uniform distribution of phases \(\epsilon_n\). + - In software implementation convergence rate + of\nbsp{}[[eqref:eq-longuet-higgins]] is low due to uniform distribution of + phases \(\epsilon_n\). - It is difficult to generalise LH model for non-Gaussian processes as it - involves incorporating non-linear terms in\nbsp{}[[eq-longuet-higgins]] for - which there is no known formula to determine + involves incorporating non-linear terms in\nbsp{}[[eqref:eq-longuet-higgins]] + for which there is no known formula to determine coefficients\nbsp{}cite:rozhkov1990stochastic. To summarise, LH model is applicable to generating sea wavy surface only in the @@ -1203,7 +1204,7 @@ polynomial approximation of /in situ/ data or analytic formula. In\nbsp{}cite:huang1980experimental the authors experimentally show, that PDF of sea surface elevation is distinguished from normal distribution by non-nought kurtosis and skewness. In\nbsp{}cite:rozhkov1996theory the authors show, that -this type of PDF expands in Gram---Charlier series: +this type of PDF expands in Gram---Charlier series (GCS): \begin{align} \label{eq-skew-normal-1} & F(z; \mu=0, \sigma=1, \gamma_1, \gamma_2) \approx @@ -1255,14 +1256,14 @@ legend( ) #+end_src -#+caption: Probability density function\nbsp{}eqref:eq-skew-normal-1 of sea wavy surface elevation for different values of skewness \(\gamma_1\) and kurtosis \(\gamma_2\). +#+caption[Graph of PDF of GCS-based distribution]: Graph of probability density function of GCS-based distribution law for different values of skewness \(\gamma_1\) and kurtosis \(\gamma_2\). #+name: fig-skew-normal-1 #+RESULTS: fig-skew-normal-1 [[file:build/skew-normal-1.pdf]] **** Skew-normal distribution. Alternative approach is to approximate distribution of sea wavy surface -elevation by skew-normal distribution: +elevation by skew-normal (SN) distribution: \begin{align} \label{eq-skew-normal-2} F(z; \alpha) & = \frac{1}{2} @@ -1307,7 +1308,7 @@ legend( ) #+end_src -#+caption: Probability density function\nbsp{}eqref:eq-skew-normal-2 of sea wavy surface for different values of skewness coefficient \(\alpha\). +#+caption[Graph of PDF of SN distribution]: Graph of PDF of skew-normal distribution for different values of skewness coefficient \(\alpha\). #+name: fig-skew-normal-2 #+RESULTS: fig-skew-normal-2 [[file:build/skew-normal-2.pdf]] @@ -1381,7 +1382,8 @@ source(file.path("R", "common.R")) arma.plot_ramp_up_interval() #+end_src -#+caption: Ramp-up interval at the beginning of the \(OX\) axis of the realisation. +#+caption[Ramp-up interval at the beginning of the realisation]: +#+caption: Ramp-up interval at the beginning of the realisation. #+name: fig-ramp-up-interval #+RESULTS: fig-ramp-up-interval [[file:build/ramp-up-interval.pdf]] @@ -1411,7 +1413,10 @@ from linear wave theory, in which terms with \(\zeta\) are omitted. As a result, the formula for three-dimensional case was not derived. #+name: tab-delta-functions -#+caption: Formulae for computing \(\Fun{z}\) and \(\FunSecond{z}\) from [[#sec-pressure-2d]], that use normalisation to eliminate uncertainty from definition of Dirac delta function of complex argument. +#+caption[Formulae for computing \(\Fun{z}\) and \(\FunSecond{z}\)]: +#+caption: Formulae for computing \(\Fun{z}\) and \(\FunSecond{z}\) from +#+caption: sec.\nbsp{}[[#sec-pressure-2d]], that use normalisation to eliminate +#+caption: uncertainty from definition of Dirac delta function of complex argument. #+attr_latex: :booktabs t | Function | Without normalisation | Normalised | |-------------------+--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------| @@ -1444,6 +1449,7 @@ Tails of the graph may diverge from the straight line, because they can not be reliably estimated from the finite-size realisation. #+name: tab-weibull-shape +#+caption[Values of Weibull shape parameter]: #+caption: Values of Weibull shape parameter for different wave characteristics. #+attr_latex: :booktabs t | Characteristic | Weibull shape (\(k\)) | @@ -1474,6 +1480,7 @@ arma.qqplot_grid( ) #+end_src +#+caption[Quantile-quantile plots for propagating waves]: #+caption: Quantile-quantile plots for propagating waves. #+name: propagating-wave-distributions #+RESULTS: propagating-wave-distributions @@ -1492,6 +1499,7 @@ arma.qqplot_grid( ) #+end_src +#+caption[Quantile-quantile plots for standing waves]: #+caption: Quantile-quantile plots for standing waves. #+name: standing-wave-distributions #+RESULTS: standing-wave-distributions @@ -1510,7 +1518,9 @@ for (i in seq(0, 4)) { } #+end_src -#+caption: Time slices of ACF for standing (left column) and propagating waves (right column). +#+caption[ACF time slices for standing and propagating waves]: +#+caption: ACF time slices for standing (left column) and propagating waves +#+caption: (right column). #+name: acf-slices #+RESULTS: acf-slices [[file:build/acf-slices.pdf]] @@ -1608,7 +1618,10 @@ arma.plot_velocity_potential_field_legend( ) #+end_src -#+caption: Velocity potential field of propagating wave \(\zeta(x,y,t) = \cos(2\pi x - t/2)\). Field produced by formula\nbsp{}eqref:eq-solution-2d-full (top) and linear wave theory formula (bottom). +#+caption[Velocity potential fields for propagating wave]: +#+caption: Comparison of velocity potential fields for propagating wave +#+caption: \(\zeta(x,y,t) = \cos(2\pi x - t/2)\). Field produced by generic +#+caption: formula (top) and linear wave theory formula (bottom). #+name: fig-potential-field-nonlinear #+attr_latex: :width \textwidth #+RESULTS: fig-potential-field-nonlinear @@ -1650,7 +1663,11 @@ arma.plot_velocity( #+end_src #+name: fig-velocity-field-2d -#+caption: Comparison of velocity field on the sea wavy surface obtained by generic formula (\(u_1\)) and formula for small-amplitude waves (\(u_2\)). Velocity field for realisations containing small-amplitude (top) and large-amplitude (bottom) waves. +#+caption[Velocity potential fields for small and large amplitude waves]: +#+caption: Comparison of velocity potential fields obtained by generic formula +#+caption: (\(u_1\)) and formula for small-amplitude waves (\(u_2\)): velocity +#+caption: field for realisations containing small-amplitude (top) and +#+caption: large-amplitude (bottom) waves. #+attr_latex: :width \textwidth #+RESULTS: fig-velocity-field-2d [[file:build/large-and-small-amplitude-velocity-field-comparison.pdf]] @@ -1692,12 +1709,17 @@ arma.plot_nonlinear(file.path("build", "nit-standing"), args) #+end_src #+name: fig-nit -#+caption: Wavy surface slices with different distributions of wave elevation (Gaussian, Gram---Charlier series based and skew normal). +#+caption[Wavy surface slices with different distributions]: +#+caption: Wavy surface slices with different distributions +#+caption: of wave elevation (Gaussian, GCS-based and SN). #+RESULTS: fig-nit [[file:build/nit.pdf]] #+name: tab-nit-error -#+caption: Errors of ACF approximations (the difference of variances) for different wave elevation distributions. \(N\)\nbsp{}--- number of coefficients of ACF approximation. +#+caption[Errors of ACF approximations]: +#+caption: Errors of ACF approximations (the difference of variances) for +#+caption: different wave elevation distributions. \(N\) is the number of +#+caption: coefficients of ACF approximation. #+attr_latex: :booktabs t | Wave type | Distribution | \(\gamma_1\) | \(\gamma_2\) | \(\alpha\) | Error | \(N\) | Wave height | |-------------+--------------+--------------+--------------+------------+-------+-------+-------------| @@ -1801,6 +1823,7 @@ arma.plot_ar_cubes_2d(3, 3, xlabel="Part index (X)", ylabel="Part index (Y)") #+end_src #+name: fig-ar-cubes +#+caption[Autoregressive dependencies between surface parts]: #+caption: Autoregressive dependencies between wavy surface parts. #+RESULTS: fig-ar-cubes [[file:build/ar-cubes.pdf]] @@ -1895,6 +1918,7 @@ heavy use of FFT, not to mention that high convergence rate and non-existence of periodicity allows to use far fewer coefficients compared to LH model. #+name: tab-gpulab +#+caption["Gpulab" system configuration]: #+caption: "Gpulab" system configuration. #+attr_latex: :booktabs t | CPU | AMD FX-8370 | @@ -1930,7 +1954,8 @@ 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 programme. +#+caption[A list of libraries used in software implementation]: +#+caption: A list of libraries used in software implementation. #+attr_latex: :booktabs t | Library | What it is used for | |--------------------------------------------------------------+---------------------------------| @@ -2004,7 +2029,9 @@ arma.print_openmp_vs_opencl(model_names, row_names) #+end_src #+name: tab-arma-performance -#+caption: Running time (s.) for OpenMP and OpenCL implementations of AR, MA and LH models. +#+caption[Performance of OpenMP and OpenCL implementations]: +#+caption: Running time (s.) for OpenMP and OpenCL implementations +#+caption: of AR, MA and LH models. #+attr_latex: :booktabs t #+RESULTS: tab-arma-performance | | | | OpenMP | | OpenCL | @@ -2089,7 +2116,9 @@ arma.print_sync_vs_async_io(suffix_names, row_names, top_names, mark=".") #+end_src #+name: tab-arma-io-performance -#+caption: Running time of subroutines (s.) with the use of XFS, NFS and GlusterFS along with sequential (I) and parallel (II) file output. +#+caption[I/O performance for XFS, NFS and GlusterFS]: +#+caption: Running time of subroutines (s.) with the use of XFS, NFS and +#+caption: GlusterFS along with sequential (I) and parallel (II) file output. #+attr_latex: :booktabs t #+RESULTS: tab-arma-io-performance | | | | I | | | II | @@ -2111,7 +2140,9 @@ arma.plot_io_events(names) #+end_src #+name: fig-arma-io-events -#+caption: Event graph for XFS, NFS and GlusterFS that shows time intervals spent for I/O and computation by different threads. +#+caption[Event graph for XFS, NFS and GlusterFS]: +#+caption: Event graph for XFS, NFS and GlusterFS that shows time intervals +#+caption: spent for I/O (red) and computation (black) by different threads. #+RESULTS: fig-arma-io-events [[file:build/arma-io-events.pdf]] @@ -2196,7 +2227,8 @@ equipped with a GPU, characteristics of which are summarised in table\nbsp{}[[tab-storm]]. #+name: tab-storm -#+caption: "Storm" test platform configuration. +#+caption["Storm" system configuration]: +#+caption: "Storm" system configuration. #+attr_latex: :booktabs t | CPU | Intel Core 2 Quad Q9550 | | RAM | 8Gb | @@ -2216,7 +2248,9 @@ title(xlab="Wavy surface size", ylab="Time, s") #+end_src #+name: fig-arma-realtime-graph -#+caption: Performance comparison of CPU (OpenMP) and GPU (OpenCL) versions of velocity potential solver. +#+caption[Performance of different versions of velocity potential code]: +#+caption: Performance comparison of CPU (OpenMP) and GPU (OpenCL) versions of +#+caption: velocity potential calculation code. #+RESULTS: fig-arma-realtime-graph [[file:build/realtime-performance.pdf]] @@ -2246,7 +2280,9 @@ arma.print_table_for_realtime_data(data, routine_names, column_names) #+end_src #+name: tab-arma-realtime -#+caption: Running time of real-time velocity potential solver subroutines for wavy surface (OX size equals 16384). +#+caption[Performance velocity potential calculation]: +#+caption: Running time of real-time velocity potential calculation subroutines +#+caption: for wavy surface (OX size equals 16384). #+attr_latex: :booktabs t #+RESULTS: tab-arma-realtime | Subroutine | OpenMP time, s | OpenCL time, s | @@ -2529,7 +2565,10 @@ graph G { } #+end_src -#+caption: Mapping of parent and child process pipelines to compute devices. Solid lines denote aggregation, dashed lines denote mapping between logical and physical entities. +#+caption[Process pipelines mapping to compute devices]: +#+caption: Mapping of parent and child process pipelines to compute devices. +#+caption: Solid lines denote aggregation, dashed lines\nbsp{}--- mapping between +#+caption: logical and physical entities. #+attr_latex: :width \textwidth #+name: fig-subord-ppl #+RESULTS: fig-subord-ppl @@ -2550,6 +2589,7 @@ Each kernel has four types of fields (listed in table\nbsp{}[[tab-kernel-fields] - fields defining the target location of the kernel. #+name: tab-kernel-fields +#+caption[Description of kernel fields]: #+caption: Description of kernel fields. #+attr_latex: :booktabs t :align lp{0.7\textwidth} | Field | Description | @@ -2734,7 +2774,9 @@ digraph { } #+end_src -#+caption: Diagram of data processing pipeline, that implements sea wavy surface generation via AR model. +#+caption[Diagram of data processing pipeline]: +#+caption: Diagram of data processing pipeline, that implements sea wavy +#+caption: surface generation via AR model. #+name: fig-pipeline #+RESULTS: fig-pipeline [[file:build/pipeline.pdf]] @@ -2942,7 +2984,10 @@ digraph { } #+end_src -#+caption: Tree hierarchy for 11 nodes with fan-out equals 2. Red arrows denote hierarchy traversal order for a node with IP address 10.0.0.10. +#+caption[Tree hierarchy for 11 nodes]: +#+caption: Tree hierarchy for 11 nodes with fan-out of 2. +#+caption: Red arrows denote hierarchy traversal order for a node +#+caption: with IP address ~10.0.0.10~. #+name: fig-tree-hierarchy-11 #+RESULTS: fig-tree-hierarchy-11 [[file:build/tree-hierarchy-11.pdf]] @@ -2958,6 +3003,7 @@ physical core is feasible, in contrast to HPC codes, where it often lowers performance. Test platform configuration is shown in table\nbsp{}[[tab-ant]]. #+name: tab-ant +#+caption["Ant" system configuration]: #+caption: "Ant" system configuration. #+attr_latex: :booktabs t | CPU | Intel Xeon E5440, 2.83GHz | @@ -3006,7 +3052,11 @@ par(family="serif") bscheduler.plot_discovery(xlabel="No. of physical nodes",toplabel="ppn") #+end_src -#+caption: Time to discover all daemon processes running on the cluster depending on the number of daemon processes. Dashed lines represent minimum and maximum values, "ppn" denotes the number of daemon processes per node. +#+caption[Time needed to discover all daemon processes on the cluster]: +#+caption: Time needed to discover all daemon processes running on the cluster +#+caption: depending on the number of daemon processes. Dashed lines denote +#+caption: minimum and maximum values, "ppn" is the number of daemon +#+caption: processes per node. #+name: fig-discovery-benchmark #+RESULTS: fig-discovery-benchmark [[file:build/discovery-benchmark.pdf]] @@ -3304,7 +3354,8 @@ The algorithm is best described by an example \spbuInsertFigure{tex/legend} #+end_src -#+caption: An example of fail over algorithm in action. +#+caption[Working scheme of fail over algorithm]: +#+caption: Working scheme of fail over algorithm. #+name: fig-fail-over-example #+attr_latex: :width \textwidth #+RESULTS: fig-fail-over-example @@ -3364,7 +3415,10 @@ digraph { #+end_src #+name: fig-master-slave-backup -#+caption: Master and slave nodes and mapping of main kernel \(M\), a copy of main kernel \(M'\), current step kernel \(N\) and subordinate kernels \(S_{1,2,3}\) on them. +#+caption[Mapping of kernels on master and slave nodes]: +#+caption: Master and slave nodes and mapping of main kernel \(M\), +#+caption: a copy of main kernel \(M'\), current step kernel \(N\) +#+caption: and subordinate kernels \(S_{1,2,3}\) on them. #+RESULTS: fig-master-slave-backup [[file:build/master-slave-backup.pdf]] @@ -3376,10 +3430,11 @@ execution. So, in case of slave node failure nothing is lost except performance potential of the slave node. In case of master node failure, a copy of the main kernel as well as the subordinate kernel, which carried the copy, are lost, but slave node has the original main kernel and uses it to restart execution of the -current sequential step, i.e. send the subordinate kernel to one of the survived -cluster nodes (in case of two directly connected, it sends the kernel to -itself). So, application performance is different, because the number of kernels -that are lost as a result of a failure as well as their roles are different. +current sequential step, i.e.\nbsp{}send the subordinate kernel to one of the +survived cluster nodes (in case of two directly connected, it sends the kernel +to itself). So, application performance is different, because the number of +kernels that are lost as a result of a failure as well as their roles are +different. Slave node failure needs some time to be discovered: it is detected only when subordinate kernel carrying a copy of the main kernel finishes its execution and @@ -3403,6 +3458,7 @@ arma.plot_master_slave_failure_data( title(xlab="Wavy surface size", ylab="Time, s") #+end_src +#+caption[Performance of a programme in the presence of node failures]: #+caption: Performance of AR model in the presence of node failures. #+name: fig-master-slave-failure #+RESULTS: fig-master-slave-failure @@ -3660,7 +3716,9 @@ title(xlab="Wavy surface size", ylab="Time, s") #+end_src #+name: fig-bscheduler-performance -#+caption: Performance comparison of Bscheduler and OpenMP. +#+caption[Performance of Bscheduler and OpenMP programme versions]: +#+caption: Performance comparison of Bscheduler and OpenMP programme versions for +#+caption: AR model. #+RESULTS: fig-bscheduler-performance [[file:build/bscheduler-performance.pdf]] @@ -3732,28 +3790,28 @@ for Basic Research (projects no.\nbsp{}\mbox{16-07-01111}, \mbox{16-07-00886}, - <<<MPP>>> :: Massively Parallel Processing, computers with distributed memory. - <<<SMP>>> :: Symmetric Multi-Processing, computers with shared memory. - <<<GPGPU>>> :: General-purpose computing on graphics processing units. -- <<<ACF>>> :: auto-covariate function. +- ACF :: auto-covariate function. - <<<FFT>>> :: fast Fourier transform. - <<<PRNG>>> :: pseudo-random number generator. - <<<BC>>> :: boundary condition. - <<<PDE>>> :: partial differential equation. - <<<NIT>>> :: non-linear inertia-less transform. -- <<<AR>>> :: auto-regressive process. +- AR :: auto-regressive process. - <<<ARMA>>> :: auto-regressive moving-average process. -- <<<MA>>> :: moving average process. -- <<<LH>>> :: Longuet---Higgins model. +- MA :: moving average process. +- LH :: Longuet---Higgins model. - <<<LAMP>>> :: Large Amplitude Motion Programme, a programme that simulates ship behaviour in ocean waves. - <<<CLT>>> :: central limit theorem. - <<<PM>>> :: Pierson---Moskowitz ocean wave spectrum approximation. - <<<YW>>> :: Yule---Walker equations. - <<<LS>>> :: least squares. -- <<<PDF>>> :: probability density function. +- PDF :: probability density function. - <<<CDF>>> :: cumulative distribution function. - <<<BSP>>> :: Bulk Synchronous Parallel. -- <<<OpenCL>>> :: Open Computing Language. +- OpenCL :: Open Computing Language. - <<<OpenGL>>> :: Open Graphics Library. -- <<<OpenMP>>> :: Open Multi-Processing. +- OpenMP :: Open Multi-Processing. - <<<MPI>>> :: Message Passing Interface. - <<<POSIX>>> :: Portable Operating System. - <<<FMA>>> :: Fused multiply-add. @@ -3763,8 +3821,8 @@ for Basic Research (projects no.\nbsp{}\mbox{16-07-01111}, \mbox{16-07-00886}, - <<<LAPACK>>> :: Linear Algebra Package. - <<<DNS>>> :: Dynamic name resolution. - <<<HPC>>> :: High-performance computing. -- <<<GCS>>> :: Gram---Charlier series. -- <<<SN>>> :: Skew normal distribution. +- GCS :: Gram---Charlier series. +- SN :: Skew normal distribution. - <<<PBS>>> :: Portable batch system. - Transcendental functions :: non-algebraic mathematical functions (i.e.\nbsp{}logarithmic, trigonometric etc.).