Provided by: pvm-dev_3.4.5-12.6ubuntu1_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)