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

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

Упаковка данных

Каждая из следующих C-подпрограмм упаковывает массив предоставленных данных определенного типа в активный буфер передачи. Они могут быть вызваны сколь угодно раз для упаковки данных в одно сообщение. Так, сообщение может содержать несколько массивов с данными различных типов. C-структуры, в процессе упаковки, должны принимать их индивидуальные элементы. На комплексность упаковываемых данных ограничений не накладывается, но приложение должно распаковывать сообщения точно в соответствие тому, как они были упакованы. Хотя этого строго и не требуется, но сложилась практика безопасного программирования.

Аргументами для каждой из подпрограмм являются: указатель на первый из элементов для упаковки, nitem - суммарное число элементов для упаковки из данного массива и stride - "шаг" для использования во время упаковки. Шаг, равный 1, означает последовательную упаковку вектора, равный 2 - упаковку "через раз" и т.д. Исключение составляет pvm_pkstr(), которая завершает упаковку строки символов при "встрече" NULL и поэтому не требует наличия аргументов nitem и stride.

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

int info = pvm_pkbyte( char *cp, int nitem, int stride)

int info = pvm_pkcplx( float *xp, int nitem, int stride)

int info = pvm_pkdcplx( double *zp, int nitem, int stride)

int info = pvm_pkdouble( double *dp, int nitem, int stride)

int info = pvm_pkfloat( float *fp, int nitem, int stride)

int info = pvm_pkint( int *np, int nitem, int stride)

int info = pvm_pklong( long *np, int nitem, int stride)

int info = pvm_pkshort( short *np, int nitem, int stride)

int info = pvm_pkstr( char *cp)

int info = pvm_packfconst( char fmt, ...)

Единственная подпрограмма на Fortran реализует все упаковочные функции перечисленных подпрограмм на C.

call pvmfpack( what, xp, nitem, stride, info)
Аргумент xp - это первый элемент для упаковки из массива. Заметьте, что на Fortran количество символов в упаковываемой строке должно указываться через nitem. Целое число what указывает тип упаковываемых данных. Поддерживаются следующие опции.

STRING 0 REAL4 4
BYTE 1

Эти имена уже предопределены в параметрических конструкциях включаемого файла /pvm3/include/pvm3.h. Ряд производителей может расширять этот список и включать в него поддержку 64-битных архитектур в своей реализации. INTEGER8, REAL16 и др. будут добавлены, как только XDR-поддержка этих типов данных будет реализована.

ПВМ   ОКМ   ДМ   экономическая информатика   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