1 1 Отладка в PVM

По умолчанию только текст, выводимый родительской задачей (то есть той, которую вы сами запустили с терминала) окажется на экране. Стандартный вывод задач, запускаемых функцией pvm_spawn(), по умолчанию перенаправляется в LOG-файл исполняющей системы PVM ($PVM_TMP/pvml.*). Функция

call pvmfcatchout( onoff, info )

позволяет перенаправить его в любой другой открытый для записи файл, например, фрагмент

   call pvmfcatchout (1, info);
   call pvmfspawn (... 

в родительской задаче весь вывод от всех запускаемых под-задач перенаправит на экран. При этом PVM гарантирует, что строки от разных задач не будут "налезать" одна на другую, и каждая строка будет предваряться идентификатором той задачи, которая ее вывела. Использование pvm_catchout() имеет два недостатка: а) между посылкой строки в файл или на экран из под-задачи и ее фактическим там появлением может быть задержка неизвестной заранее длительности, и, б) если объем выводимой диагностики от разных задач очень велик, очень трудно разобраться в поведении какой-то одной конкретной задачи.


Copyleft © 1998-2009 Юрий Сбитнев