Аноним

Рандомизация в распределенных вычислениях: различия между версиями

Материал из WEGA
м
 
(не показано 5 промежуточных версий этого же участника)
Строка 37: Строка 37:
'''Соперник'''
'''Соперник'''


Решение описанных выше задач осложняется тем, что программист слабо контролирует скорость выполнения у отдельных процессоров. Чтобы смоделировать этот факт, предполагается, что расписание работы процессоров выбирает противник. Хорошо известно, что не существует детерминированного алгоритма, способного решить задачу бинарного или ID-консенсуса в этой модели с с соперником, если число процессоров больше 1 [6, 7]. Поэтому для решения этой задачи исследователи обратились к использованию рандомизированных алгоритмов [1]. Такие алгоритмы имеют доступ к случайным подбрасываниям монет. Для рандомизированных алгоритмов рассматриваются три типа соперников. Предполагается, что ''сильный соперник'' знает результат подбрасывания монеты сразу после того, как она подброшена, и может соответствующим образом изменить свое расписание. ''Забывчивый соперник'' должен зафиксировать расписание до того, как будет подброшена какая-либо из монет. ''Промежуточному сопернику'' не разрешается видеть результат подбрасывания монеты до тех пор, пока какой-либо процесс не сделает выбор на основе этого подбрасывания. В частности, процесс может подбросить монету и записать результат в глобальный регистр, но промежуточный соперник не будет знать результат подбрасывания монеты, пока какой-либо процесс не прочитает значение, записанное в регистре.
Решение описанных выше задач осложняется тем, что программист слабо контролирует скорость выполнения у отдельных процессоров. Чтобы смоделировать этот факт, предполагается, что расписание работы процессоров выбирает соперник. Хорошо известно, что не существует детерминированного алгоритма, способного решить задачу бинарного или ID-консенсуса в этой модели с соперником, если число процессоров больше 1 [6, 7]. Поэтому для решения этой задачи исследователи обратились к использованию рандомизированных алгоритмов [1]. Такие алгоритмы имеют доступ к результатам случайного подбрасывания монет. Для рандомизированных алгоритмов рассматриваются три типа соперников. Предполагается, что ''сильный соперник'' знает результат подбрасывания монеты сразу после того, как она подброшена, и может соответствующим образом изменить свое расписание. ''Забывчивый соперник'' должен зафиксировать расписание до того, как будет подброшена какая-либо из монет. ''Промежуточному сопернику'' не разрешается видеть результат подбрасывания монеты до тех пор, пока какой-либо процесс не сделает выбор на основе этого подбрасывания. В частности, процесс может подбросить монету и записать результат в глобальный регистр, но промежуточный соперник не будет знать результат подбрасывания монеты, пока какой-либо процесс не прочитает значение, записанное в регистре.


== Основные результаты ==
== Основные результаты ==
Теорема 1. Предполагая существование мультирайтерных мультиридерных регистров, существует рандомизированный алгоритм решения задачи двоичного консенсуса против промежуточного соперника с O(1) ожидаемых шагов на процессор.
'''Теорема 1. Предполагая существование мультирайтерных мультиридерных регистров, существует рандомизированный алгоритм решения задачи бинарного консенсуса против промежуточного соперника с O(1) ожидаемых шагов на процессор.'''




Теорема 2. Предполагая существование мультирайтерных мультиридерных регистров, существует рандомизированный алгоритм решения задачи ID-консенсуса против промежуточного соперника с O(log2 n) ожидаемых шагов на процессор.
'''Теорема 2. Предполагая существование мультирайтерных мультиридерных регистров, существует рандомизированный алгоритм решения задачи ID-консенсуса против промежуточного соперника с <math>O(log^2 \; n)</math> ожидаемых шагов на процессор.'''




Оба этих результата предполагают, что каждый процессор имеет уникальный идентификатор. До получения этого результата самый быстрый из известных рандомизированных алгоритмов для двоичного консенсуса использовал однорайтерные мультиридерные регистры, был устойчив относительно сильного соперника и требовал O(n log2 n) шагов на процессор [2]. Таким образом, вышеуказанные улучшения получены за счет ослабления соперника и усиления модели системы по сравнению с [2].
Оба этих результата предполагают, что каждый процессор имеет уникальный идентификатор. До получения этого результата самый быстрый из известных рандомизированных алгоритмов для бинарного консенсуса использовал однорайтерные мультиридерные регистры, был устойчив относительно сильного соперника и требовал <math>O(n \; log^2 \; n)</math> шагов на процессор [2]. Таким образом, вышеуказанные улучшения получены за счет ослабления соперника и усиления модели системы по сравнению с [2].


== Применение ==
== Применение ==
Бинарный консенсус является одной из наиболее фундаментальных проблем в распределенных вычислениях. Примером ее важности может служить следующий результат, полученный Херлихи [8]. Если абстрактный тип данных X вместе с общей памятью являются достаточно мощными для реализации консенсуса без ожидания, то X вместе с общей памятью является достаточно мощным для реализации без ожидания любой другой структуры данных Y. Таким образом, используя этот результат, можно создать версию любой структуры данных без ожидания, используя в качестве строительного блока только мультирайтерные мультиридерные регистры без ожидания.
Бинарный консенсус является одной из наиболее фундаментальных проблем в распределенных вычислениях. Примером ее важности может служить следующий результат, полученный Херлихи [8]. Если абстрактный тип данных X вместе с общей памятью являются достаточно мощными для реализации консенсуса без ожидания, то X вместе с общей памятью является достаточно мощным для реализации без ожидания любой другой структуры данных Y. Таким образом, используя этот результат, можно создать версию любой структуры данных без ожидания, используя в качестве строительных блоков только мультирайтерные мультиридерные регистры без ожидания.




