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