arma-thesis

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

commit f354def02cf472b5d39242e38da9569548d0d6e2
parent 18861e39fb2a100c40881430d94794a7863b3250
Author: Ivan Gankevich <igankevich@ya.ru>
Date:   Wed, 15 Feb 2017 17:33:30 +0300

Insert unbreakable spaces before table references.

Diffstat:
phd-diss-ru.org | 87+++++++++++++++++++++++++++++++++++++++++--------------------------------------
phd-diss.org | 14++++++--------
2 files changed, 51 insertions(+), 50 deletions(-)

diff --git a/phd-diss-ru.org b/phd-diss-ru.org @@ -1553,7 +1553,7 @@ legend( *** Алгоритм генерации взволнованной поверхности В модели АРСС значение подъема взволнованной поверхности в каждой точке зависит от предыдущих по пространству и времени значений, из-за чего в начале реализации -образуется так называемый /интервал разгона/ (см. рис.\nbsp{}[[fig:ramp-up-interval]])\nbsp{}--- +образуется так называемый /интервал разгона/ (см.\nbsp{}рис.\nbsp{}[[fig:ramp-up-interval]])\nbsp{}--- промежуток, на котором реализация не соответствует заданной АКФ. Способ решения этой проблемы зависит от контекста, в котором происходит моделирование. @@ -1600,16 +1600,16 @@ arma.plot_ramp_up_interval(label="Интервал разгона") записаны аналитически различными выражениями и представляют сложность при вычислении на компьютере. Каждая функция\nbsp{}--- это преобразование Фурье от линейной комбинации экспонент, которое сводится к плохо определенной дельта -функции комплексного аргумента (см. [[tab:delta-functions]]). Обычно такого типа -функции записывают как произведение дельта функций от действительной и мнимой -части, однако, такой подход не работает здесь, поскольку взятие обратного -преобразования Фурье не даст экспоненту, что сильно исказит результирующее поле -скоростей. Для получения однозначного аналитического выражения можно -воспользоваться нормировкой \(1/\Sinh{2\pi{u}{h}}\) (которая также включается в -выражение для коэффициентов \(E(u)\)). Численные эксперименты показывают, что -нормировка хоть и позволяет получить адекватное поле скоростей, оно мало -отличается от выражений из линейной теории волн, в которых члены с \(\zeta\) -опускаются. +функции комплексного аргумента (см.\nbsp{}табл.\nbsp{}[[tab:delta-functions]]). +Обычно такого типа функции записывают как произведение дельта функций от +действительной и мнимой части, однако, такой подход не работает здесь, поскольку +взятие обратного преобразования Фурье не даст экспоненту, что сильно исказит +результирующее поле скоростей. Для получения однозначного аналитического +выражения можно воспользоваться нормировкой \(1/\Sinh{2\pi{u}{h}}\) (которая +также включается в выражение для коэффициентов \(E(u)\)). Численные эксперименты +показывают, что нормировка хоть и позволяет получить адекватное поле скоростей, +оно мало отличается от выражений из линейной теории волн, в которых члены с +\(\zeta\) опускаются. #+name: tab:delta-functions #+caption: Формулы для вычисления \(\Fun{z}\) и \(\FunSecond{z}\) из [[#sec:pressure-2d]], использующие нормировку для исключения неоднозначности определения дельта функции комплексного аргумента. @@ -1635,7 +1635,7 @@ arma.plot_ramp_up_interval(label="Интервал разгона") *** Верификация интегральных характеристик взволнованной поверхности В\nbsp{}cite:рожков1990вероятностные авторы показывают, что некоторые характеристики -морских волн (перечисленные в таблице [[tab:weibull-shape]]) имеют распределение +морских волн (перечисленные в табл.\nbsp{}[[tab:weibull-shape]]) имеют распределение Вейбулла, а подъем взволнованной поверхности\nbsp{}--- нормальное распределение. Для верификации генерируемых моделями АР и СС реализаций используются спрямленные диаграммы (графики, в которых по оси \(OX\) откладываются квантили функции @@ -1731,7 +1731,7 @@ eqref:eq:solution-2d-full с известными формулами линей **** Отличие от формул линейной теории волн. Эксперимент показывает, что поля потенциалов скоростей, полученные по формуле eqref:eq:solution-2d-full для конечной глубины и по формуле -eqref:eq:solution-2d-linear линейной теории, качественно отличаются (см. рис.\nbsp{}[[fig:potential-field-nonlinear]]). Во-первых, контуры потенциала скорости имеют вид +eqref:eq:solution-2d-linear линейной теории, качественно отличаются (см.\nbsp{}рис.\nbsp{}[[fig:potential-field-nonlinear]]). Во-первых, контуры потенциала скорости имеют вид затухающей синусоиды, что отличается от овальной формы, описываемой линейной теории волн. Во-вторых, по мере приближения к дну водоема потенциал скорости затухает гораздо быстрее, чем в линейной теории, а область, где сконцентрирована @@ -2007,7 +2007,7 @@ digraph { параграфе. Для каждого устройства используется отдельный конвейер. Существуют конвейеры для параллельной обработки, обработки по расписанию (периодические и отложенные задачи) и промежуточный конвейер для обработки управляющих объектов -на узлах кластера (см. рис.\nbsp{}[[fig:subord-ppl]]). +на узлах кластера (см.\nbsp{}рис.\nbsp{}[[fig:subord-ppl]]). По принципу работу механизм управляющих объектов и конвейеров напоминает механизм работы процедур и стеков вызовов, с тем лишь преимуществом, что методы @@ -2239,22 +2239,25 @@ graph G { поверхности выполняется быстрее на скалярном процессоре\nbsp{}cite:degtyarev2011effi. Создание программной реализации происходило в два этапа: на первом этапе был -создан и отлажен прототип в программной среде Mathematica\nbsp{}cite:mathematica10, а -на втором этапе логика программы была переписана на более низкоуровневом языке -C++, и для получения эффективно работающего параллельного кода были проведены -эксперименты с рядом библиотек. С помощью этих библиотек были реализованы -функции генерации взволнованной морской поверхности, а также процедура расчета -гидродинамических давлений под сгенерированной поверхностью. Тестирование -производилось на вычислительных машинах кластера РЦ ВЦ СПбГУ (см. -[[tab:autoreg-testbed]]) и позволило получить два основных результата. Во-первых, -использование видеокарт неэффективно при генерации волновой поверхности (см. -[[tab:autoreg-performance]]), что обусловлено сравнительно небольшим количеством -арифметических операций по отношению к количеству операций с памятью устройства, -а также отсутствием трансцендентных функций в реализации алгоритма\nbsp{}cite:degtyarev2011effi. Во-вторых, для генерации одной реализации взволнованной -морского поверхности одной многопроцессорной машины достаточно для эффективного -и быстрого решения задачи (см. рис.\nbsp{}[[fig:autoreg-performance]]). По результатам -тестирования стандарт OpenMP был выбран в качестве основного, как наиболее -эффективный и наиболее подходящий для расчетов на многопроцессорной системе. +создан и отлажен прототип в программной среде +Mathematica\nbsp{}cite:mathematica10, а на втором этапе логика программы была +переписана на более низкоуровневом языке C++, и для получения эффективно +работающего параллельного кода были проведены эксперименты с рядом библиотек. С +помощью этих библиотек были реализованы функции генерации взволнованной морской +поверхности, а также процедура расчета гидродинамических давлений под +сгенерированной поверхностью. Тестирование производилось на вычислительных +машинах кластера РЦ ВЦ СПбГУ (см.\nbsp{}табл.\nbsp{}[[tab:autoreg-testbed]]) и +позволило получить два основных результата. Во-первых, использование видеокарт +неэффективно при генерации волновой поверхности +(см.\nbsp{}табл.\nbsp{}[[tab:autoreg-performance]]), что обусловлено сравнительно +небольшим количеством арифметических операций по отношению к количеству операций +с памятью устройства, а также отсутствием трансцендентных функций в реализации +алгоритма\nbsp{}cite:degtyarev2011effi. Во-вторых, для генерации одной +реализации взволнованной морского поверхности одной многопроцессорной машины +достаточно для эффективного и быстрого решения задачи +(см.\nbsp{}рис.\nbsp{}[[fig:autoreg-performance]]). По результатам тестирования +стандарт OpenMP был выбран в качестве основного, как наиболее эффективный и +наиболее подходящий для расчетов на многопроцессорной системе. #+name: fig:autoreg-performance #+caption: Скорость генерации взволнованной поверхности на многопроцессорной системе для типовых размеров реализации (сверху). Масштабируемость (относительное ускорение при увеличении количества процессоров) программной реализации на многопроцессорной системе для типовых размеров реализации (снизу). Временная протяженность 512 с. @@ -2321,7 +2324,7 @@ GotoBLAS и основанная на ней LAPACK, для непрерывно использованием OpenMP для параллельных вычислений, и была переписана с использованием POSIX потоков для того чтобы реализовать алгоритм распределения нагрузки. Производительность двух реализаций сравнивалась на платформе, -конфигурация которой приведена в таблице [[tab:multicore-specs]]. +конфигурация которой приведена в табл.\nbsp{}[[tab:multicore-specs]]. #+name: tab:multicore-specs #+caption: Конфигурация многоядерной системы. @@ -2702,7 +2705,7 @@ digraph { **** Иерархия управляющих объектов. Для распределения нагрузки узлы кластера объединяются в древовидную иерархию -(см. раздел [[#sec:node-discovery]]), и нагрузка распределяется между +(см.\nbsp{}раздел [[#sec:node-discovery]]), и нагрузка распределяется между непосредственными соседями узла, так что при запуске управляющего объекта на подчиненном узле главный узел также получают часть его подчиненных объектов. Это делает систему симметричной и легкой в обслуживании: на каждом узле установлен @@ -2827,16 +2830,16 @@ TODO translate [[file:build/fail-over-example-ru.pdf]] **** Результаты тестирования. -Методы отказоустойчивости были протестированы на физическом кластере (см. -[[tab:cluster]]) на примере программы, генерирующей взволнованную морскую -поверхность, подробно описанной в разделе [[#sec:arma-algorithms]]. Программа -состоит из серии фильтров, каждый из которых применяется к результату работы -предыдущего. Некоторые из фильтров вычисляются параллельно, так что вся -программа состоит из последовательно выполняющихся шагов, некоторые из -которых внутри реализованы параллельно из соображений эффективности. Только -наиболее ресурсоемкий этап программы (генерация взволнованной морской -поверхности) выполняется параллельно на всех узлах, другие этапы выполняются -параллельно на всех процессорных ядрах главного узла. +Методы отказоустойчивости были протестированы на физическом кластере +(см.\nbsp{}табл.\nbsp{}[[tab:cluster]]) на примере программы, генерирующей +взволнованную морскую поверхность, подробно описанной в разделе +[[#sec:arma-algorithms]]. Программа состоит из серии фильтров, каждый из которых +применяется к результату работы предыдущего. Некоторые из фильтров вычисляются +параллельно, так что вся программа состоит из последовательно выполняющихся +шагов, некоторые из которых внутри реализованы параллельно из соображений +эффективности. Только наиболее ресурсоемкий этап программы (генерация +взволнованной морской поверхности) выполняется параллельно на всех узлах, другие +этапы выполняются параллельно на всех процессорных ядрах главного узла. #+name: tab:cluster #+caption: Конфигурация кластера, на котором проводились эксперименты. diff --git a/phd-diss.org b/phd-diss.org @@ -1540,7 +1540,7 @@ two-dimensional pressure determination problem there are functions \(\FunSecond{z}=\InverseFourierY{\Sinh{2\pi{u}{z}}}{x}\) which has multiple analytic representations and are difficult to compute. Each function is a Fourier transform of linear combination of exponents which reduces to poorly -defined Dirac delta function of a complex argument (see [[tab:delta-functions]]). +defined Dirac delta function of a complex argument (see table\nbsp{}[[tab:delta-functions]]). The usual way of handling this type of functions is to write them as multiplication of Dirac delta functions of real and imaginary part, however, this approach does not work here, because applying inverse Fourier transform to @@ -1576,7 +1576,7 @@ distributions of different wave characteristics. *** Verification of wavy surface integral characteristics In\nbsp{}cite:рожков1990вероятностные the authors show that several ocean wave -characteristics (listed in table [[tab:weibull-shape]]) have Weibull distribution, +characteristics (listed in table\nbsp{}[[tab:weibull-shape]]) have Weibull distribution, and wavy surface elevation has Gaussian distribution. In order to verify that distributions corresponding to generated realisation are correct, quantile-quantile plots are used (plots where analytic quantile values are used @@ -2160,7 +2160,7 @@ convergence rate and non-existence of periodicity allows using far fewer coefficients compared to LH model. ARMA implementation uses several libraries of reusable mathematical functions -and numerical algorithms (listed in [[tab:arma-libs]]), and was implemented using +and numerical algorithms (listed in table\nbsp{}[[tab:arma-libs]]), and was implemented using several parallel programming technologies (MPI, OpenMP, OpenCL) to find the most efficient one. @@ -2182,8 +2182,7 @@ load on processor cores, however, as shown by tests, has high load on storage device. Before testing wavy surface generation was implemented using OpenMP for parallel computations and in order to implement load balancing algorithm was rewritten using POSIX threads. Performance of the two implementations was -compared on the platform with the configuration listed in table -[[tab:multicore-specs]]. +compared on the platform with the configuration listed in table\nbsp{}[[tab:multicore-specs]]. #+name: tab:multicore-specs #+caption: Multi-core system configuration. @@ -2728,7 +2727,7 @@ An example of fail over algorithm follows. [[file:build/fail-over-example.pdf]] **** Evaluation results. -Factory framework is evaluated on physical cluster (Table [[tab:cluster]]) on the +Factory framework is evaluated on physical cluster (table\nbsp{}[[tab:cluster]]) on the example of HPC application, that generates ocean wavy surface, which is described in detail in section [[#sec:arma-algorithms]]. The application consists of a series of filters, each of which is applied to the result of the previous one. @@ -2770,8 +2769,7 @@ time after the programme start which is equivalent approximately to \(1/3\) of the total run time without failures on a single node. The application immediately recognised node as offline, because the corresponding connection was closed; in real-world scenario, however, the failure is detected after a -configurable time-out. All relevant parameters are summarised in table -[[tab:benchmark]]. The results of these runs were compared to the run without node +configurable time-out. All relevant parameters are summarised in table\nbsp{}[[tab:benchmark]]. The results of these runs were compared to the run without node failures (fig.\nbsp{}[[fig:benchmark]] and\nbsp{}[[fig:slowdown]]). There is considerable difference in overall application performance for