arma-thesis

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

commit 3291815a343f2c00b876921925a93bc59870cbc3
parent 352dd5e59a07acbb452f238ec7ad5dce4c8446e0
Author: Ivan Gankevich <igankevich@ya.ru>
Date:   Thu, 26 Jan 2017 11:23:05 +0300

Sync algo mapping p1.

Diffstat:
phd-diss-ru.org | 33+++++++++++++++++----------------
phd-diss.org | 18++++++++++++++++++
2 files changed, 35 insertions(+), 16 deletions(-)

diff --git a/phd-diss-ru.org b/phd-diss-ru.org @@ -1786,25 +1786,26 @@ eqref:eq:old-sol-2d, сопоставимы для волн малых ампл ** Модель вычислений *** Отображение алгоритма генерации взволнованной поверхности на вычислительную модель Модель АРСС реализована в программном комплексе, работающем по принципу -вычислительного конвейера, в котором каждое звено применяет фильтр к выходным -данным предыдущего звена. Такая архитектура позволяет распределить различные -звенья конвейера по узлам вычислительного кластера, т.е. реализовать параллелизм -по операциям, а внутри каждого звена применить параллелизм по данным. На +вычислительного конвейера, в котором каждое звено применяет некоторую функцию к +выходным данным предыдущего звена. Звенья конвейера распределяются по узлам +вычислительного кластера, чтобы сделать возможным параллелизм по операциям, а +затем данные, перемещающиеся между звеньями конвейера распределяются между +ядрами процессора, чтобы сделать возможным параллелизм по данным. На [[fig:pipeline]] представлена схема конвейера обработки данных, в которой прямоугольниками со скругленными углами обозначены звенья конвейера, обычными -прямоугольниками --- массивы данных, передаваемые от одного звена к другому, а -стрелками --- направление передачи данных. Некоторые звенья разделены на -/секции/, каждая из которых обрабатывает отдельную часть массива объектов из -предметной области задачи. Если звенья соединены без использования /барьера/ -(горизонтальная или вертикальная полоса), то передача объектов между такими -звеньями происходит параллельно с вычислениями, по мере их готовности. Секции -работают параллельно на нескольких ядрах процессора (нескольких узлах кластера). -Таким образом, между множеством ядер процессора, секций конвейера и объектами +прямоугольниками --- массивы объектов из предметной области задачи, передаваемые +от одного звена к другому, а стрелками --- направление передачи данных. +Некоторые звенья разделены на /секции/, каждая из которых обрабатывает отдельную +часть массива. Если звенья соединены без использования /барьера/ (горизонтальная +или вертикальная полоса), то передача отдельных объектов между такими звеньями +происходит параллельно с вычислениями, по мере их готовности. Секции работают +параллельно на нескольких ядрах процессора (нескольких узлах кластера). Таким +образом, между множеством ядер процессора, секций звеньев конвейера и объектами устанавливается сюръективное отображение, т.е. на одном ядре процессора может -работать несколько секций конвейера, каждая из которых может обрабатывать -несколько частей данных последовательно, но одна секция не может работать сразу -на нескольких ядрах, а объект не может обрабатываться сразу несколькими секциями -конвейера. +работать несколько секций звеньев конвейера, каждая из которых может +обрабатывать несколько объектов последовательно, но одна секция не может +работать сразу на нескольких ядрах, а объект не может обрабатываться сразу +несколькими секциями конвейера. #+name: fig:pipeline #+begin_src dot :exports results :file build/pipeline-ru.pdf diff --git a/phd-diss.org b/phd-diss.org @@ -1720,6 +1720,24 @@ work. * High-performance software implementation of ocean wave simulation ** Computational model *** Mapping wavy surface generation algorithm on computational model +Software implementation of ARMA model works as a computational pipeline, in +which each joint applies some function to the output coming from the pipe of the +previous joint. Joints are distributed across computer cluster nodes to enable +function parallelism, and then data flowing through the joints is distributed +across processor cores to enable data parallelism. Figure [[fig:pipeline]] shows a +diagram of data processing pipeline in which rectangles with rounded corners +denote joints, regular rectangles denote arrays of problem domain objects +flowing from one joint to another, and arrows show flow direction. Some joints +are divided into /sections/ each of which process a separate part of the array. +If joints are connected without a /barrier/ (horizontal or vertical bar), then +transfer of separate objects between them is done in parallel to computations, +as they become available. Sections work in parallel on each processor core (or +node of the cluster). There is surjective mapping between a set of processor +cores, a set of pipeline joint sections and objects, i.e. each processor core +may run several sections, each of which may sequentially process several +objects, but a section can not work simultaneously on several processor cores, +and an object can not be processed simultaneously by several sections. + #+name: fig:pipeline #+begin_src dot :exports results :file build/pipeline.pdf digraph {