Обсуждение участницы:Sannikovats: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
 
(не показана 1 промежуточная версия 1 участника)
Строка 1: Строка 1:
 +
--[[Участник:Evgeny Mortikov|Evgeny Mortikov]] ([[Обсуждение участника:Evgeny Mortikov|обсуждение]]) 05:37, 3 декабря 2016 (MSK) В работе нет исследования масштабируемости алгоритма. К содержанию есть несколько замечаний (отмечены моей подписью), помимо необходимости выполнения основных требований к работе.
 +
 +
 +
 
== Статья [[Участница:Sannikovats/Вычисление определенного интеграла с использованием адаптивно сгущающейся сетки (1)]] ==
 
== Статья [[Участница:Sannikovats/Вычисление определенного интеграла с использованием адаптивно сгущающейся сетки (1)]] ==
  
Строка 7: Строка 11:
 
* В разделе 1.5 кроме кода нужны также текстовые пояснения. [[Участник:ASA|Александр Сергеевич Антонов]] ([[Обсуждение участника:ASA|обсуждение]]) 18:15, 1 ноября 2016 (MSK)
 
* В разделе 1.5 кроме кода нужны также текстовые пояснения. [[Участник:ASA|Александр Сергеевич Антонов]] ([[Обсуждение участника:ASA|обсуждение]]) 18:15, 1 ноября 2016 (MSK)
 
* Отсутствуют заголовки пунктов 2.2-2.6, соответственно пункт 2.1 должен иметь нумерацию 2.4, а пункт 2.2 должен иметь нумерацию 2.7. [[Участник:ASA|Александр Сергеевич Антонов]] ([[Обсуждение участника:ASA|обсуждение]]) 10:39, 8 ноября 2016 (MSK)
 
* Отсутствуют заголовки пунктов 2.2-2.6, соответственно пункт 2.1 должен иметь нумерацию 2.4, а пункт 2.2 должен иметь нумерацию 2.7. [[Участник:ASA|Александр Сергеевич Антонов]] ([[Обсуждение участника:ASA|обсуждение]]) 10:39, 8 ноября 2016 (MSK)
 +
* Не заполнен раздел 2.4 описания. [[Участник:ASA|Александр Сергеевич Антонов]] ([[Обсуждение участника:ASA|обсуждение]]) 16:00, 16 ноября 2016 (MSK)
 +
 +
 +
 +
----
 +
 +
== Пункт 1.1 ==
 +
--[[Участник:Evgeny Mortikov|Evgeny Mortikov]] ([[Обсуждение участника:Evgeny Mortikov|обсуждение]]) 05:37, 3 декабря 2016 (MSK)
 +
 +
'''Существуют различные последовательные методы построения адаптивных подвижных сеток, которые позволяют значительно повысить точность вычисления определенного интеграла за счет учета характера изменения подынтегральной функции.'''
 +
 +
 +
Что подразумевается под «подвижностью сеток» для данного алгоритма?
 +
 +
 +
== Пункт 1.1.1 ==
 +
--[[Участник:Evgeny Mortikov|Evgeny Mortikov]] ([[Обсуждение участника:Evgeny Mortikov|обсуждение]]) 05:37, 3 декабря 2016 (MSK)
 +
 +
'''Но при распараллеливании этого алгоритма (т.е. при запуске попарно подпрограмм, обрабатывающих половинки разбиваемого интервала) можно столкнуться со следующей проблемой: в реальной системе число процессоров ограничено и время, необходимое для порождения параллельных процессов существенно не равно нулю.'''
 +
 +
Это утверждение сильно зависит от того, как реализована рекурсия. Можно столкнуться с такой проблемой, а можно и не столкнуться.
 +
 +
'''Основная сложность построения параллельного алгоритма на основе рассмотренного последовательного алгоритма, кроется в том, что, хотя несколько ветвей программы могли бы одновременно обрабатывать разные части интервала интегрирования, координаты концов этих отрезков хранятся в программном стеке процесса и фактически недоступны программисту.'''
 +
 +
Нужно пояснить, что за программный стек, который недоступен программисту? В чем заключается проблема, если эти данные доступны только одному процессу.
 +
 +
 +
== Пункт 1.1.2 ==
 +
--[[Участник:Evgeny Mortikov|Evgeny Mortikov]] ([[Обсуждение участника:Evgeny Mortikov|обсуждение]]) 05:37, 3 декабря 2016 (MSK)
 +
 +
'''Стек выбран исключительно из соображений простоты реализации. Времена выполнения рассмотренных алгоритмов отличаются примерно на 5% в пользу локального стека, таким образом, алгоритм "локального стека" будем считать наилучшим из имеющихся в нашем распоряжении последовательных методов и на его примере построим дальнейшее описание.'''
 +
 +
Каких алгоритмов и где они рассмотрены? За счет чего образуется выигрыш в 5%? Чем, с точки зрения простоты реализации, стек лучше, по сравнению с очередью?
 +
 +
