ПВМ   ОКМ   ДМ   экономическая информатика   4GL   Теория и практика обработки информации

Параллельная виртуальная машина, PVM

Пользовательский интерфейс ПВМ

В этом разделе приведено ознакомительное описание подпрограмм ПВМ версии 3. Раздел отсортирован по функциям, выполняемым подпрограммами. Например, в подразделе об "обмене сообщениями" ведется речь обо всех подпрограммах передачи и приема данных между двумя задачами ПВМ и опциях обмена сообщениями ПВМ.

В ПВМ версии 3 все задачи ПВМ идентифицируются с помощью целого числа, предоставляемого pvmd. Далее по тексту, такой идентификатор задачи обозначается TID. Это обозначение похоже на обозначение идентификатора процесса (PID), используемое в системе UNIX, предполагающее прозрачность для пользователя; значение TID так же не имеет специального значения для пользователя. Фактически, ПВМ кодирует информацию в TID для своего собственного внутреннего использования.

Все подпрограммы ПВМ написаны на C. Приложения на C++ могут компоноваться с библиотекой ПВМ. Приложения на Fortran могут вызывать эти подпрограммы посредством интерфейса Fortran 77, поддерживаемого исходными текстами ПВМ версии 3. Данный интерфейс переводит аргументы, которые переданы при обращении на Fortran в соответствующие значения - если это нужно - для находящихся в более низком слое C-подпрограмм. Интерфейс так же затрагивает формы представлений символьных строк на Fortran и различные соглашения при именовании, которые разные Fortran-компиляторы используют при вызове C-функций.

В коммуникационной модели ПВМ принято, что любая задача может передавать сообщение любой другой задаче ПВМ и нет никаких ограничений на длину и количество таких сообщений. В то время, как все хосты имеют лимиты физической памяти, которые ограничивают потенциальное буферное пространство, коммуникационная модель не ограничивается этими частичными машинными лимитами, а подразумевает доступность и достаточность памяти. Таким образом, коммуникационная модель ПВМ предоставляет функции асинхронной блокирующей передачи, асинхронного блокирующего приема и неблокирующего приема. Согласно нашей терминологии, блокирующая передача - это задача, которая завершается так быстро, как освобождается для повторного использования буфер передачи, а асинхронная передача - передача, которая не зависит от состояния приемника, вызвавшего соответствующий прием до того, как передача завершится. В ПВМ версии 3 есть опции, которыми указывается, что данные должны передаваться прямо от задачи к задаче. В этом случае, если сообщение большое, передатчик может блокироваться до тех пор, пока приемник не вызовет соответствующий прием.

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

Модель ПВМ гарантирует сохранение порядка сообщений. Если задача 1 посылает сообщение A задаче B, а затем эта же задача посылает сообщение B той же задаче, то сообщение A поступит задаче раньше, чем сообщение B. Более того, если оба сообщения возникнут до того, как задача 2 выполнит прием, то прием с указанием специальных символов будет всегда возвращать сообщение A.

Буферы сообщений распределяются динамически. Однако, максимальная длина сообщения, которое может быть передано или принято, ограничивается только объемом доступной памяти на данном хосте. В ПВМ версии 3.3 встроен только "ограничительный" текущий контроль. ПВМ может выдавать пользователю ошибку "Can't get memory" в тех случаях, когда суммарный объем входящих сообщений превышает размер доступной памяти, но при этом ПВМ не просит другие задачи остановить передачу для данного хоста.

ПВМ   ОКМ   ДМ   экономическая информатика   4GL   Теория и практика обработки информации

Знаете ли Вы, что задача векторного программирования - это задача отыскания оптимума по Парето заданной вектор-функции на заданном множестве допустимых значений переменных.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution