— pvm_recv, которая блокирует получателя до прихода подходящего сообщения;
— pvm_trecv, которая блокирует получателя до прихода подходящего сообщения, но не долее, чем на заданное время;
— pvm_nrecv, которая не блокирует получателя, а возвращает пришедшее сообщение или сообщение об отсутствии такового.
Кроме того, PVM поддерживает широковещание и мультивещание.
Синхронизация между процедурами может также осуществляться с помощью процедуры pvm_barrier. Процесс, вызвавший данную процедуру блокируется до тех пор, пока все указанные в списке процессы не вызовут ту же процедуру. Фактически, это один из вариантов слабой согласованности.
Существуют и другие процедуры.
Реализации PVM — небольшие и простые в использовании пакеты, наличные в большинстве вычислительных систем, в том числе в ОС UNIX и Microsoft Windows.
Эта технология гораздо сложнее, чем PVM. Первая версия, MPI-1, существует уже не первое десятилетие.
MPI, в отличие от PVM, не связана с созданием процессов и управлением ими. Создаёт процессы пользователь сам с помощью локальных системных вызовов. После создания процессы организуются в группы, состав которых изменяться не может. Именно с этими группами и работает MPI.
В основе MPI лежат четыре понятия:
— коммуникаторы,
— типы передаваемых данных,
— операции коммуникации,
— виртуальные топологии.
Коммуникатор — это группа процессов плюс так называемый контекст. Контекст представляет собой идентификатор. В процессе отправки и получения сообщений контекст может использоваться для того, чтобы не связанные сообщения не «путались» друг с другом.
Типы передаваемых данных могут быть стандартные, а могут быть образованы пользователем из уже существующих.
Операций коммуникаций существует множество. Операций отправки сообщения существует восемь видов:
— синхронный: отправитель не может начать передачу данных, пока получатель не вызовет функцию MPI_Recv;
— с буферизацией;
— стандартный: зависит от реализации;
— с проверкой доступности получателя, но без ожидания вызова им процедуры получения.
Четыре перечисленных вида могут быть блокирующими или неблокирующими, что всего даёт восемь видов.
Получение бывает двух видов: блокирующее и неблокирующее.
Кроме того, MPI поддерживает коллективную коммуникацию — широковещание, распределение и сбор данных, обмен данными, барьер и так далее.
Виртуальная топология — это способ создания виртуальных каналов связи, определяющий порядок прохождения сообщений через процессы.
В 1997 году появилась MPI-2. Существенным её отличием является возможность добавлять процессы в группу и удалять их из неё. Имеется ряд других усовершенствований.
Между лагерями PVM и MPI идёт война. PVM проще в изучении и использовании. MPI мощнее и официально стандартизирована.
Одна из распространённых систем обобщения памяти на уровне программного обеспечения — Distributed Shared Memory, DSM.
Единицей хранения данных в этой системе является страница. Дублирование страниц запрещается.
Когда процессор обращается к странице, находящейся в ОЗУ его узла, чтение и запись происходит без задержки. Если процессу понадобились данные из страницы, хранящейся в ОЗУ другого узла, происходит ошибка из-за отсутствия страницы. Ошибку обрабатывает ОС, которая посылает сообщение в узел, имеющий требуемую страницу, чтобы тот отправил её в узел, которому она нужна. После размещения требуемой страницы в памяти последнего узла, выполнение приостановленного процесса продолжается. Из памяти другого узла страница удаляется.
Технология проста для аппаратной реализации и программного использования, ибо обеспечивает согласованность, как минимум, по последовательности, но практически неприменима при активно взаимодействующих процессах.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.