startcorr.pl - difx/difx GitHub Wiki
startcorr.pl
is a Perl script which will run some simple checks that a
difx job is ready to run (.input file exists etc) and launch mpifxcorr.
It also supports eVLBI - and will connect to remote LBADR or Mark5
recorders and send appropriate commands to start the data steam. Mark5
support should be considered "beta" quality. LBADR control works very
well.
startcorr.pl
just acts as a wrapper for mpirun for diskbased (ie
non-eVLBI) correlation. Not all mpirun options are supported (but are
easy to add), but can be used as a drop in replacement for mpirun.
For eVLBI startcorr.pl
does more work. It takes the passed .input file
and modifies the start time for ~30seconds in the future and changed the
length of the job (EXECUTE TIME
) appropriately. It creates a new
.input file with the start time encoded in the filename. It then runs
mpifxcorr using this new .input file and optionally starts the remote
recorders. As there is not enough information in the .input file to
fully configure the remote recorders, and additional recorder host file
is needed which sets some of these values.
For diskbased playback (including non-realtime streaming of remote disk data using the mpixcorr eVLBI interface) use startcorr.pl as a wrapper for mpirun, e.g.
> startcorr.pl -machinefile machines -np 10 /home/vlbi/difx/bin/mpifxcorr v999.input
Note startcorr.pl supports one extra option -monitor to tell mpifxcorr to use the monitor_server (see below).
The option -evlbi
tells startcorr.pl to run in evlbi mode (as
described above). To enable control of remove recorders the -hosts
option is needed with its argument the name of a file (described below).
E.g.:
> startcorr.pl -evlbi -machines machines -np 10 /home/vlbi/bin/mpifxcorr -hosts rec.host v999.input
The format of the "hosts" file for remote recorder control is a simple text file with each line containing space deliminated entries (free format) for a single antenna (or specifically datastream). Any antenna which is in the host file but not in the .input file is ignored and any antenna which is not in the hosts file is ignored (ie will have to be started by hand). The for LBADR recorders the format is
'' <TelescopeName> <RemoteRecorder> <DixDataStreamHost> <Compression> <RecordingMode> <IPD>''
while for Mark5b recorders, the format is
'' <TelescopeName> <RemoteRecorder> <DixDataStreamHost> <Mask/TrackRate> <Blank> <IPD>''
TelescopeName
: is the Telescope Name from the .inputfile, usually the
two letter antenna id (fully capitalized).
RemoteRecorder
: is the network name of the remote VLBI recorder,
either IP address or name.
DifxDataStreamHost
: is the name of the local cluster node which will
be running the appropriate DataStream for this telescope. startcorr.pl
cannot figure this out and cannot read this from the mpi machines file.
Note this host name is what the remote VLBI recorder needs to resolve
the IP address of the network interface it will connect to; ie if will
usually need to be a fully qualified domain name (ie contain the full
network address, not just the hostname).
Compression
: The appropriate compression setting for LBADR recorders.
Ask an expert.
RecordingMode
: The appropriate recording mode for LBADR recorders. Ask
an expert.
Mask/TrackRate
: For Mark5b recorders the appropriate track bitmask for
the current recording. Ask an expert for the appropriate value. For
Mark5a recorders, the appropriate trackrate for the current recording.
As an expert for the appropriate value.
Blank
: For Mark5 recorders, this field is ignored
IPD
: [Optional] Interpacket delay. The delay in uSec to use between
UDP packets. Setting this value is often crucial. For some mark5 systems
with the newest versions of jive5a[b], setting this to -1 will allow
the recorder to choose the IPD itself. The appropriate value will depend
on the MTU and datarate.
startcorr.pl
supports the following options:
-machinefile <machines> | MPI machinefile |
-np <np> | Number of MPI processes to run |
-evlbi | Run in realtime eVLBI mode |
-offset <offset> | Offset, in seconds, to delay start of mpifxcorr from "now" |
-monitor <monhost> | Tell mpifxcorr to connect to monitor server running on host monhost
|
-hosts <rechosts> | In eVLBI mode, read file rechosts and start the appropriate remote eVLBI recorders |