arma-thesis

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

commit e1c5f67fb72646b14cf86525f08dc1042f87194f
parent 53ed35d89a014685b7954d08e776aa11f719c09e
Author: Ivan Gankevich <igankevich@ya.ru>
Date:   Mon, 27 Feb 2017 12:11:43 +0300

Adjust figures size. Fix labels for org-babel code blocks.

Diffstat:
data/performance/overlap-factory.csv | 8++++----
data/performance/overlap-openmp.csv | 8++++----
phd-diss-ru.org | 55++++++++++++++++++++++++++++++++++++-------------------
phd-diss.org | 80++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
tex/frame-1.tex | 2+-
5 files changed, 94 insertions(+), 59 deletions(-)

diff --git a/data/performance/overlap-factory.csv b/data/performance/overlap-factory.csv @@ -1,7 +1,7 @@ t,mark 856632019315375, -856632366634850,G_0 -856632502311413,W_0 -856653615740198,W_1 -856653615746769,G_1 +856632366634850,G₀ +856632502311413,W₀ +856653615740198,W₁ +856653615746769,G₁ 856653634687539, diff --git a/data/performance/overlap-openmp.csv b/data/performance/overlap-openmp.csv @@ -1,7 +1,7 @@ t,mark 856601220966013, -856601399800174,G_0 -856619491863579,G_1 -856619505966724,W_0 -856631949369101,W_1 +856601399800174,G₀ +856619491863579,G₁ +856619505966724,W₀ +856631949369101,W₁ 856632017128894, diff --git a/phd-diss-ru.org b/phd-diss-ru.org @@ -1465,6 +1465,7 @@ legend( #+end_src #+caption: Вид плотности распределения eqref:eq:skew-normal-1 аппликат взволнованной морской поверхности при различных значениях асимметрии \(\gamma_1\) и эксцесса \(\gamma_2\). +#+label: fig:skew-normal-1 #+RESULTS: fig:skew-normal-1 [[file:build/skew-normal-1.pdf]] @@ -1516,6 +1517,7 @@ legend( #+end_src #+caption: Вид плотности распределения eqref:eq:skew-normal-2 волновых аппликат при различных значениях коэффициента асимметрии \(\alpha\). +#+label: fig:skew-normal-2 #+RESULTS: fig:skew-normal-2 [[file:build/skew-normal-2.pdf]] @@ -1590,6 +1592,7 @@ arma.plot_ramp_up_interval(label="Интервал разгона") #+end_src #+caption: Интевал разгона в начале оси \(OX\) реализации. +#+label: fig:ramp-up-interval #+RESULTS: fig:ramp-up-interval [[file:build/ramp-up-interval-ru.pdf]] @@ -1683,6 +1686,7 @@ arma.qqplot_grid( #+end_src #+caption: Спрямленные диаграммы для прогрессивных волн. +#+label: propagating-wave-distributions #+RESULTS: propagating-wave-distributions [[file:build/propagating-wave-qqplots.pdf]] @@ -1700,6 +1704,7 @@ arma.qqplot_grid( #+end_src #+caption: Спрямленные диаграммы для стоячих волн. +#+label: standing-wave-distributions #+RESULTS: standing-wave-distributions [[file:build/standing-wave-qqplots-ru.pdf]] @@ -1717,6 +1722,7 @@ for (i in seq(0, 4)) { #+end_src #+caption: Временные срезы АКФ для стоячих (слева) и прогрессивных (справа) волн. +#+label: acf-slices #+RESULTS: acf-slices [[file:build/acf-slices-ru.pdf]] @@ -1747,10 +1753,11 @@ eqref:eq:solution-2d-linear линейной теории, качественн позволяет сделать машинная точность). #+name: fig:potential-field-nonlinear -#+caption: Поле потенциала скорости прогрессивной волны \(\zeta(x,y,t) = \cos(2\pi x - t/2)\). Поле, полученное по формуле eqref:eq:solution-2d-full (слева) и по формуле линейной теории волн (справа). -#+attr_latex: :width 0.47\textwidth +#+caption: Поле потенциала скорости прогрессивной волны \(\zeta(x,y,t) = \cos(2\pi x - t/2)\). Поле, полученное по формуле eqref:eq:solution-2d-full (сверху) и по формуле линейной теории волн (снизу). #+begin_figure +#+attr_latex: :width 0.47\textwidth [[file:graphics/pressure/potential-5.eps]] +#+attr_latex: :width 0.47\textwidth [[file:graphics/pressure/potential-6.eps]] #+end_figure @@ -1769,7 +1776,7 @@ eqref:eq:old-sol-2d, сопоставимы для волн малых ампл волн. #+name: fig:velocity-field-2d -#+caption: Сравнение полей скоростей на поверхности моря, полученных по общей формуле (\(u_1\)) и формуле для волн малой амплитуды (\(u_2\)). Поле скоростей для поверхности волн малой амплитуды (слева) и большой амплитуды (справа). +#+caption: Сравнение полей скоростей на поверхности моря, полученных по общей формуле (\(u_1\)) и формуле для волн малой амплитуды (\(u_2\)). Поле скоростей для поверхности волн малой амплитуды (сверху) и большой амплитуды (снизу). #+begin_figure [[file:build/low-amp-nocolor.eps]] [[file:build/high-amp-nocolor.eps]] @@ -1914,6 +1921,7 @@ digraph { #+end_src #+caption: Схема конвейера обработки данных, реализующего генерацию взволнованной морской поверхности по АР модели. +#+label: fig:pipeline #+RESULTS: fig:pipeline [[file:build/pipeline-ru.pdf]] @@ -2031,7 +2039,7 @@ digraph { #+begin_src dot :exports results :file build/subord-ppl-ru.pdf graph G { - node [fontsize=14,margin="0.055,0",shape=box] + node [fontname="Old Standard",fontsize=14,margin="0.055,0",shape=box] graph [nodesep="0.25",ranksep="0.25",rankdir="LR"] edge [arrowsize=0.66] @@ -2047,8 +2055,8 @@ graph G { net_ppl [label="Конвейер для\nсетевых устройств"] proc_ppl [label="Конвейер\nдля процессов"] - upstream [label="Пул потоков upstream"] - downstream [label="Пул потоков downstream"] + upstream [label="Пул потоков\nupstream"] + downstream [label="Пул потоков\ndownstream"] } factory--parallel_ppl @@ -2110,29 +2118,31 @@ graph G { color=lightgrey app0_factory [label="Фабрика"] - app0 [label="Конвейер\nдочернего процесса"] + app0 [label="Конвейер\nдочернего\nпроцесса"] } - subgraph cluster_child1 { - label="Дочерний процесс 1" - style=filled - color=lightgrey - - app1_factory [label="Фабрика"] - app1 [label="Конвейер\nдочернего процесса"] - } +# subgraph cluster_child1 { +# label="Дочерний процесс 1" +# style=filled +# color=lightgrey +# +# app1_factory [label="Фабрика"] +# app1 [label="Конвейер\nдочернего процесса"] +# } } proc_ppl--app0 - proc_ppl--app1 +# proc_ppl--app1 app0_factory--app0 [constraint=false] - app1_factory--app1 [constraint=false] +# app1_factory--app1 [constraint=false] } #+end_src -#+caption: Отображение конвейеров родительского и дочернего процессов на вычислительные устройства. +#+caption: Отображение конвейеров родительского и дочернего процессов на вычислительные устройства. Сплошные линии обозначают агрегацию, пунктирные линии обозначают отображение между логическими и физическими сущностями. +#+attr_latex: :width \textwidth +#+label: fig:subord-ppl #+RESULTS: fig:subord-ppl [[file:build/subord-ppl-ru.pdf]] @@ -2371,6 +2381,7 @@ GotoBLAS и основанная на ней LAPACK, для непрерывно различные устройства, задействованные в вычислениях. #+name: fig:factory-performance +#+header: :width 5 :height 4 #+begin_src R :results output graphics :exports results :file build/factory-vs-openmp-ru.pdf source(file.path("R", "common.R")) arma.plot_factory_vs_openmp( @@ -2381,11 +2392,12 @@ arma.plot_factory_vs_openmp( #+end_src #+caption: Сравнение производительности реализаций программы на OpenMP и Factory. +#+label: fig:factory-performance #+RESULTS: fig:factory-performance [[file:build/factory-vs-openmp-ru.pdf]] #+name: fig:factory-overlap -#+header: :width 9 :height 4 +#+header: :width 7 :height 4 #+begin_src R :results output graphics :exports results :file build/factory-vs-openmp-overlap-ru.pdf source(file.path("R", "common.R")) par(mar=c(5, 6, 0, 1), pty="m") @@ -2397,6 +2409,7 @@ arma.plot_factory_vs_openmp_overlap( #+end_src #+caption: Наложение параллельных вычислений на \([G_0,G_1]\) и записи данных на диск на \([W_0,W_1]\). В реализации OpenMP наложение отсутствует. +#+label: fig:factory-overlap #+RESULTS: fig:factory-overlap [[file:build/factory-vs-openmp-overlap-ru.pdf]] @@ -2657,6 +2670,7 @@ digraph { #+end_src #+caption: Древовидная иерархия для 11 узлов для ветвления равного 2. +#+label: fig:tree-hierarchy-11 #+RESULTS: fig:tree-hierarchy-11 [[file:build/tree-hierarchy-11-ru.pdf]] @@ -2906,6 +2920,7 @@ TODO translate #+end_src #+caption: Пример работы алгоритма восстановления после сбоев. +#+label: fig:fail-over-example #+RESULTS: fig:fail-over-example [[file:build/fail-over-example-ru.pdf]] @@ -3012,6 +3027,7 @@ TODO translate #+end_src #+caption: Производительность программы генерации взволнованной морской поверхности при различных типах сбоев узлов. +#+label: fig:benchmark #+RESULTS: fig:benchmark Результаты экспериментов позволяют сделать вывод о том, что не важно, вышел ли @@ -3026,6 +3042,7 @@ TODO translate #+end_src #+caption: Замедление программы генерации взволнованной морской поверхности при различных типах сбоев по сравнению с запуском без сбоев но с уменьшенным на единицу количеством узлов. +#+label: fig:slowdown #+RESULTS: fig:slowdown **** Обсуждение результатов тестирования. diff --git a/phd-diss.org b/phd-diss.org @@ -1382,9 +1382,9 @@ where \(\phi(z)=\frac{1}{2}\mathrm{erf}(z/\sqrt{2})\), \(\gamma_1\)\nbsp{}--- sk (CDF). According to\nbsp{}cite:рожков1990вероятностные for ocean waves skewness is selected from interval \(0.1\leq\gamma_1\leq{0.52}]\) and kurtosis from interval \(0.1\leq\gamma_2\leq{0.7}\). Family of probability density functions for -different parameters is shown in fig.\nbsp{}[[fig:skew-normal-1]]. +different parameters is shown in fig.\nbsp{}[[fig-skew-normal-1]]. -#+name: fig:skew-normal-1 +#+NAME: fig-skew-normal-1 #+begin_src R :results output graphics :exports results :file build/skew-normal-1.pdf source(file.path("R", "common.R")) x <- seq(-3, 3, length.out=100) @@ -1411,7 +1411,8 @@ legend( #+end_src #+caption: Probability density function eqref:eq:skew-normal-1 of ocean wavy surface elevation for different values of skewness \(\gamma_1\) and kurtosis \(\gamma_2\). -#+RESULTS: fig:skew-normal-1 +#+label: fig-skew-normal-1 +#+RESULTS: fig-skew-normal-1 [[file:build/skew-normal-1.pdf]] **** Skew-normal distribution. @@ -1462,6 +1463,7 @@ legend( #+end_src #+caption: Probability density function eqref:eq:skew-normal-2 of ocean wavy surface for different values of skewness coefficient \(\alpha\). +#+label: fig:skew-normal-2 #+RESULTS: fig:skew-normal-2 [[file:build/skew-normal-2.pdf]] @@ -1530,6 +1532,7 @@ arma.plot_ramp_up_interval() #+end_src #+caption: Ramp-up interval at the beginning of the \(OX\) axis of the realisation. +#+label: fig:ramp-up-interval #+RESULTS: fig:ramp-up-interval [[file:build/ramp-up-interval.pdf]] @@ -1606,7 +1609,8 @@ they may (and often) overlap. Verification was performed for standing and propagating waves. The corresponding ACFs and quantile-quantile plots of wave characteristics distributions are shown -in fig. [[acf-slices]], [[standing-wave-distributions]], [[propagating-wave-distributions]]. +in +fig.\nbsp{}[[propagating-wave-distributions]],\nbsp{}[[standing-wave-distributions]],\nbsp{}[[acf-slices]]. #+name: propagating-wave-distributions #+begin_src R :results output graphics :exports results :file build/propagating-wave-qqplots.pdf @@ -1622,6 +1626,7 @@ arma.qqplot_grid( #+end_src #+caption: Quantile-quantile plots for propagating waves. +#+label: propagating-wave-distributions #+RESULTS: propagating-wave-distributions [[file:build/propagating-wave-qqplots.pdf]] @@ -1639,6 +1644,7 @@ arma.qqplot_grid( #+end_src #+caption: Quantile-quantile plots for standing waves. +#+label: standing-wave-distributions #+RESULTS: standing-wave-distributions [[file:build/standing-wave-qqplots.pdf]] @@ -1656,6 +1662,7 @@ for (i in seq(0, 4)) { #+end_src #+caption: Time slices of ACF for standing (left column) and propagating waves (right column). +#+label: acf-slices #+RESULTS: acf-slices [[file:build/acf-slices.pdf]] @@ -1686,10 +1693,11 @@ in the framework of linear wave theory are eliminated, shows no difference (as much as machine precision allows) in resulting velocity potential fields. #+name: fig:potential-field-nonlinear -#+caption: Velocity potential field of propagating wave \(\zeta(x,y,t) = \cos(2\pi x - t/2)\). Field produced by formula eqref:eq:solution-2d-full (left) and linear wave theory formula (right). -#+attr_latex: :width 0.47\textwidth +#+caption: Velocity potential field of propagating wave \(\zeta(x,y,t) = \cos(2\pi x - t/2)\). Field produced by formula eqref:eq:solution-2d-full (top) and linear wave theory formula (bottom). #+begin_figure +#+attr_latex: :width 0.47\textwidth [[file:graphics/pressure/potential-5.eps]] +#+attr_latex: :width 0.47\textwidth [[file:graphics/pressure/potential-6.eps]] #+end_figure @@ -1706,7 +1714,7 @@ velocity field is produced only by formula eqref:eq:solution-2d-full (fig.\nbsp{ satisfactory results without restriction on wave amplitudes. #+name: fig:velocity-field-2d -#+caption: Comparison of velocity field on the ocean wavy surface obtained by generic formula (\(u_1\)) and formula for small-amplitude waves (\(u_2\)). Velocity field for realisations containing small-amplitude (left) and large-amplitude (right) waves. +#+caption: Comparison of velocity field on the ocean 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. #+begin_figure [[file:build/low-amp-nocolor.eps]] [[file:build/high-amp-nocolor.eps]] @@ -1847,6 +1855,7 @@ digraph { #+end_src #+caption: Diagram of data processing pipeline, that implements ocean wavy surface generation via AR model. +#+label: fig:pipeline #+RESULTS: fig:pipeline [[file:build/pipeline.pdf]] @@ -1953,7 +1962,7 @@ methods by analysing their internal state. #+begin_src dot :exports results :file build/subord-ppl.pdf graph G { - node [fontsize=14,margin="0.055,0",shape=box] + node [fontname="Old Standard",fontsize=14,margin="0.055,0",shape=box] graph [nodesep="0.25",ranksep="0.25",rankdir="LR"] edge [arrowsize=0.66] @@ -1963,14 +1972,14 @@ graph G { color=lightgrey factory [label="Factory"] - parallel_ppl [label="Parallel pipeline"] - io_ppl [label="I/O pipeline"] - sched_ppl [label="Schedule-based pipeline"] - net_ppl [label="Network pipeline"] - proc_ppl [label="Process pipeline"] - - upstream [label="Upstream thread pool"] - downstream [label="Downstream thread pool"] + parallel_ppl [label="Parallel\npipeline"] + io_ppl [label="I/O\npipeline"] + sched_ppl [label="Schedule-based\npipeline"] + net_ppl [label="Network\npipeline"] + proc_ppl [label="Process\npipeline"] + + upstream [label="Upstream\nthread pool"] + downstream [label="Downstream\nthread pool"] } factory--parallel_ppl @@ -2036,27 +2045,29 @@ graph G { app0 [label="Child process\rpipeline"] } - subgraph cluster_child1 { - label="Child process 1" - style=filled - color=lightgrey - labeljust=right - - app1_factory [label="Factory"] - app1 [label="Child process\rpipeline"] - } +# subgraph cluster_child1 { +# label="Child process 1" +# style=filled +# color=lightgrey +# labeljust=right +# +# app1_factory [label="Factory"] +# app1 [label="Child process\rpipeline"] +# } } proc_ppl--app0 - proc_ppl--app1 +# proc_ppl--app1 app0_factory--app0 [constraint=false] - app1_factory--app1 [constraint=false] +# app1_factory--app1 [constraint=false] } #+end_src -#+caption: Mapping of parent and child process pipelines to compute devices. +#+caption: Mapping of parent and child process pipelines to compute devices. Solid lines denote aggregation, dashed lines denote mapping between logical and physical entities. +#+attr_latex: :width \textwidth +#+label: fig:subord-ppl #+RESULTS: fig:subord-ppl [[file:build/subord-ppl.pdf]] @@ -2226,6 +2237,7 @@ and this allows to balance the load across different devices involved in computation. #+name: fig:factory-performance +#+header: :width 5 :height 4 #+begin_src R :results output graphics :exports results :file build/factory-vs-openmp.pdf source(file.path("R", "common.R")) arma.plot_factory_vs_openmp( @@ -2236,11 +2248,12 @@ arma.plot_factory_vs_openmp( #+end_src #+caption: Performance comparison of OpenMP and Factory implementations. +#+label: fig:factory-performance #+RESULTS: fig:factory-performance [[file:build/factory-vs-openmp.pdf]] #+name: fig:factory-overlap -#+header: :width 9 :height 4 +#+header: :width 7 :height 4 #+begin_src R :results output graphics :exports results :file build/factory-vs-openmp-overlap.pdf source(file.path("R", "common.R")) par(mar=c(5, 6, 0, 1), pty="m") @@ -2252,6 +2265,7 @@ arma.plot_factory_vs_openmp_overlap( #+end_src #+caption: Overlap of parallel computations on \([G_0,G_1]\) and data output to disk on \([W_0,W_1]\). In OpenMP implementation there is no overlap. +#+label: fig:factory-overlap #+RESULTS: fig:factory-overlap [[file:build/factory-vs-openmp-overlap.pdf]] @@ -2463,7 +2477,7 @@ fan-out 2 is shown in fig.\nbsp{}[[fig:tree-hierarchy-11]]. #+begin_src dot :exports results :file build/tree-hierarchy-11.pdf digraph { - node [fontsize=14,margin="0.055,0",shape=box,style=rounded] + node [fontname="Old Standard",fontsize=14,margin="0.055,0",shape=box,style=rounded] graph [nodesep="0.15",ranksep="0.20",rankdir="BT"] edge [arrowsize=0.66] @@ -2493,6 +2507,7 @@ digraph { #+end_src #+caption: Tree hierarchy for 11 nodes with fan-out equals 2. +#+label: fig:tree-hierarchy-11 #+RESULTS: fig:tree-hierarchy-11 [[file:build/tree-hierarchy-11.pdf]] @@ -2702,7 +2717,7 @@ This simple approach allows to tolerate at most one failure of /any/ cluster nod per computational step or arbitrary number of subordinate nodes at any time during programme execution. -An example of fail over algorithm follows. +An example of fail over algorithm follows (fig.\nbsp{}[[fig:fail-over-example]]). 1. Initial state. Initially, computer cluster does not need to be configured except setting up local network. The algorithm assumes full connectivity of cluster nodes, and works best with tree topologies in which several network @@ -2751,6 +2766,7 @@ An example of fail over algorithm follows. #+end_src #+caption: An example of fail over algorithm in action. +#+label: fig:fail-over-example #+RESULTS: fig:fail-over-example [[file:build/fail-over-example.pdf]] @@ -2849,6 +2865,7 @@ inapplicable for programmes with complicated logic. #+end_src #+caption: Performance of hydrodynamics HPC application in the presence of node failures. +#+label: fig:benchmark #+RESULTS: fig:benchmark The results of the benchmark allows to conclude that no matter a principal or a @@ -2862,6 +2879,7 @@ when a backup node fails performance penalty is much higher. #+end_src #+caption: Slowdown of the hydrodynamics HPC application in the presence of different types of node failures compared to execution without failures but with the number of nodes minus one. +#+label: fig:slowdown #+RESULTS: fig:slowdown **** Discussion of test results. diff --git a/tex/frame-1.tex b/tex/frame-1.tex @@ -1,4 +1,4 @@ \input{tex/frame-0} \begin{tikzpicture}[remember picture,overlay] - \node[Task,label={[TaskLabel]90:\textbf{Master\vphantom{p}}}] (Master) at (A1.center) {\phantom{A}}; + \node[Task,label={[TaskLabel]90:\textbf{Principal\vphantom{p}}}] (Master) at (A1.center) {\phantom{A}}; \end{tikzpicture}%