Все, что написано в разделах 1.1.1 и 1.1.2 сводится к тому, что для реализации рекурсии можно использовать стек. А такую реализацию рекурсии можно (относительно просто) адаптировать под параллельную архитектуру. Разделы написаны крайне путанно, поэтому хорошо бы их переписать. 
 +
 +
 +
== Пункт 1.4 ==
 +
--[[Участник:Evgeny Mortikov|Evgeny Mortikov]] ([[Обсуждение участника:Evgeny Mortikov|обсуждение]]) 05:37, 3 декабря 2016 (MSK)
 +
 +
'''<math> |sAB - sACB|\leq \epsilon * |sACB| </math>, что обеспечивает проверку условия устойчивости.'''
 +
 +
Не отличается ли здесь условие на деление отрезка от того, что приведено в пункте 1.2?
 +
 +
 +
== Пункт 1.5 ==
 +
--[[Участник:Evgeny Mortikov|Evgeny Mortikov]] ([[Обсуждение участника:Evgeny Mortikov|обсуждение]]) 05:37, 3 декабря 2016 (MSK)
 +
 +
'''//проверка выполнения условия на порядок точности:'''
 +
'''if(abs(sAB - sACB) >= eps*abs(sACB)) {'''
 +
 +
 +
См. замечание к пункту 1.4
 +
 +
 +
== Пункт 1.6 ==
 +
--[[Участник:Evgeny Mortikov|Evgeny Mortikov]] ([[Обсуждение участника:Evgeny Mortikov|обсуждение]]) 05:37, 3 декабря 2016 (MSK)
 +
 +
В качестве примера нужно привести хотя бы оценки, определяя некоторое разбиение (по возможности в наиболее общем виде) без учета функции.
 +
 +
== Пункт 1.8 ==
 +
--[[Участник:Evgeny Mortikov|Evgeny Mortikov]] ([[Обсуждение участника:Evgeny Mortikov|обсуждение]]) 05:37, 3 декабря 2016 (MSK)
 +
 +
См. п. 1.6.
 +
 +
 +
== Пункт 1.9 ==
 +
--[[Участник:Evgeny Mortikov|Evgeny Mortikov]] ([[Обсуждение участника:Evgeny Mortikov|обсуждение]]) 05:37, 3 декабря 2016 (MSK)
 +
 +
Как задается функция или возможность расчета ее значений в алгоритме и реализации?
 +
Нужно привести размер входных и выходных данных.
 +
 +
 +
== Пункт 1.10 ==
 +
--[[Участник:Evgeny Mortikov|Evgeny Mortikov]] ([[Обсуждение участника:Evgeny Mortikov|обсуждение]]) 05:37, 3 декабря 2016 (MSK)
 +
 +
'''Рассмотренный алгоритм обладает свойством детерминированности, поскольку при определенных входных данных мы будем получать одинаковый результат.'''
 +
 +
Влияют ли на свойство детерминированности алгоритма выполнение свойства ассоциативности для операции сложения, а также свойства входной функции?
 +
 +
'''Кроме того, алгоритм обладает внутренним параллелизмом, так как является численно устойчивым как в последовательной, так и в параллельной версиях.'''
 +
 +
Как из численной устойчивости следует «обладание внутренним параллелизмом»?
 +
Является ли алгоритм устойчивым для любой входной функции?
 +
 +
 +
== Пункт 2.4 ==
 +
--[[Участник:Evgeny Mortikov|Evgeny Mortikov]] ([[Обсуждение участника:Evgeny Mortikov|обсуждение]]) 05:37, 3 декабря 2016 (MSK)
 +
 +
Нет исследования масштабируемости.
 +
 +
 +
== Пункт 2.7 ==
 +
--[[Участник:Evgeny Mortikov|Evgeny Mortikov]] ([[Обсуждение участника:Evgeny Mortikov|обсуждение]]) 05:37, 3 декабря 2016 (MSK)
 +
 +
'''В настоящее время проблемой вычисления определенного графа на адаптивной сетке по нашим сведениям занимались только М.В. Якобовский и Е.Ю. Кулькова, рассматривавшие в своей работе "РЕШЕНИЕ ЗАДАЧ НА МНОГОПРОЦЕССОРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ С РАЗДЕЛЯЕМОЙ ПАМЯТЬЮ" методы локального и глобального стеков.'''
 +
 +
Наверное, определенного интеграла на адаптивной сетке?

Текущая версия на 05:37, 3 декабря 2016

--Evgeny Mortikov (обсуждение) 05:37, 3 декабря 2016 (MSK) В работе нет исследования масштабируемости алгоритма. К содержанию есть несколько замечаний (отмечены моей подписью), помимо необходимости выполнения основных требований к работе.


1 Статья Участница:Sannikovats/Вычисление определенного интеграла с использованием адаптивно сгущающейся сетки (1)



2 Пункт 1.1

