commit 3291815a343f2c00b876921925a93bc59870cbc3
parent 352dd5e59a07acbb452f238ec7ad5dce4c8446e0
Author: Ivan Gankevich <igankevich@ya.ru>
Date: Thu, 26 Jan 2017 11:23:05 +0300
Sync algo mapping p1.
Diffstat:
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 {