commit a6aad3ce0196124bbad5e73334e57f68d946a0dc
parent c563304fc1b9e5e34d6e52b03f305ba120d6cf3d
Author: Ivan Gankevich <igankevich@ya.ru>
Date: Sat, 5 Nov 2016 11:17:11 +0300
Finish outline.
- Add outline for the last part.
- Add published papers.
- Synchronise postamble.
Diffstat:
5 files changed, 378 insertions(+), 22 deletions(-)
diff --git a/bib/published-papers.bib b/bib/published-papers.bib
@@ -0,0 +1,266 @@
+
+
+@article{degtyarev2015hydr,
+ private = {},
+ author = {Degtyarev, A. and Gankevich, I.},
+ journal = {Physics of Particles and Nuclei Letters},
+ publisher = {Pleiades Publishing},
+ language = {english},
+ number = {3},
+ pages = {389--391},
+ rawentry = {A. Degtyarev and I. Gankevich Hydrodynamic Pressure Computation under Real Sea Surface on Basis of Autoregressive Model of Irregular Waves // Physics of Particles and Nuclei Letters, 2015. -- Vol. 12, -- № 3. -- P. 389-391},
+ title = {Hydrodynamic Pressure Computation under Real Sea Surface on Basis of Autoregressive Model of Irregular Waves},
+ volume = {12},
+ year = {2015},
+ doi={10.1134/S1547477115030073},
+ category = {oceanwaves}
+}
+
+@inproceedings{degtyarev2014calc,
+ author = {Degtyarev, A. and Gankevich, I.},
+ booktitle = {14\textsuperscript{th} International Ship Stability Workshop},
+ language = {english},
+ pages = {135--139},
+ rawentry = {A.Degtyarev, I.Gankevich Calculation Scheme for Wave Pressures with Autoregression Method // 14\textsuperscript{th} International Ship Stability Workshop, 2014. -- P. 135-139},
+ title = {Calculation Scheme for Wave Pressures with Autoregression Method},
+ year = {2014},
+ category = {oceanwaves}
+}
+
+@article{degtiarev2013vychi,
+ author = {Дегтярев, А. Б. and Ганкевич, И. Г.},
+ journal = {Труды {XLV} НТК ``Проблемы мореходных качеств судов, корабельной гидромеханики и освоения шельфа'' (Крыловские чтения)},
+ language = {russian},
+ pages = {25--29},
+ rawentry = {Дегтярев А.Б., Ганкевич И.Г. Вычисление гидродинамических давлений под реальной морской поверхностью на основе авторегрессионной модели нерегулярного волнения // Труды {XLV} НТК ``Проблемы мореходных качеств судов, корабельной гидромеханики и освоения шельфа'' (Крыловские чтения), 2013. -- С. 25-29},
+ title = {Вычисление гидродинамических давлений под реальной морской поверхностью на основе авторегрессионной модели нерегулярного волнения},
+ year = {2013},
+ category = {oceanwaves}
+}
+
+@misc{degtyarev2013hydr,
+ address = {Dubna, Russia},
+ author = {Degtyarev, A. and Gankevich, I.},
+ booktitle = {Book of Abstr. of the international conference ``Mathematical Modeling and Computational Physics'' ({MMCP}'13)},
+ language = {english},
+ pages = {65},
+ rawentry = {Degtyarev A., Gankevich I Hydrodynamic pressure computation under real sea surface on basis of autoregressive model of irregular waves // Book of Abstr. of the international conference ``Mathematical Modeling and Computational Physics'' ({MMCP}'13) -- Dubna, Russia, -- 2013. -- P. 65},
+ title = {Hydrodynamic pressure computation under real sea surface on basis of autoregressive model of irregular waves},
+ year = {2013},
+ category = {oceanwaves}
+}
+
+@inproceedings{degtyarev2012eval,
+ address = {Athens, Greece},
+ author = {Degtyarev, A. and Gankevich, I.},
+ booktitle = {Proceedings of 11\textsuperscript{th} International Conference ``Stability of Ships and Ocean Vehicles''},
+ language = {english},
+ pages = {841--852},
+ rawentry = {A.Degtyarev, I.Gankevich Evaluation of hydrodynamic pressures for autoregression model of irregular waves // Proceedings of 11\textsuperscript{th} International Conference ``Stability of Ships and Ocean Vehicles'' -- Athens, Greece, -- 2012. -- P. 841-852},
+ title = {Evaluation of hydrodynamic pressures for autoregression model of irregular waves},
+ year = {2012},
+ category = {oceanwaves}
+}
+
+@inproceedings{degtyarev2011effi,
+ address = {Yerevan, Armenia},
+ author = {Degtyarev, A. and Gankevich, I.},
+ booktitle = {Proceedings of 8\textsuperscript{th} International Conference ``Computer Science \& Information Technologies''},
+ language = {english},
+ pages = {248--251},
+ rawentry = {Degtyarev A., Gankevich I. Efficiency Comparison of Wave Surface Generation Using {OpenCL}, {OpenMP} and {MPI} // Proceedings of 8\textsuperscript{th} International Conference ``Computer Science \& Information Technologies'' -- Yerevan, Armenia, -- 2011. -- P. 248-251},
+ title = {Efficiency Comparison of Wave Surface Generation Using {OpenCL}, {OpenMP} and {MPI}},
+ year = {2011},
+ category = {oceanwaves}
+}
+
+@article{gankevich2010srav,
+ author = {Ганкевич, И. Г. and Дегтярев, А. Б. and {Соэ Моэ Лвин}},
+ journal = {Морские интеллектуальные технологии},
+ language = {russian},
+ pages = {10--13},
+ rawentry = {Ганкевич И. Г., Дегтярев А. Б., Соэ Моэ Лвин СРАВНЕНИЕ ЭФФЕКТИВНОСТИ ПРИМЕНЕНИЯ {MPI} И {OpenCL} ДЛЯ ГЕНЕРАЦИИ ВОЛНОВОЙ ПОВЕРХНОСТИ // МОРСКИЕ ИНТЕЛЛЕКТУАЛЬНЫЕ ТЕХНОЛОГИИ, 2010. -- № 4. -- P. 10-13},
+ title = {Сравнение эффективности применения {MPI} и {OpenCL} для генерации волновой поверхности },
+ volume = {4},
+ year = {2010},
+ category = {oceanwaves}
+}
+
+
+@article{gankevich2015spec,
+ title = {Efficient processing and classification of wave energy spectrum data with a distributed pipeline},
+ author = {Ivan Gankevich and Alexander Degtyarev},
+ journal={Computer Research and Modeling},
+ publisher={Institute of Computer Science},
+ volume={7},
+ number={3},
+ pages={517--520},
+ year={2015},
+ keywords={distributed system, big data, data processing, parallel computing},
+ abstract={
+ Processing of large amounts of data often consists of several steps, e.g. pre- and post-processing stages, which are executed sequentially with data written to disk after each step, however, when pre-processing stage for each task is different the more efficient way of processing data is to construct a pipeline which streams data from one stage to another. In a more general case some processing stages can be factored into several parallel subordinate stages thus forming a distributed pipeline where each stage can have multiple inputs and multiple outputs. Such processing pattern emerges in a problem of classification of wave energy spectra based on analytic approximations which can extract different wave systems and their parameters (e.g. wave system type, mean wave direction) from spectrum. Distributed pipeline approach achieves good performance compared to conventional “sequential-stage” processing.
+ },
+ language={english},
+ category={hpc}
+}
+
+@inproceedings{gankevich2015subord,
+ author={Gankevich, Ivan and Tipikin, Yuri and Gaiduchok, Vladimir},
+ booktitle={International Conference on High Performance Computing Simulation (HPCS)},
+ title={Subordination: Cluster management without distributed consensus},
+ year={2015},
+ pages={639-642},
+ keywords={Clustering algorithms;Computers;Heuristic algorithms;IP networks;Network topology;Nominations and elections;Topology;cluster accounting;cluster management;cluster monitoring;job scheduling;leader election},
+ doi={10.1109/HPCSim.2015.7237106},
+ abstract = {
+ Nowadays, many cluster management systems rely on distributed consensus algorithms to elect a leader that orchestrates subordinate nodes. Contrary to these studies we propose consensus-free algorithm that arranges cluster nodes into multiple levels of subordination. The algorithm structures IP address range of cluster network so that each node has ranked list of candidates, from which it chooses a leader. The results show that this approach easily scales to a large number of nodes due to its asynchronous nature, and enables fast recovery from node failures as they occur only on one level of hierarchy. Multiple levels of subordination are useful for efficiently collecting monitoring and accounting data from large number of nodes, and for scheduling general-purpose tasks on a cluster.
+ },
+ note = {Outstanding poster paper award.},
+ language = {english},
+ category = {hpc}
+}
+
+@incollection{gankevich2015novel,
+ year={2015},
+ isbn={978-3-319-21409-2},
+ booktitle={Computational Science and Its Applications -- ICCSA 2015},
+ volume={9158},
+ series={Lecture Notes in Computer Science},
+ editor={Gervasi, Osvaldo and Murgante, Beniamino and Misra, Sanjay and Gavrilova, Marina L. and Rocha, Ana Maria Alves Coutinho and Torre, Carmelo and Taniar, David and Apduhan, Bernady O.},
+ title={Novel Approaches for Distributing Workload on Commodity Computer Systems},
+ publisher={Springer International Publishing},
+ keywords={Long-lived transactions; Distributed pipeline; Node discovery; Software engineering; Distributed computing; Cluster computing},
+ author={Gankevich, Ivan and Tipikin, Yuri and Degtyarev, Alexander and Korkhov, Vladimir},
+ pages={259-271},
+ language={english},
+ category={hpc}
+}
+
+@article{gankevich2014meto,
+ author = {Ганкевич, И. Г. and Дегтярев, А. Б.},
+ journal = {Процессы управления и устойчивость},
+ language = {russian},
+ number = {17},
+ pages = {295--300},
+ rawentry = {Ганкевич И.Г., Дегтярев А.Б. Методы распределения нагрузки на многопроцессорную систему // Процессы управления и устойчивость, 2014. -- T. 1(17), -- С. 295-300},
+ title = {Методы распределения нагрузки на многопроцессорную систему },
+ volume = {1},
+ year = {2014},
+ category = {hpc}
+}
+
+@inproceedings{gankevich2013mode,
+ address = {Yerevan, Armenia},
+ author = {Gankevich, Ivan and Degtyarev, Alexander},
+ booktitle = {Proceedings of {IX} International Conference on Computer Science and Information Tecnologies ({CSIT}'13)},
+ language = {english},
+ pages = {240--244},
+ rawentry = {Ivan Gankevich, Alexander Degtyarev Model of distributed computations in virtual testbed // Proceedings of {IX} International Conference on Computer Science and Information Tecnologies ({CSIT}'13) -- Yerevan, Armenia, -- 2013. -- P. 240-244},
+ title = {Model of distributed computations in virtual testbed},
+ year = {2013},
+ category = {hpc}
+}
+
+@inbook{bogdanov2015vsc,
+ title={Virtual Supercomputer as basis of Scientific Computing},
+ author={Alexander Bogdanov and Alexander Degtyarev and Vladimir Korkhov and Vladimir Gaiduchok and Ivan Gankevich},
+ editor={Thomas S. Clary},
+ year={2015},
+ chapter={5},
+ volume={11},
+ pages={159--198},
+ publisher={Nova Science Publishers},
+ booktitle={Horizons in Computer Science Research},
+ isbn={978-1-63482-499-6},
+ abstract = {
+ Nowadays supercomputer centers strive to provide their computational resources as services, however, present infrastructure is not particularly suited for such a use. First of all, there are standard application programming interfaces to launch computational jobs via command line or a web service, which work well for a program but turn out to be too complex for scientists: they want applications to be delivered to them from a remote server and prefer to interact with them via graphical interface. Second, there are certain applications which are dependent on older versions of operating systems and libraries and it is either non-practical to install those old systems on a cluster or there exists some conflict between these dependencies. Virtualization technologies can solve this problem, but they are not too popular in scientific computing due to overheads introduced by them. Finally, it is difficult to automatically estimate optimal resource pool size for a particular task, thus it often gets done manually by a user. If the large resource pool is requested for a minor task, the efficiency degrades. Moreover, cluster schedulers depend on estimated wall time to execute the jobs and since it cannot be reliably predicted by a human or a machine their efficiency suffers as well.
+
+ Applications delivery, efficient operating system virtualization and dynamic application resource pool size defining constitute the two problems of scientific computing: complex application interfaces and inefficient use of resources available --- and virtual supercomputer is the way to solve them. The research shows that there are ways to make virtualization technologies efficient for scientific computing: the use of lightweight application containers and dynamic creation of these containers for a particular job are both fast and transparent for a user. There are universal ways to deliver application output to a front-end using execution of a job on a cluster and presenting its results in a graphical form. Finally, an application framework can be developed to decompose parallel application into small independent parts with easily predictable execution time, to simplify scheduling via existing algorithms.
+
+ The aim of this chapter is to promote the key idea of a virtual supercomputer: to harness all available HPC resources and provide users with convenient access to them. Such a challenge can be effectively faced using contemporary virtualization technologies. They can materialize the long-term dream of having a supercomputer at your own desk.
+ },
+ language={english},
+ category={virtualisation}
+}
+
+@article{bogdanov2015hybrid,
+ title = {Running applications on a hybrid cluster},
+ author = {Bogdanov, A. and Gankevich, I. and Gayduchok V. and Yuzhanin, N.},
+ journal={Computer Research and Modeling},
+ publisher={Institute of Computer Science},
+ volume={7},
+ number={3},
+ pages={475--483},
+ year={2015},
+ keywords={GPGPU, HPC, computational clusters, OpenFOAM, LINPACK, ViennaCL, CUDA, OpenCL},
+ abstract={
+ A hybrid cluster implies the use of computational devices with radically different architectures. Usually, these are conventional CPU architecture (e.g. {x86_64}) and GPU architecture (e. g. NVIDIA CUDA). Creating and exploiting such a cluster requires some experience: in order to harness all computational power of the described system and get substantial speedup for computational tasks many factors should be taken into account. These factors consist of hardware characteristics (e.g. network infrastructure, a type of data storage, GPU architecture) as well as software stack (e.g. MPI implementation, GPGPU libraries). So, in order to run scientific applications GPU capabilities, software features, task size and other factors should be considered.
+
+ This report discusses opportunities and problems of hybrid computations. Some statistics from tests programs and applications runs will be demonstrated. The main focus of interest is open source applications (e. g. OpenFOAM) that support GPGPU (with some parts rewritten to use GPGPU directly or by replacing libraries).
+
+ There are several approaches to organize heterogeneous computations for different GPU architectures out of which CUDA library and OpenCL framework are compared. CUDA library is becoming quite typical for hybrid systems with NVIDIA cards, but OpenCL offers portability opportunities which can be a determinant factor when choosing framework for development. We also put emphasis on multi-GPU systems that are often used to build hybrid clusters. Calculations were performed on a hybrid cluster of SPbU computing center.
+ },
+ language={english},
+ category={coop}
+}
+
+@article{gankevich2015virtcluster,
+ title = {Applications of on-demand virtual clusters to high performance computing},
+ author = {Gankevich, I. and Balyan, S. and Abrahamyan, S. and Korkhov, V.},
+ journal={Computer Research and Modeling},
+ publisher={Institute of Computer Science},
+ volume={7},
+ number={3},
+ pages={511--516},
+ year={2015},
+ keywords={virtual machine, lightweight virtualisation, application containers},
+ abstract={
+ Virtual machines are usually associated with an ability to create them on demand by calling web services, then these machines are used to deliver resident services to their clients; however, providing clients with an ability to run an arbitrary programme on the newly created machines is beyond their power. Such kind of usage is useful in a high performance computing environment where most of the resources are consumed by batch programmes and not by daemons or services. In this case a cluster of virtual machines is created on demand to run a distributed or parallel programme and to save its output to a network attached storage. Upon completion this cluster is destroyed and resources are released. With certain modifications this approach can be extended to interactively deliver computational resources to the user thus providing virtual desktop as a service. Experiments show that the process of creating virtual clusters on demand can be made efficient in both cases.
+ },
+ language={english},
+ category={virtualisation}
+}
+
+@incollection{bogdanov2015sched,
+ year={2015},
+ isbn={978-3-319-21409-2},
+ booktitle={Computational Science and Its Applications -- ICCSA 2015},
+ volume={9158},
+ series={Lecture Notes in Computer Science},
+ editor={Gervasi, Osvaldo and Murgante, Beniamino and Misra, Sanjay and Gavrilova, Marina L. and Rocha, Ana Maria Alves Coutinho and Torre, Carmelo and Taniar, David and Apduhan, Bernady O.},
+ doi={10.1007/978-3-319-21410-8_23},
+ title={Profiling Scheduler for Efficient Resource Utilization},
+ publisher={Springer International Publishing},
+ keywords={Computational cluster; Scheduler; HPC; Profiling; Resource sharing; Load balancing; Networking},
+ author={Bogdanov, Alexander and Gaiduchok, Vladimir and Ahmed, Nabil and Cubahiro, Amissi and Gankevich, Ivan},
+ pages={299-310},
+ abstract = {
+ Optimal resource utilization is one of the most important and most challenging tasks for computational centers. A typical contemporary center includes several clusters. These clusters are used by many clients. So, administrators should set resource sharing policies that will meet different requirements of different groups of users. Users want to compute their tasks fast while organizations want their resources to be utilized efficiently. Traditional schedulers do not allow administrator to efficiently solve these problems in that way. Dynamic resource reallocation can improve the efficiency of system utilization while profiling running applications can generate important statistical data that can be used in order to optimize future application usage. These are basic advantages of a new scheduler that are discussed in this paper.
+ },
+ language={english},
+ category={coop}
+}
+
+@article{gankevich2014cons,
+ author = {Gankevich, Ivan and Korkhov, Vladimir and Balyan, Serob and Gaiduchok, Vladimir and Gushchanskiy, Dmitry and Tipikin, Yuri and Degtyarev, Alexander and Bogdanov, Alexander},
+ journal = {Lecture Notes in Computer Science},
+ language = {english},
+ pages = {341--354},
+ rawentry = {Ivan Gankevich, Vladimir Korkhov, Serob Balyan, Vladimir Gaiduchok, Dmitry Gushchanskiy, Yuri Tipikin, Alexander Degtyarev, Alexander Bogdanov Constructing Virtual Private Supercomputer Using Virtualization and Cloud Technologies // Lecture Notes in Computer Science, 2014. -- Vol. 8584, -- P. 341-354},
+ title = {Constructing Virtual Private Supercomputer Using Virtualization and Cloud Technologies},
+ volume = {8584},
+ year = {2014},
+ category = {virtualisation}
+}
+
+@inproceedings{gankevich2013virt,
+ author = {Gankevich, I. and Gaiduchok, V. and Gushchanskiy, D. and Tipikin, Yu. and Korkhov, V. and Degtyarev, A. and Bogdanov, A. and Zolotarev, V.},
+ booktitle = {{IEEE} conference publication},
+ language = {english},
+ pages = {1--6},
+ rawentry = {Gankevich I., Gaiduchok V., Gushchanskiy D., Tipikin Yu., Korkhov V., Degtyarev A., Bogdanov A., Zolotarev V. Virtual private supercomputer: Design and evaluation // {IEEE} CONFERENCE PUBLICATION, 2013. -- Vol. 6710358, -- P. 1-6},
+ title = {Virtual private supercomputer: Design and evaluation},
+ volume = {6710358},
+ year = {2013},
+ category = {virtualisation}
+}
diff --git a/phd-diss-ru.org b/phd-diss-ru.org
@@ -4,12 +4,14 @@
#+LANGUAGE: ru
#+LATEX_CLASS: gost
#+LATEX_CLASS_OPTIONS: [hidelinks,fontsize=14pt,paper=a4,pagesize,DIV=calc]
-#+LATEX_HEADER: \IfFileExists{./preamble.tex}{\input{preamble}}{}
+#+LATEX_HEADER: \IfFileExists{./preamble.tex}{\input{preamble}
#+LATEX_HEADER: \organization{Санкт-Петербургский государственный университет}
#+LATEX_HEADER: \manuscript{на правах рукописи}
#+LATEX_HEADER: \degree{Диссертация на соискание ученой степени\\кандидата физико-математических наук}
#+LATEX_HEADER: \speciality{Специальность 05.13.18\\Математическое моделирование, численные методы и комплексы программ}
#+LATEX_HEADER: \supervisor{Научный руководитель\\д.т.н Дегтярев Александр Борисович}
+#+LATEX_HEADER: \newcites{published}{Список опубликованных по теме диссертации работ}
+#+LATEX_HEADER: }{}
#+OPTIONS: todo:nil title:nil H:5
#+begin_latex
@@ -1013,6 +1015,19 @@ exit
*** TODO Нефизическая природа модели
* Высокопроизводительный программный комплекс для моделирования морского волнения
+** Модель вычислений
+*** Основополагающие принципы модели
+*** Отображение алгоритма генерации взволнованной поверхности на вычислительную модель
+** Реализация для систем с общей памятью (SMP)
+*** Алгоритм распределения нагрузки
+*** Результаты тестирования
+**** Производительности реализаций на MPI, OpenMP и OpenCL.
+**** Производительность алгоритма распределения нагрузки.
+** Реализация для систем с распределенной памятью (MPP)
+*** Алгоритм обнаружения узлов кластера
+*** Алгоритм восстановления после сбоев
+**** Обеспечение отказоустойчивости.
+**** Обеспечение высокой доступности.
* Заключение
**** Итоги исследования.
В изучении возможностей математического аппарата для имитационного моделирования
@@ -1059,27 +1074,23 @@ exit
* Список сокращений и условных обозначений
#+attr_latex: :booktabs t
-| Аббревиатура | Значение |
-|--------------+--------------------------------------------------|
-| процесс АРСС | процесс авторегрессии скользящего среднего |
-| ГПСЧ | генератор псевдослучайных чисел |
-| процесс АР | процесс авторегрессии |
-| процесс СС | процесс скользящего среднего |
-| АКФ | автоковариационная функция |
-| НБП | нелинейное безынерционное преобразование |
-| ГУ | граничное условие |
-| БПФ | быстрое преобразование Фурье |
-| ДУЧП | дифференциальное уравнение в частных производных |
+| Аббревиатура | Значение |
+|--------------+----------------------------------------------------------------------------------|
+| процесс АРСС | процесс авторегрессии скользящего среднего |
+| ГПСЧ | генератор псевдослучайных чисел |
+| процесс АР | процесс авторегрессии |
+| процесс СС | процесс скользящего среднего |
+| АКФ | автоковариационная функция |
+| НБП | нелинейное безынерционное преобразование |
+| ГУ | граничное условие |
+| БПФ | быстрое преобразование Фурье |
+| ДУЧП | дифференциальное уравнение в частных производных |
+| SMP | Symmetric Multi-Processing, класс вычислительных систем с общей памятью |
+| MPP | Massively Parallel Processing, класс вычислительных систем с разделенной памятью |
#+begin_latex
-\listoffigures
-\addcontentsline{toc}{section}{\listfigurename}
-\listoftables
-\addcontentsline{toc}{section}{\listtablename}
-\bibliographystyle{ugost2008}
-\bibliography{bib/refs.bib}
+\input{postamble}
#+end_latex
-* TODO Список условных обозначений
* Приложение
** TODO Вывод формулы модели Лонге---Хиггинса
diff --git a/phd-diss.org b/phd-diss.org
@@ -10,10 +10,8 @@
#+LATEX_HEADER: \degree{thesis for candidate of sciences degree}
#+LATEX_HEADER: \speciality{Speciality 05.13.18\\Mathematical modeling, numerical methods and programme complexes}
#+LATEX_HEADER: \supervisor{Supervisor\\Alexander Degtyarev}
+#+LATEX_HEADER: \newcites{published}{Publications on the subject of thesis}
#+LATEX_HEADER: }{}
-#+LATEX_HEADER: \newcommand{\Fourier}[1]{\mathcal{F}\left\{#1\right\}}
-#+LATEX_HEADER: \newcommand{\InverseFourier}[1]{\mathcal{F}^{-1}\left\{#1\right\}}
-#+LATEX_HEADER: \newcommand{\Var}[1]{\sigma_{#1}^2}
#+OPTIONS: todo:nil title:nil ':t H:5
#+begin_latex
@@ -473,7 +471,72 @@ step is to make them decay exponentially. This is required to make AR model
stationary and MA model parameters finding algorithm to converge.
* High-performance software implementation of ocean wave simulation
+** Computational model
+*** Governing principles
+- There are no messages in the model, a kernel is itself a message that can
+ be sent over network to another node and directly access any kernel on the
+ local node. It is responsibility of a programmer to ensure that such kernel
+ exist.
+- A kernel is best viewed as a cooperative routine, which is submitted to
+ execution queue upon the call and is executed asynchronously by system
+ scheduler. There can be any number of calls to other subroutines inside
+ routine body. Every call submits corresponding subroutine to execution
+ queue and returns immediately. Kernels in the queue can be executed in any
+ order; this fact is used by system scheduler to exploit parallelism
+ offered by the computer by distributed kernels from the queue across
+ available cluster nodes and processor cores.
+- Asynchronous execution prevents the use of explicit synchronisation after
+ the call to subroutine is made; system scheduler returns control flow to
+ the routine each time one of its subroutine returns. Such *cooperation*
+ transforms each routine which calls subroutines into event handler, where
+ each event is a subroutine and the handler is the routine that called
+ them. In many batch processing programmes control flow enters each routine
+ which calls subroutines at least two times: the first time it occurs upon
+ the call to the routine and the second time happens when control flow
+ returns to the caller after completion of a subroutine.
+- The routine may communicate with any number of local kernels, addresses of
+ which it knows; communication with routines which are not adjacent in the
+ call stack complexifies control flow and call stack looses its tree shape.
+ It is responsibility of a programmer to ensure that communicating kernels
+ are present in memory. One way to ensure this is to perform communication
+ between subroutines which are called from the same routine. Incidentally,
+ it is the usual way of writing batch parallel programmes: each such
+ communication creates a cycle in the call stack graph, and a cycle between
+ different (possibly non-adjacent) layers of kernel hierarchy is redundant,
+ because there are other edges that can be used instead. The situation may
+ be different when the programme is interactive or event-based.
+- The other disadvantage of communication which does no occur along
+ hierarchical links is that it complexifies resiliency algorithms when
+ executed across cluster network. Since it is difficult to ensure that
+ a kernel resides in memory of a neighbour node, because a node may fail in
+ the middle of its execution. Thus, upon failure of a node all of the
+ subroutines which are called from the same routine must be restarted. This
+ encourage a programmer to construct
+ - deep hierarchies of tightly-coupled kernels (which require
+ communication on the same level of hierarchy) to reduce overhead of
+ recomputation,
+ - fat hierarchies of loosely-coupled kernels.
+ Deep hierarchy is not only requirement of technology, it helps optimise
+ communication of cluster nodes limiting it to adjacent nodes.
+- No explicit synchronisation.
+- Local communications between adjacent nodes in the hierarchy.
+*** Mapping wavy surface generation algorithm on computational model
+** SMP implementation
+*** Load balancing algorithm
+*** Evaluation
+**** Performance of MPI, OpenMP, OpenCL implementations.
+**** Performance of load balancing algorithm.
+** MPP implementation
+*** Cluster node discovery algorithm
+*** Fail over algorithm
+**** Fault tolerance.
+**** High availability.
* Conclusion
* Acknowledgments
+* List of abbreviations and symbols
+#+begin_latex
+\input{postamble}
+#+end_latex
+
* References
* Appendix
diff --git a/postamble.tex b/postamble.tex
@@ -0,0 +1,13 @@
+\listoffigures
+\addcontentsline{toc}{section}{\listfigurename}
+\listoftables
+\addcontentsline{toc}{section}{\listtablename}
+
+% published papers
+\nocitepublished{*}
+\bibliographystylepublished{ugost2008}
+\bibliographypublished{bib/published-papers.bib}
+
+% references
+\bibliographystyle{ugost2008}
+\bibliography{bib/refs.bib}
diff --git a/preamble.tex b/preamble.tex
@@ -27,6 +27,9 @@
% automatically find figures from build directory
\graphicspath{{build/}}
+% multiple bibliographies
+\usepackage[resetlabels]{multibib}
+
% custom mathematical expressions
\newcommand{\Var}[1]{\sigma_{#1}^2}
\newcommand{\Fourier}[1]{\mathcal{F}\left\{#1\right\}}