Труды КНЦ вып.15 (ЭНЕРГЕТИКА вып. 2/2013(15))
вычислительного процесса, либо параллельно - выделяя каждому вычислительному процессу один или несколько процессоров (находящихся рядом или распределённых в компьютерную сеть). Основная сложность при проектировании параллельных программ - обеспечить правильную последовательность взаимодействий между различными вычислительными процессами, а также координацию ресурсов, разделяемых между процессами. В некоторых параллельных системах программирования передача данных между компонентами скрыта от программиста, тогда как в других она должна указываться явно. Явные взаимодействия могут быть разделены на два типа. • Взаимодействие через разделяемую память (например, в Java или C#). Данный вид параллельного программирования обычно требует какой-то формы захвата управления (мьютексы, семафоры, мониторы) для координации потоков между собой. • Взаимодействие c помощью передачи сообщений (например, в Erlang или Occam). Обмен сообщениями может происходить асинхронно либо c использованием метода «рандеву», при котором отправитель блокирован до тех пор, пока его сообщение не будет доставлено. Асинхронная передача сообщений может быть надёжной (с гарантией доставки) либо ненадёжной. Параллельные системы, основанные на обмене сообщениями, зачастую более просты для понимания, чем системы с разделяемой памятью, и обычно рассматриваются как более совершенный метод параллельного программирования. Существует большой выбор математических теорий для изучения и анализа систем с передачей сообщений, включая модель акторов и различные виды исчислений процессов. Обмен сообщениями может быть эффективно реализован на симметричных мультипроцессорах как с разделяемой когерентной памятью, так и без неё. У параллелизма с разделяемой памятью и с передачей сообщений разные характеристики производительности. Обычно (но не всегда) накладные расходы памяти на процесс и времени на переключение задач у систем с передачей сообщений ниже, однако передача самих сообщений более накладна, чем вызовы процедур. Эти различия часто перекрываются другими факторами, влияющими на производительность. Выводы 1. Все элементы МАС и окружающая среда имеют двусторонний обмен информацией. 2. Работая с МАС, оператор (диспетчер) является одновременно пользователем системы и одним из агентов. 3. Платформа МАС выполняет функции компилятора и связующего звена между МАС и окружающей средой. 4. В МАС возможны параллельные процессы. 5. Параллельные процессы в МАС могут быть связанны между собой или не связаны. 6. Для эффективной работы МАС необходима развитая сеть предприятия. 7. Один и тот же запрос может быть выполнен различными способами. 8. Оператор (диспетчер) является также администратором МАС, задавая приоритеты, ограничения и оценивая результаты работы. 63
Made with FlippingBook
RkJQdWJsaXNoZXIy MTUzNzYz