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.