Строка 55: Строка 55:


== Открытые вопросы ==
== Открытые вопросы ==
Данный результат оставляет открытыми несколько вопросов. Во-первых, остается нерешенным вопрос о количестве шагов на процесс, необходимых для достижения рандомизированного консенсуса с использованием мультирайтерных мультиридерных регистров против сильного соперника. Недавний результат Аттии и Сенсор демонстрирует нижнюю границу Q(n2) суммарного количества шагов для всех процессоров с мультирайтерными мультиридерными регистрами (подразумевая Q(n) шагов на процесс) [ ]. Авторы также доказали соответствующую верхнюю границу O(n2) суммарного количества шагов. Однако вопрос о том, как преодолеть разрыв в количестве шагов на каждый процесс, остается открытым.
Данный результат оставляет открытыми несколько вопросов. Во-первых, остается нерешенным вопрос о количестве шагов на процесс, необходимых для достижения рандомизированного консенсуса с использованием мультирайтерных мультиридерных регистров против ''сильного'' соперника. Недавний результат Аттии и Сенсор демонстрирует нижнюю границу <math>\Omega(n^2)</math> суммарного количества шагов для всех процессоров с мультирайтерными мультиридерными регистрами (подразумевая <math>\Omega(n)</math> шагов на процесс) [3]. Авторы также доказали соответствующую верхнюю границу <math>O(n^2)</math> суммарного количества шагов. Однако вопрос о том, как преодолеть разрыв в количестве шагов на каждый процесс, остается открытым.




Другой открытой проблемой является вопрос о том, существует ли рандомизированная реализация ID-консенсуса с использованием мультирайтерных мультиридерных регистров, которая была бы устойчивой к промежуточному сопернику и у которой ожидаемое число шагов на процессор было бы лучше, чем O(log2 n). В частности, возможно ли константное время выполнения? Ауманн в продолжении этой работы смог улучшить ожидаемое время выполнения на процесс до O(log n) [4]. Однако, насколько известно авторам статьи, дальнейших улучшений не было.
Другой открытой проблемой является вопрос о том, существует ли рандомизированная реализация ID-консенсуса с использованием мультирайтерных мультиридерных регистров, которая была бы устойчивой к промежуточному сопернику и у которой ожидаемое число шагов на процессор было бы лучше, чем <math>O(log^2 \; n)</math>. В частности, возможно ли константное время выполнения? Ауманн в продолжении этой работы смог улучшить ожидаемое время выполнения на процесс до <math>O(log \; n)</math> [4]. Однако, насколько известно авторам статьи, дальнейших улучшений не было достигнуто.




Третьей нерешенной задачей является сокращение времени, необходимого нахождения бинарного консенсуса против сильного соперника с однорайтерными мультиридерными регистрами. Самый быстрый из известных рандомизированных алгоритмов в этом сценарии требует O(nlog2 n) шагов на процессор [ ]. Тривиальная нижняя граница количества шагов на процессор при использовании однорайтерных регистров равна Q(n). Тем не менее, разрыв с O(log2 n) все еще остается проблемой.
Третьей нерешенной задачей является сокращение времени, необходимого для нахождения бинарного консенсуса против сильного соперника с однорайтерными мультиридерными регистрами. Самый быстрый из известных рандомизированных алгоритмов в этом сценарии требует <math>O(n \; log^2 \; n)</math> шагов на процессор [2]. Тривиальная нижняя граница количества шагов на процессор при использовании однорайтерных регистров равна <math>\Omega(n)</math>. Тем не менее, разрыв в <math>O(log^2 \; n)</math> все еще остается проблемой.




Наконец, последней открытой темой является ликвидация разрыва в суммарном объеме работы, необходимой для решения задачи о консенсусе с использованием однорайтерных одноридерных регистров против забывчивого соперника. Ауманн и Капах-Леви описали алгоритмы для этого сценария, которые требуют O(nlog nexp(2ln nln(clog "log* n) ожидаемой суммарной работы для некоторой постоянной c [ ]. В частности, суммарный объем работы меньше O(n1+) для любого e > 0. Тривиальная нижняя граница суммарной работы равна Q{n), но разрыв остается открытым.
Наконец, последней открытой темой является ликвидация разрыва в суммарном объеме работы, необходимой для решения задачи о консенсусе с использованием однорайтерных одноридерных регистров против забывчивого соперника. Ауманн и Капах-Леви описали алгоритмы для этого сценария, которые требуют <math>O(n \; log \; n \; exp(2 \sqrt{ln \; n \; ln(c \; log \; n \; log^* \; n)}</math> ожидаемой суммарной работы для некоторой постоянной <math>c</math> [5]. В частности, суммарный объем работы меньше <math>O(n^{1 + \epsilon})</math> для любого <math>\epsilon > 0</math>. Тривиальная нижняя граница суммарной работы равна <math>\Omega(n)</math>, но разрыв остается.


== См. также ==
== См. также ==
4824

правки