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

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

Информация о состоянии ПВМ

int tid = pvm_parent(void)

call pvmfparent (tid)

Подпрограмма pvm_parent() возвращает TID процесса, который порожден данной задачей, или значение PvmNoParent если он не создан с помощью pvm_spawn()

int dtid = pvm_tidtohost( int tid)

call pvmftidtohost (tid, dtid)

Подпрограмма pvm_tidhost() возвращает TID - dtid - демона, выполняющегося на том же хосте, что и задача с TID. Эта подпрограмма применима для определения, на каком хосте выполняется данная задача. Более обобщенная информация о внутренней структуре виртуальной машины, включая текстовые имена сконфигурированных хостов, может быть получена с использованием следующих функций.

int info = pvm_config( int *nhost, int *narch,

    struct pvmhostinfo **hostp)

call pvmfconfig( nhost, narch, dtid, name, arch, speed, info)

Подпрограмма pvm_config() возвращает информацию о виртуальной машине, включая количество хостов - nhost - и количество различных форматов данных - narch. hostp - это указатель на декларированный пользователем массив из структур
pvmhostinfo. Размер массива должен быть длиной, по крайней мере, соответствующей nhost. При возврате, каждая структура pvmhostinfo содержит TID pvmd, имя хоста, имя архитектуры и относительную характеристику скорости процессора для определенного хоста в конфигурации.

Функции на Fortran возвращают информацию об одном хосте за вызов, поэтому для "опроса" всех хостов нужен цикл. Так что, если pvmfconfig вызывается nhost раз, то внутренняя структура виртуальной машины будет представлена. Работа с Fortran-интерфейсом подразумевает сохранение копии массива hostp и возврат только одного "вхождения" за вызов. На всех хостах должны отработать циклы для того, чтобы они получили обновленный массив hostp. По этому, если виртуальная машина в течение этих вызовов изменяется, то изменение проявится в параметрах nhost и narch, но не отразится на информации о хосте. В настоящий момент нет способа "сбросить" pvmfconfig() и заставить его перезапустить цикл в процессе его работы.

int info = pvm_tasks ( int which, int *ntask,

    struct pvmtaskinfo **taskp)

call pvmftasks ( which, ntask, tid, ptid, dtid, flag, aout, info)

Подпрограмма pvm_tasks() возвращает информацию о задачах ПВМ, выполняющихся на виртуальной машине. Целое число which указывает, о каких задачах вернуть информацию. В настоящее время опциями могут быть: 0 - о всех задачах, pvmd TID (dtid) - о задачах, выполняющихся на указанном хосте, или TID - только об указанной задаче.

Количество задач возвращается в ntask. taskp - это указатель на массив структур pvmtaskinfo. Массив размера ntask. Каждая структура pvmtaskinfo содержит TID, pvmd TID, TID предка, флаг статуса и имя файла для порождения. (ПВМ "не знает" имя файла вручную запущенной задачи и поэтому "не заполняет" это имя.) Функция на Fortran возвращает информацию об одной задаче за вызов, поэтому для "опроса" всех задач нужен цикл. Так что, если нужно "опрашивать" все задачи и если pvmftasks вызывается ntask раз, то задачи будут представлены. Fortran-реализации предполагают, что пул задач не подвержен изменениям, пока имеются циклы "опроса" задач. Если же пул изменился, эти изменения не проявятся до тех пор, пока не начнется следующий цикл из ntask вызовов.

Примеры использования pvm_config и pvm_tasks можно найти в исходных текстах консоли ПВМ, которая сама является задачей ПВМ. Примеры использования Fortran-версий этих подпрограмм можно найти в исходных текстах pvm3/examples/ testall.f.

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