Next Previous Contents

4. Using pvm_xstar

pvm_xstar has a simple text-mode interface, and will most often be executed directly from the interactive command line. A typical session might resemble:

        linux%  pvm_xstar /home/mnoble/data  <RETURN>

        pvm_xstar Version 0.3.0
        Using PVM virtual machine id: pvm_xstar-17474

        BEGIN: Fri Nov 21 16:33:13 EST 2008

        Output files will be written to: /home/mnoble/data/pvm_xstar

        xstinitable v1.0
        Compiled: Mar 11 2008 17:09:25
        spectrum type?[pow]                                <RETURN>
        radiation temperature or alpha soft maximum?[-1.]  <RETURN>
        covering fraction soft maximum (0.:1.) [1.]        <RETURN>
        density soft maximum (cm**-3) (0.:1.E18) [1.E11]   <RETURN>


        Slave running pvm_xstar_slave spawned on rabble with task-id 262147

        Slave running pvm_xstar_slave spawned on node12 with task-id 524289

        Slave running pvm_xstar_slave spawned on node11 with task-id 786433


The working directory is a mandatory parameter which specifies where both intermediate results as well as the final output table model will be written. pvm_xstar requires that XSTAR be properly configured prior to its execution, and attempts to verify this by examining the $HEADAS environment variable.

After prompting for XSTAR physical parameters pvm_xstar attempts to launch a virtual machine and submit the XSTAR job list. By default pvm_xstar looks for a PVM hosts file in $HOME/.pvmhosts, but that can be customized with the --h option described below. To allow multiple PVM workloads to be processed simultaneously sans interference, pvm_xstar tags each virtual machine it launches with a unique identifier (PVM_VMID, as described in pvm_intro(1) man pages). By default this identifier will be pvm_xstar-XXXXX where XXXXX is a 5-digit integer generated pseudo-randomly each time pvm_xstar is invoked, however the user can specifying a custom id by using the -v option.

4.1 Command Line Options

Invoking pvm_xstar with ---help or any unrecognized option will cause it to emit a help message:

pvm_xstar: manages parallel execution of multiple XSTAR jobs, with PVM
Version 0.3.2

Usage:  pvm_xstar [options] WorkDir [xstinitable parameters | joblist]

WorkDir must be writable and $HEADAS must be configured.

Supported options are:
  -h <file>  use this file to launch PVM, instead of $HOME/.pvmhosts
  -i <exe>   use exe to initialize work dir/env of each parallel job
  -l <log>   redirect console output to log file
  -nph <N>   set max number processes per host to N (default: 4)
  -p         ping: returns path through which pvm_xstar was invoked
  -v <vmid>  use this virtual machine id, instead of pvm_xstar-XXXXX
  -V         display the version number of pvm_xstar

Normally xstinitable will be launched to prompt for XSTAR physical
parameters and generate a list of XSTAR jobs to run in parallel.
This can be customized by supplying xstinitable parameters on the
command line (such as mode=h) OR by supplying the name of an 
existing joblist file, in which case xstinitable will not be run
nor will the generated spectra be collated into a single table
model with xstar2table.

Customizing the Number of Processors Used

By default pvm_xstar will use at most 4 processors per host in the virtual machine. If you want to change that, say to use all 8 cores of a multicore workstation, specify the option -nph 8.

Capturing Console Output To a Log File

Both XSTAR and pvm_xstar can emit large volumes of output to the console. For this reason we advocate the use of a log file, such as

        master%  pvm_xstar -l run.log ...
While this may seem superfluous in light of standard UNIX output redirection
        master%  pvm_xstar ... > run-stdout.log
it isn't, because the latter would also capture the prompts for XSTAR input parameters, which is undesirable for interactive use. Progress can be monitored during long-running computations by viewing a snapshot of the log directly in an editor, or using tail to see incremental updates:
        master%  tail -f run.log

Next Previous Contents