commit eb9c9426a38b553b688b5cd7e61c79c8d17689be
parent c462cfc958ce284cc36dff05e1f2e95b75a44be9
Author: Ivan Gankevich <igankevich@ya.ru>
Date: Fri, 3 Nov 2017 14:28:35 +0300
Remove old section.
Diffstat:
arma-thesis-ru.org | | | 89 | ------------------------------------------------------------------------------- |
1 file changed, 0 insertions(+), 89 deletions(-)
diff --git a/arma-thesis-ru.org b/arma-thesis-ru.org
@@ -2314,95 +2314,6 @@ OpenGL увеличивает производительность путем и
или не содержала бы интегралы в виде преобразований Фурье, на вычисление поля
потенциала скорости затрачивалось бы гораздо больше времени.
-**** Производительность алгоритма распределения нагрузки. :noexport:
-Программная реализация генерации взволнованной поверхности сбалансирована с
-точки зрения нагрузки на процессорные ядра, однако, как показывают тесты,
-характеризуется высокой нагрузкой на устройства хранения. До проведения
-тестирования генерация взволнованной поверхности была реализована с
-использованием OpenMP для параллельных вычислений, и была переписана с
-использованием POSIX потоков для того чтобы реализовать алгоритм распределения
-нагрузки. Производительность двух реализаций сравнивалась на платформе,
-конфигурация которой приведена в табл.\nbsp{}[[tab-multicore-specs]].
-
-#+name: tab-multicore-specs
-#+caption: Конфигурация многоядерной системы.
-#+attr_latex: :booktabs t
-| Компонента | Подробности |
-|-------------------------------+----------------------------------|
-| Язык программирования | C++11 |
-| Библиотека потоков | C++11 STL threads |
-| Библиотека атомарных операций | C++11 STL atomic |
-| Подпрограммы замера времени | ~clock_gettime(CLOCK_MONOTONIC)~ |
-| | ~/usr/bin/time -f \%e~ |
-| Компилятор | GCC 4.8.2 |
-| Опции компиляции | ~-std=c++11 -O2 -march=native~ |
-| Операционная система | Debian 3.2.51-1 x86_64 |
-| Файловая система | ext4 |
-| Процессор | Intel Core 2 Quad Q9650 |
-| Частота процессора (ГГц) | 3.00 |
-| Количество ядер | 4 |
-| Объем оперативной памяти (ГБ) | 8 |
-| Диск | Seagate ST3250318AS |
-| Скорость диска (об./мин.) | 7200 |
-
-Эксперимент состоял в запуске двух программных реализаций на многоядерной
-машине, изменяя размер поверхности. Размер пула потоков процессора и пула
-потоков ввода/вывода оставался неизменным во время эксперимента. Пул потоков
-ввода/вывода состоял из одного потока, а количество потоков процессора равнялось
-количеству физических ядер процессора.
-
-В эксперименте алгоритм распределения нагрузки показал большую эффективность по
-сравнению с реализацией без него. Чем больше размер генерируемой поверхности,
-тем больше разрыв в производительности (рис.\nbsp{}[[fig-factory-performance]]), что
-является следствием наложения вычислительной фазы и фазы вывода данных друг на
-друга (рис.\nbsp{}[[fig-factory-overlap]]). В реализации OpenMP фаза вывода данных
-начинается только тогда, когда заканчивается вычислительная фаза, в то время как
-использование алгоритма распределения нагрузки приводит почти к одновременному
-завершению обеих фаз. Таким образом, /выполнение параллельных изнутри,
-последовательных фаз в режиме конвейера более эффективно, чем их
-последовательное выполнение/, и это позволяет сбалансировать нагрузку на
-различные устройства, задействованные в вычислениях.
-
-#+name: fig-factory-performance
-#+header: :width 5 :height 4
-#+begin_src R :file build/factory-vs-openmp-ru.pdf
-source(file.path("R", "common.R"))
-arma.plot_factory_vs_openmp(
- xlab="Размер реализации",
- ylab="Время, с.",
- power=6
-)
-#+end_src
-
-#+caption: Сравнение производительности реализаций программы на OpenMP и Factory.
-#+name: fig-factory-performance
-#+RESULTS: fig-factory-performance
-[[file:build/factory-vs-openmp-ru.pdf]]
-
-#+name: fig-factory-overlap
-#+header: :width 7 :height 4
-#+begin_src R :file build/factory-vs-openmp-overlap-ru.pdf
-source(file.path("R", "common.R"))
-par(mar=c(5, 6, 0, 1), pty="m")
-arma.plot_factory_vs_openmp_overlap(
- xlab="Время, с.",
- labels=c("Factory", "OpenMP"),
- scale=10**9
-)
-#+end_src
-
-#+caption: Наложение параллельных вычислений на \([G_0,G_1]\) и записи данных на диск на \([W_0,W_1]\). В реализации OpenMP наложение отсутствует.
-#+name: fig-factory-overlap
-#+RESULTS: fig-factory-overlap
-[[file:build/factory-vs-openmp-overlap-ru.pdf]]
-
-Предложенный алгоритм распределения нагрузки на многоядерную систему позволяет
-получить прирост производительности для приложений, считывающих и записывающих
-большой объем данных на диск, но может быть использован также и в других
-случаях. Основная идея алгоритма состоит в определении типа нагрузки и поиске
-подходящего устройства для перенаправления нагрузки на него. Таким образом любое
-устройство помимо дисков может быть использовано.
-
** Отказоустойчивый планировщик пакетных задач
*** Архитектура системы
**** Физический уровень.