--Evgeny Mortikov (обсуждение) 05:37, 3 декабря 2016 (MSK)

Существуют различные последовательные методы построения адаптивных подвижных сеток, которые позволяют значительно повысить точность вычисления определенного интеграла за счет учета характера изменения подынтегральной функции.


Что подразумевается под «подвижностью сеток» для данного алгоритма?


3 Пункт 1.1.1

--Evgeny Mortikov (обсуждение) 05:37, 3 декабря 2016 (MSK)

Но при распараллеливании этого алгоритма (т.е. при запуске попарно подпрограмм, обрабатывающих половинки разбиваемого интервала) можно столкнуться со следующей проблемой: в реальной системе число процессоров ограничено и время, необходимое для порождения параллельных процессов существенно не равно нулю.

Это утверждение сильно зависит от того, как реализована рекурсия. Можно столкнуться с такой проблемой, а можно и не столкнуться.

Основная сложность построения параллельного алгоритма на основе рассмотренного последовательного алгоритма, кроется в том, что, хотя несколько ветвей программы могли бы одновременно обрабатывать разные части интервала интегрирования, координаты концов этих отрезков хранятся в программном стеке процесса и фактически недоступны программисту.

Нужно пояснить, что за программный стек, который недоступен программисту? В чем заключается проблема, если эти данные доступны только одному процессу.


4 Пункт 1.1.2

--Evgeny Mortikov (обсуждение) 05:37, 3 декабря 2016 (MSK)

Стек выбран исключительно из соображений простоты реализации. Времена выполнения рассмотренных алгоритмов отличаются примерно на 5% в пользу локального стека, таким образом, алгоритм "локального стека" будем считать наилучшим из имеющихся в нашем распоряжении последовательных методов и на его примере построим дальнейшее описание.

Каких алгоритмов и где они рассмотрены? За счет чего образуется выигрыш в 5%? Чем, с точки зрения простоты реализации, стек лучше, по сравнению с очередью?

Все, что написано в разделах 1.1.1 и 1.1.2 сводится к тому, что для реализации рекурсии можно использовать стек. А такую реализацию рекурсии можно (относительно просто) адаптировать под параллельную архитектуру. Разделы написаны крайне путанно, поэтому хорошо бы их переписать.


5 Пункт 1.4

--Evgeny Mortikov (обсуждение) 05:37, 3 декабря 2016 (MSK)

[math] |sAB - sACB|\leq \epsilon * |sACB| [/math], что обеспечивает проверку условия устойчивости.

Не отличается ли здесь условие на деление отрезка от того, что приведено в пункте 1.2?


6 Пункт 1.5

--Evgeny Mortikov (обсуждение) 05:37, 3 декабря 2016 (MSK)

//проверка выполнения условия на порядок точности: if(abs(sAB - sACB) >= eps*abs(sACB)) {


См. замечание к пункту 1.4


7 Пункт 1.6

--Evgeny Mortikov (обсуждение) 05:37, 3 декабря 2016 (MSK)

В качестве примера нужно привести хотя бы оценки, определяя некоторое разбиение (по возможности в наиболее общем виде) без учета функции.

8 Пункт 1.8

--Evgeny Mortikov (обсуждение) 05:37, 3 декабря 2016 (MSK)

См. п. 1.6.


9 Пункт 1.9

--Evgeny Mortikov (обсуждение) 05:37, 3 декабря 2016 (MSK)

Как задается функция или возможность расчета ее значений в алгоритме и реализации? Нужно привести размер входных и выходных данных.


10 Пункт 1.10

--Evgeny Mortikov (обсуждение) 05:37, 3 декабря 2016 (MSK)

Рассмотренный алгоритм обладает свойством детерминированности, поскольку при определенных входных данных мы будем получать одинаковый результат.

Влияют ли на свойство детерминированности алгоритма выполнение свойства ассоциативности для операции сложения, а также свойства входной функции?

Кроме того, алгоритм обладает внутренним параллелизмом, так как является численно устойчивым как в последовательной, так и в параллельной версиях.

Как из численной устойчивости следует «обладание внутренним параллелизмом»? Является ли алгоритм устойчивым для любой входной функции?


11 Пункт 2.4

--Evgeny Mortikov (обсуждение) 05:37, 3 декабря 2016 (MSK)

Нет исследования масштабируемости.


12 Пункт 2.7

--Evgeny Mortikov (обсуждение) 05:37, 3 декабря 2016 (MSK)

В настоящее время проблемой вычисления определенного графа на адаптивной сетке по нашим сведениям занимались только М.В. Якобовский и Е.Ю. Кулькова, рассматривавшие в своей работе "РЕШЕНИЕ ЗАДАЧ НА МНОГОПРОЦЕССОРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ С РАЗДЕЛЯЕМОЙ ПАМЯТЬЮ" методы локального и глобального стеков.

Наверное, определенного интеграла на адаптивной сетке?