Введение

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

Предполагаемое ограничение логического программирования

Патрик Хейс [1973] утверждал, что "обычное чёткое различие, проводимое между процессами вычисления и дедукции, вводит в заблуждение". Роберт Ковальски развил тезис о том, что вычисления можно подчинить дедукции, и с одобрением процитировал: "Вычисление – это управляемая дедукция", которую он приписал Хейсу в своей работе 1988 года о ранней истории Пролога. В отличие от Ковальски и Хейса, Карл Хьюитт утверждал, что логическая дедукция не способна осуществлять параллельные вычисления в открытых системах. Хьюит [1985] и Ага [1991], а также другие опубликованные работы, доказывали, что математические модели параллелизма не определяют конкретные параллельные вычисления следующим образом: модель акторов использует арбитраж (часто в форме гипотетических арбитров) для определения следующего сообщения в порядке поступления для актора, которому одновременно отправляется несколько сообщений. Это вносит недетерминированность в порядок поступления. Поскольку порядок поступления недетерминирован, его нельзя вывести из предшествующей информации исключительно математической логикой. Следовательно, математическая логика не может реализовать параллельные вычисления в открытых системах. Авторы утверждают, что, хотя математическая логика, по их мнению, не может реализовать общий параллелизм, она способна реализовать некоторые частные случаи параллельных вычислений, например, последовательные вычисления и некоторые виды параллельных вычислений, включая лямбда-исчисление.

Ограничение логики из-за отсутствия информации

Открытая система акторов – это система, в которой адреса внешних акторов могут быть переданы в процессе вычислений, чтобы обеспечить возможность взаимодействия с этими внешними акторами. Эти внешние акторы, в свою очередь, могут взаимодействовать с внутренними акторами, используя адреса, полученные от них. Из-за ограничения, связанного с невозможностью определения порядка поступления сообщений, знание о том, какие сообщения отправляются извне, не позволит определить ответ системы. Когда другие модели параллельных систем (например, исчисление процессов) используются для реализации открытых систем, эти системы также могут демонстрировать поведение, зависящее от порядка поступления сообщений, и, следовательно, не могут быть реализованы исключительно логическим выводом.

Утверждалось, что одновременные системы, подобные Prolog, основаны на математической логике

Кит Кларк, Герве Галлер, Стив Грегори, Виджай Сарасват, Уди Шапиро, Кадзунори Уэда и другие разработали семейство систем конкурентной передачи сообщений, подобных Prolog, использующих унификацию общих переменных и потоки структур данных для сообщений. Заявлялось, что эти системы основаны на математической логике. Этот тип систем был использован в качестве основы японского проекта пятого поколения (ICOT). Карл Хьюитт и Гул Ага [1991] утверждали, что эти системы конкурентной работы, подобные Prolog, не являлись ни дедуктивными, ни логическими: как и модель Actor, системы конкурентной работы, подобные Prolog, основывались на передаче сообщений и, следовательно, подвержены той же недетерминированности.

Логические операции и эффективность системы

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

Неопределенность в других моделях вычислений

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