call pvmfmytid (tid)
call pvmfexit(info)
char *where, int ntask, int *tids)
call pvmfspawn (task, argv, flag, where, ntask, tids,
numt)
Значение | Опция | Cмысл |
0 | PvmTaskDefault | Место порождения процессов выбирает сама PVM |
1 | PvmTaskHost | аргумент where - определенный хост для порождения |
2 | PvmTaskArch | аргумент where - PVM_ARCH для порождения |
4 | PvmTaskDebug | запускает задачи под отладчиком |
8 | PvmTaskTrace | генерируются трассировочные данные |
16 | PvmMppFront | задачи запускаются в среде MPP |
32 | PvmHostCompl | where дополняет набор хостов |
Эти имена предопределены в pvm3/include/pvm3.h. На Фортране
все имена предопределяются в параметрических конструкциях, которые
могут быть найдены в разделе include файла
pvm3/include/pvm3.h.
PvmTaskTrace - это новая возможность PVM версии 3.3. Она заставляет порождаемые задачи генерировать трассировочные события. PvmTaskTrace используется XPVM. В ином случае пользователь должен с помощью pvm_setopt() указать, когда генерировать трассировочные события.
При возврате переменной numt присваивается количество успешно порожденных задач или код ошибки, если ни одна из задач не смогла стартовать. Если задачи были запущены, то pwn_spawn вернет вектор, состоящий из идентификаторов порожденных задач; если не смогли стартовать лишь некоторые задачи, соответствующие коды ошибок помещаются в последние ntask - numt позиций вектора.
Вызов pvm_spawn() может также запускать задачи и на мультипроцессорах. В случае с Intel iPSC/860 накладываются следующие ограничения. Каждый порождающий вызов получает подкуб размера ntask и загружает программу task во все соответствующие станции. ОС iPSC/860 имеет распределительное ограничение: 10 подкубов для всех пользователей, так что лучше запустить блок из задач в iPSC/860 одним вызовом, чем несколькими. Два самостоятельных блока задач, порожденные в iPSC/860 раздельно, все равно могут взаимодействовать друг с другом так же, как и с другими задачами PVM, даже с учетом того, что они существуют в разных подкубах. ОС iPSC/860 имеет еще одно ограничение: сообщения, следующие от станций во ``внешний мир'', должны быть меньше 256 КБайтов.
call pvmfkill (tid, info)
call pvmfcatchout (onoff)
Если pvm_exit вызывается предком тогда, когда активирован сбор выходных потоков, он будет блокироваться до тех пор, пока все задачи, выполняющие вывод, не отработают в том порядке, в котором они осуществляли весь свой вывод. Во избежание такой ситуации можно ``выключить сбор выходных потоков'' вызовом pvm_catchout(0) перед тем, как вызвать pvm_exit.
Новые возможности PVM версии 3.3 включают и возможность регистрировать специальные задачи PVM для обработки заданий по включению новых хостов, размещению задач на хостах и запуску новых задач. С этой целью создается интерфейс для ``продвинутых'' пакетных планировщиков (примерами могут быть Condor, DQS и LSF), которые подключаются к PVM и позволяют выполнять задания PVM в пакетном режиме. Такие регистрирующие подпрограммы также создают интерфейс для разработчиков отладчиков - для стимулирования удовлетворительных разработок сложных отладчиков специально для PVM.
Имена таких подпрограмм: pvm_reg_rm(), pvm_reg_hoster()
и
pvm_reg_tasker(). Эти ``продвинутые'' функции не
имеют значения для среднестатистического пользователя PVM и потому
здесь подробно не рассматриваются.