Provided by: pvm-dev_3.4.6-5_amd64 bug

NAME

       pvm_setopt - Sets libpvm options.

SYNOPSIS

       C    int oldval = pvm_setopt( int what, int val )

       Fortran   call pvmfsetopt( what, val, oldval )

PARAMETERS

       what    Integer defining what to set.  One of:
               PvmRoute              1    Message routing policy
               PvmDebugMask          2    Libpvm debug mask
               PvmAutoErr            3    Auto error reporting
               PvmOutputTid          4    Stdout destination for children
               PvmOutputCode         5    Output message tag for children
               PvmTraceTid           6    Trace data destination for children
               PvmTraceCode          7    Trace message tag for children
               PvmTraceBuffer        8    Trace buffer size for children
               PvmTraceOptions       9    Trace collection options for children
               PvmFragSize          10    Message fragment size
               PvmResvTids          11    Allow messages to reserved tags and TIDs
               PvmSelfOutputTid     12    Stdout destination
               PvmSelfOutputCode    13    Output message tag
               PvmSelfTraceTid      14    Trace data destination
               PvmSelfTraceCode     15    Trace message tag
               PvmSelfTraceBuffer   16    Trace buffer size
               PvmSelfTraceOptions  17    Trace collection options
               PvmShowTids          18    pvm_catchout prints task ids with output
               PvmPollType          19    Message wait policy (shared memory)
               PvmPollTime          20    Message spinwait duration
               PvmOutputContext     21    Output message context for children
               PvmTraceContext      22    Trace message context for children
               PvmSelfOutputContext 23    Output message context
               PvmSelfTraceContext  24    Trace message context
               PvmNoReset           25    Do not kill task on reset

       val     Integer specifying new setting of option.

               Predefined values for PvmRoute are:
               PvmDontRoute      1    Don't request or grant connections
               PvmAllowDirect    2    (Default) Don't request but allow
               PvmRouteDirect    3    Request and allow connections

               Predefined values for PvmTraceOptions are:
               PvmTraceFull      1    (Default) Do full trace events
               PvmTraceTime      2    Only do PVM routine timings
               PvmTraceCount     3    Only do PVM routine profiling (call counts)

               Predefined values for PvmPollType are:
               PvmPollConstant   1    Spin on its message queue
               PvmPollSleep      2    Poll the message queue PvmPollTime times

       oldval  Integer returning the previous setting of the option.

