arma-thesis

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

commit acc31800bd0791bb6ab9af555a4a8f3a70eb3830
parent 51e1882844195bd08959b90814d82f5ab14e9382
Author: Ivan Gankevich <igankevich@ya.ru>
Date:   Fri, 20 Jan 2017 16:15:47 +0300

Sync model overview p2.

Diffstat:
phd-diss-ru.org | 15+++++++++++++++
phd-diss.org | 20++++++++++----------
2 files changed, 25 insertions(+), 10 deletions(-)

diff --git a/phd-diss-ru.org b/phd-diss-ru.org @@ -1946,6 +1946,21 @@ cite:malewicz2010pregel,seo2010hama. Преимущество конвейера два вида сильно связанных друг с другом сущностей --- /управляющие объекты/ и /конвейеры/, --- которые используются совместно для написания программы. +Управляющие объекты реализуют логику (порядок выполнения) программы в методах +~act~ и ~react~ и хранят состояние текущей ветки исполнения. Как логика так и +состояние задаются программистом. В методе ~act~ какая-либо функция либо +вычисляется непосредственно, либо разлагается на вложенные функции +(представляемые подчиненными управляющими объектами), которые впоследствии +отправляются на конвейер. В методе ~react~ подчиненные управляющие объекты, +вернувшиеся с конвейера, обрабатываются их родительским объектом. Вызовы методов +~act~ и ~react~ производятся асинхронно внутри потоков, присоединенных к +конвейеру. Для каждого управляющего объекта метод ~act~ вызывается только один +раз, и для нескольких объектов вызовы происходят параллельно друг другу, в то +время как метод ~react~ вызывается один раз для каждого подчиненного объекта, и +все вызовы происходят в одном потоке для предотвращения одновременного изменения +состояния несколькими потоками (для разных родительских объектов могут +использоваться разные потоки). + *** Основополагающие принципы модели Модель конвейера обработки данных строится по следующим принципам, следование которым обеспечивает максимальную эффективность программы. diff --git a/phd-diss.org b/phd-diss.org @@ -1833,16 +1833,16 @@ programme. Kernels implement control flow logic in theirs ~act~ and ~react~ methods and store the state of the current control flow branch. Both logic and state are -implemented by a programmer. In ~act~ method some function is either -sequentially computed or decomposed into subtasks (represented by another set of -kernels) which are subsequently sent to a pipeline. In ~react~ method -subordinate kernels that returned from the pipeline are processed by their -parent. Calls to ~act~ and ~react~ methods are asynchronous and are made within -threads spawned by a pipeline. For each kernel ~act~ is called only once, and -for multiple kernels the calls are done in parallel to each other, whereas -~react~ method is called once for each subordinate kernel, and all the calls are -made in the same thread to prevent race conditions (for different parent kernels -different threads may be used). +implemented by a programmer. In ~act~ method some function is either directly +computed or decomposed into nested functions (represented by a set of +subordinate kernels) which are subsequently sent to a pipeline. In ~react~ +method subordinate kernels that returned from the pipeline are processed by +their parent. Calls to ~act~ and ~react~ methods are asynchronous and are made +within threads attached to a pipeline. For each kernel ~act~ is called only +once, and for multiple kernels the calls are done in parallel to each other, +whereas ~react~ method is called once for each subordinate kernel, and all the +calls are made in the same thread to prevent race conditions (for different +parent kernels different threads may be used). Pipelines implement asynchronous calls to ~act~ and ~react~, and try to make as many parallel calls as possible considering concurrency of the platform (no. of