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.
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).
-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
|-hosts <rechosts>|| In eVLBI mode, read file