DESCRIPTION

       The  routine pvm_setopt is a general purpose function used to set miscellaneous options in
       the PVM library.  What is one of:

       PvmRoute
              Advises PVM on whether to set up direct task-to-task  links  PvmRouteDirect  (using
              TCP)  for  all  subsequent  communication.   Once a link is established it persists
              until the application finishes.  If a direct link can not  be  established  because
              one  of  the  two  tasks  has  requested PvmDontRoute or because adequate resources
              aren't available, then the default route through  the  PVM  daemons  is  used.   On
              multiprocessors   such  as  Intel  Paragon  this  option  is  ignored  because  the
              communication between tasks on these machines always uses the native  protocol  for
              direct  communication.   pvm_setopt  can  be  called  multiple times to selectively
              establish direct links, but is typically set only once near the beginning  of  each
              task.   PvmAllowDirect is the default route setting.  This setting on task A allows
              other tasks to set up direct links to A.  Once a direct link is established between
              tasks both tasks will use it for sending messages.

       PvmDebugMask
              When debugging is turned on, PVM will log detailed information about its operations
              and progress on its stderr stream.  val is the debugging level.  Default is not  to
              print any debug information.

       PvmAutoErr
              When  an  error results from a libpvm function call and PvmAutoErr is set to 1 (the
              default), an error message is automatically printed on  stderr.   A  setting  of  0
              disables  this.  A setting of 2 causes the library to terminate the task by calling
              exit() after printing the error message.  A setting of  3  causes  the  library  to
              abort after printing the error message.

       PvmOutputTid
              Sets  the  stdout  destination  for  children  tasks  (spawned  after  the  call to
              pvm_setopt).  Everything printed on the standard output of  tasks  spawned  by  the
              calling  task  is packed into messages and sent to the destination.  val is the TID
              of a PVM task.  Setting PvmOutputTid to 0 redirects  stdout  to  the  master  pvmd,
              which  writes to the log file /tmp/pvml.<uid> The default setting is inherited from
              the parent task, else is 0.

       PvmOutputCode
              Sets the message tag for standard output messages.  Should only be set when a  task
              has PvmOutputTid set to itself.

       PvmTraceTid
              Sets  the trace data message destination for children tasks (spawned after the call
              to pvm_setopt).  Libpvm trace data is sent as messages to the destination.  val  is
              the  TID of a PVM task.  Setting PvmTraceTid to 0 discards trace data.  The default
              setting is inherited from the parent task, else is 0.

       PvmTraceCode
              Sets the message tag for trace data messages.  Should only be set when a  task  has
              PvmTraceTid set to itself.

       PvmTraceBuffer
              Sets the trace buffer size for trace event collection (in bytes).  Rather than send
              a separate message for each trace event, the events are written to a message buffer
              until  the  buffer reaches PvmTraceBuffer bytes.  Then a single large trace message
              is sent.  This can greatly reduce tracing intrusion.  Make sure you call pvm_exit()
              in your tasks to flush the trace buffer!

       PvmTraceOptions
              Sets  the PVM built-in tracing options.  This is useful for custom trace collection
              tools to allow analysis of library routine execution times and  invocation  counts.
              By  default,  tracing  with  PvmTraceFull  produces  full trace events with calling
              arguments  and  return  values.   Using  PvmTraceTime  produces  total  time  spent
              executing  each library routine.  The PvmTraceCount option keep only a count of the
              number of times each routine was called.

       PvmFragSize
              Val specifies the message fragment size in bytes.  Default value varies  with  host
              architecture.

       PvmResvTids
              A  val  of  1  enables the task to send messages with reserved tags and to non-task
              destinations.  The default (0) causes libpvm to generate a PvmBadParam error when a
              reserved identifier is specified.

       PvmSelfOutputTid
              Sets  the stdout destination for the calling task.  Everything printed on stdout is
              packed into messages and sent to  the  destination.   Note:  this  only  works  for
              spawned  tasks, because the pvmd doesn't get the output from tasks started by other
              means.  val is the TID of a PVM task.   Setting  PvmSelfOutputTid  to  0  redirects
              stdout  to  the  master  pvmd,  which  writes to the log file /tmp/pvml.<uid>.  The
              default setting is inherited from the parent  task,  else  is  0.   Setting  either
              PvmSelfOutputTid   or   PvmSelfOutputCode   also   causes   both  PvmOutputTid  and
              PvmOutputCode to take on the  values  of  PvmSelfOutputTid  and  PvmSelfOutputCode,
              respectively.

       PvmSelfOutputCode
              Sets the message tag for standard output messages.

       PvmSelfTraceTid
              Sets the trace data message destination for the calling task.  Libpvm trace data is
              sent as messages to the destination.  val is  the  TID  of  a  PVM  task.   Setting
              PvmSelfTraceTid  to  0  discards trace data.  The default setting is inherited from
              the parent task, else is 0.  Setting  either  PvmSelfTraceTid  or  PvmSelfTraceCode
              also   causes   both  PvmTraceTid  and  PvmTraceCode  to  take  on  the  values  of
              PvmSelfTraceTid and PvmSelfTraceCode, respectively.

       PvmSelfTraceCode
              Sets the message tag for trace data messages.

       PvmSelfTraceBuffer
              Sets the trace buffer size for trace event collection (in bytes).

       PvmSelfTraceOptions
              Sets the PVM built-in tracing options for the calling task (see PvmTraceOptions).

       PvmShowTids
              If true (nonzero), pvm_catchout tags each line of output printed by  a  child  task
              with the task id.  Otherwise, output is exactly as printed.

       PvmPollType
              Sets  the  message wait policy when using shared-memory message transport.  Setting
              PvmPollType to PvmPollConstant causes the application to spin on its message  queue
              waiting  for a message.  Setting PvmPollType to PvmPollSleep causes the application
              to poll the message queue for messages PvmPollTime  times  before  pending  on  the
              semaphore.

       PvmPollTime
              Sets  the poll count for applications checking their message queue before they pend
              on the semaphore.  This option is ignored if PvmPollType is set to PvmPollConstant.

       PvmOutputContext
              Sets the message context for output collection messages from children.

       PvmTraceContext
              Sets the message context for trace data messages from children.

       PvmSelfOutputContext
              Sets the message context for output collection from the calling task.

       PvmSelfTraceContext
              Sets the message context for trace data messages from the calling task.

       PvmNoReset
              When set true (non-zero integer value) informs PVM *not* to kill  off  the  calling
              task when performing a "reset" command, such as issued by the "pvm" console.

       pvm_setopt  returns  the  previous value of the option.  If an error occurs, the PVM error
       code is returned in place of the option value.

EXAMPLES

       C:
            oldval = pvm_setopt( PvmRoute, PvmRouteDirect );
       Fortran:
            CALL PVMFSETOPT( PVMAUTOERR, 1, OLDVAL )

ERRORS

       This error condition can be returned

       PvmBadParam
              giving an invalid value.

SEE ALSO

       pvm_getopt(3PVM)

                                          4 April, 1994                              SETOPT(3PVM)