Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по Семеновой.doc
Скачиваний:
4
Добавлен:
19.04.2019
Размер:
612.86 Кб
Скачать

Распределенные вычисления

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

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

Понятие модели вычислений

Неформальное понятие модели вычислений предполагает задание языка программирования вместе с его операционной семантикой, т.е. объяснением того, каким образом программе сопоставляется процесс вычислений.

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

Ресурс < ∞ ⇔процесс вычисления заканчивается.

Основные (но не единственные) ресурсы – время и память. Но для каждой модели вычислений они свои.

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

Модели Тьюринга

Это семейство моделей вычислений наиболее честно отражает время вычислений. Возможных вариантов определения много. Машина Тьюринга состоит из управляющего устройства (УУ) и потенциально бесконечной внешней памяти, структура которой не меняется со временем. Она снабжена программой, задающей правила ее функционирования.

Память разбита на одинаковые ячейки, предназначенные для хранения букв фиксированного конечного алфавита (одна буква в ячейке). Имеется одна или несколько (конечное число) читающе-пишущих головок. В каждый момент времени головка обозревает одну ячейку памяти.

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

Вычислительные возможности машин Тьюринга достаточно хорошо изучены. Их качественная характеристика состоит в описании класса всех функций, вычислимых на машинах Тьюринга. Речь идет о частичных словарных функциях f: Σ → Σ, где Σ – множество всех слов в конечном алфавите Σ, а термин «частичная функция» означает, что значение функции f(v) для некоторых слов v ∈ Σ может оказаться неопределенным. Результат сравнительного изучения запасов вычислимых словарных функций для различных моделей вычислений может быть сформулирован в виде следующего неформального утверждения:

Тезис Тьюринга (неформальный): Каждую вычислимую (программой какого угодно языка программирования) частичную функцию типа Σ → Σ можно вычислить на подходящей машине Тьюринга.

Неформальность Тезиса Тьюринга состоит в том, что он не может быть полностью обоснован математическими средствами (доказан как математическая теорема).

λ-исчисление

λ-исчисление исходит из следующих основных идей:

Функция понимается не как преобразование одного статического множества в другое, а как преобразования, или же правила действий, перерабатывающие одни такие функции-преобразования в другие. Иначе говоря, в нашем распоряжении имеются некоторые объекты, являющиеся одновременно и функциями, и объектами, к которым эти функции применяются, причем мы изначально никак не ограничиваем возможности применения одних таких функций к другим, то есть, в принципе мы не запрещаем применение любого объекта f к любому объекту g. Результат такого применения, обозначаемый fg, также является объектом-функцией. В рамках этих представлений вполне правомерно и осмысленно применение произвольной функции f к самой себе с получением объекта ff, что невозможно при стандартной теоретико-множественной интерпретации функций множествами пар. Эта ситуация в принципе встречается, например, такими объектами могут быть некоторые тексты программ или процедур; одна программа вполне может быть применена к другой программе. Другим примером является использование в ряде современных языков программирования процедур в качестве аргументов процедур (в том числе, и самих себя).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]