GUPPI has been retired and is no longer available for observing. Pulsar observers should exclusively use VEGAS pulsar modes.

Observing Instructions for VEGAS Pulsar Modes

Overview

VEGAS can be used in pulsar observing modes (VEGAS pulsar modes, or VPM) that are similar to those available with the old GUPPI backend (see the GBT Observer's Guide). VEGAS consists of eight CASPER ROACH2 FPGA boards and eight high performance computers (HPCs) equipped with nVidia GTX 780 GPUs, which together comprise a spectrometer bank (labeled A--H). VPM offers many combinations of observing modes, dedispersion modes, numbers of spectral channels, bandwidths, and integration times. Data are written in the PSRFITS format using 8-bit values.

Observing Modes

VPM can operate in one of three observing modes. All three modes can be used with coherent or incoherent dedispersion.
  • search: This mode is used to record spectra with very high time resolution (typically < 100 μs) and moderate frequency resolution (> 200 kHz). It is most often used when searching for new pulsars, observing known pulsars when a timing solution is not yet available, observing multiple pulsars simultaneously, or when resolution of individual pulses is required.
  • fold: This mode is used to phase-fold spectra modulo the instantaneous pulsar period. This requires a user-supplied pulsar timing solution that can be used by TEMPO1 in prediction mode (i.e., to generate "polycos"). Fold-mode is most often used for pulsar timing observations of individual pulsars.
  • cal: This mode is used for polarization and flux calibration observations of the GBT noise diodes. It is actually a specialized fold-mode in which data are phase-folded at a constant frequency of 25 Hz (or a period of 40 ms). This requires that the GBT noise diodes be turned on and set to a switching period of 0.04 s (see below)

Dedispersion Modes

VPM can operate in incoherent or coherent dedispersion modes. When using incoherent dedispersion, spectra are written without any removal of intrachannel dispersive smearing, and dedispersion must be performed offline (i.e. incoherently). When using coherent dedispersion, the intrachannel dispersive delay is removed prior to detection, providing higher effective time resolution.

When operating in incoherent dedispersion modes, each FPGA and HPC form an independent spectrometer bank (labeled A--H). The center frequency of each bank can be tuned independently, and each can process a maximum instantaneous bandwidth of up to 1500 MHz, though filters in the IF system limit the maximum usable bandwidth to 1250 MHz per spectrometer bank. The center frequencies of each bank can thus be arranged to contiguously cover up to 8 x 1250 Hz = 10 GHz, though, once again, IF limitations generally limit the maximum available bandwidth from any receiver to < 4 GHz (up to 8 GHz is available for certain receivers; see the GBT Observer's Guide).

When operating in coherent dedispersion modes with 800 or 1500 MHz of sampled bandwidth, one FPGA sends output to all eight HPCs. Since all the HPCs are in use the maximum total bandwidth in coherent dedispersion modes is 1500 MHz, 1250 MHz of which usable.

When operating in coherent dedispersion modes with 100 or 200 MHz of bandwidth, one FPGA sends output to one or two HPCs, respectively. In these cases, additional HPCs will not be active or write data. The exception is Bank A, which acts as the switching signal master and will always appear as active in CLEO, although it will not always write data.

Generally speaking, incoherent dedispersion is only recommended in the following use cases:
  1. Blind searches for new pulsars.
  2. Observations at frequencies higher than 4 GHz (i.e., C-Band), when > 1250 Hz of bandwidth is desired.
  3. Observations of long-period pulsars in which very high time resolution is not needed (i.e., intrachannel dispersive delays can be tolerated).
Observations of known pulsars, especially for high-precision timing, observations of multiple pulsars with similar dispersion measures (e.g. globular cluster MSPs), and pulsar searches for which a good estimate of the dispersion measure is available should usually use coherent dedispersion.

Available VPM Modes

All configurations are subject to a maximum data rate of 400 MB/s per bank. The data rate per bank can be calculated as

R = 1 byte x npol x nchan /tint,

where npol is the number of polarization products (4 for full Stokes parameters, 1 for total intensity), nchan is the number of spectral channels, and tint is the integration time (i.e. sampling time). The following table lists all currently supported VPM modes.

Name Dedispersion Mode Bandwidth (MHz) nchan Minimum recommended tint (us) Recommended vegas.scale*
c0100x0064 Coherent 100 64 10.24** 820
c0100x0128 Coherent 100 128 20.48** 595
c0100x0256 Coherent 100 256 40.96** 1650
c0100x0512 Coherent 100 512 81.92** 2355
c0200x0064 Coherent 200 64 5.12** 605
c0200x0128 Coherent 200 128 10.24** 865
c0200x0256 Coherent 200 256 20.48** 620
c0200x0512 Coherent 200 512 40.96** 1720
c0200x1024 Coherent 200 1024 81.92* 2430
c0800x0032 Coherent 800 32 0.64 375
c0800x0064 Coherent 800 64 1.28 420
c0800x0128 Coherent 800 128 2.56 800
c0800x0256 Coherent 800 256 5.12 940
c0800x0512 Coherent 800 512 10.24 1585
c0800x1024 Coherent 800 1024 20.48 880
c0800x2048 Coherent 800 2048 40.96 3155
c0800x4096 Coherent 800 4096 81.92 4550
c1500x0032 Coherent 1500 32 0.34133 365
c1500x0064 Coherent 1500 64 0.68267 530
c1500x0128 Coherent 1500 128 1.36533 730
c1500x0256 Coherent 1500 256 2.73067 1070
c1500x0512 Coherent 1500 512 5.46133 1450
c1500x1024 Coherent 1500 1024 10.92267 1085
c1500x2048 Coherent 1500 2048 21.84533 3000
c1500x4096 Coherent 1500 4096 43.69067 3750
i0100x0512 Incoherent 100 512 20.48 1875
i0100x1024 Incoherent 100 1024 40.96 4010
i0100x2048 Incoherent 100 2048 40.96 550
i0100x4096 Incoherent 100 4096 81.92 990
i0100x8192 Incoherent 100 8192 163.84 580
i0200x1024 Incoherent 200 1024 20.48 1920
i0200x2048 Incoherent 200 2048 40.96 1030
i0200x4096 Incoherent 200 4096 81.92 540
i0200x8192 Incoherent 200 8192 163.84 1045
i0800x0032 Incoherent 800 32 0.64 14830
i0800x0064 Incoherent 800 64 1.28 7240
i0800x0128 Incoherent 800 128 2.56 14690
i0800x0256 Incoherent 800 256 5.12 7340
i0800x0512 Incoherent 800 512 10.24 15320
i0800x1024 Incoherent 800 1024 20.48 7495
i0800x2048 Incoherent 800 2048 40.96 14300
i0800x4096 Incoherent 800 4096 81.92 7545
i0800x8192 Incoherent 600 8192 81.92 14725
i1500x0032 Incoherent 1500 32 0.34133 14675
i1500x0064 Incoherent 1500 64 0.68267 6835
i1500x0128 Incoherent 1500 128 1.36533 13485
i1500x0256 Incoherent 1500 256 2.73067 6750
i1500x0512 Incoherent 1500 512 5.46133 13345
i1500x1024 Incoherent 1500 1024 10.92267 6655
i1500x2048 Incoherent 1500 2048 21.84533 13035
i1500x4096 Incoherent 1500 4096 43.69067 6595
* Observers should still use the VPM monitor webpage or vpmMonitor tool to double check the value of vegas.scale for their particular observing setup.*

* * Observers should not use longer integration times in coherent dedispersion modes. Due to way blocks of data are sized for FFTs on the GPUs, longer integration times can result in artifacts in final data products.

Note that low bandwidth modes may be routed differently than high bandwidth modes.
  • When using incoherent dedispersion and and 100 or 200 MHz of bandwidth, Bank A should be the only active bank. The exception to this rule is when using the 342 MHz feed of the prime focus receiver, in which case the IF path is routed to Bank E. Bank A will still be active because it is always the switching signal master.
  • When using coherent dedispersion and 200 MHz of bandwidth, Banks A, C, and D will be active, but only bank C and D will record data. Bank A is active because it is the switching signal master.
  • When using coherent dedispersion and 100 MHz of bandwidth, Banks A and D will be active, but only Bank D will record data. Bank A is active because it is the switching signal master.

The reason for this setup is that the VEGAS FPGA boards cannot be clocked at rates slow enough to natively sample 100 or 200 MHz. Instead, they are clocked at a rate of 800 MHz, but only a portion of the sampled bandwidth is sent to the HPCs for processing.

Configuring VEGAS Pulsar Modes

Configuration Keywords

VPM is configured using the standard Astrid keyword/value configuration block, which is discussed in detail in the GBT Observer's Guide. Here we review only those keywords relevant for VPM.
  • obstype will always be Pulsar.
  • backend will be either VEGAS or VEGAS/GUPPI (see below).
  • bandwidth will be either 100, 200,, 800, or 1500.
  • dopplertrackfreq is not always required, but it is safe to include it (see the Known Issues below). It should be equal to the center of your observing band. If you are using one spectral window (i.e., one value of the restfreq keyword) then the value of dopplertrackfreq will be equal to the value of restfreq. If you are using multiple spectral windows (i.e. multiple values for the restfreq keyword), then dopplertrackfreq should be equal to the center of the overall observing band.
  • ifbw will always be 0
  • tint is the integration time. Under the hood, it is controlled by the hardware accumulation length, so that tint = acclen x nchan/BW. acclen can take on values from 4 to 1024 in powers of two. If you select an integration time that does not use a power of two acclen, acclen will be rounded down to the nearest power of two (resulting in a shorter integration time). Most observers will want to keep their integration times fast enough to resolve fast MSPs, while keeping the data rate < 400 MB/s.
  • swmode will either be tp for calibration scans or tp_nocal for pulsar scans.
  • swper will always be 0.04.
  • noisecal will be lo for calibration scans (this uses the low-power noise diodes) and offfor pulsar scans.

The following keywords are VPM specific.
  • vegas.obsmodecontrols both the dedispersion and observing mode. Allowed values are
    • search: Incoherent dedispersion search-mode
    • fold: Incoherent dedispersion fold-mode
    • cal: Incoherent dedispersion cal-mode
    • coherent_search: Coherent dedispersion search-mode
    • coherent_fold: Coherent dedispersion fold-mode
    • coherent_cal: Coherent dedispersion cal-mode
  • vegas.polnmode controls whether full Stokes or total intensity data are recorded. Allowed values are full_stokes and total_intensity, though total intensity can only be used in incoherent search-mode.
  • vegas.numchan sets the number of spectral channels. See the table above for allowed values for various bandwidths. Care must be taken not to exceed the maximum data rate.
  • vegas.outbits controls the number of bits used for output values. The only allowed value is 8.
  • vegas.scale controls the VPM internal gain so that the output data is properly scaled for 8-bit values. This value is typically chosen from experience with the observing set-up. Contact your project friend for advice on which value to use.
  • vegas.dm controls the DM used for coherent dedispersion search-mode. It is not used by any other modes.
  • vegas.fold_parfile specifies the path to the ephemeris (parfile) used for either incoherent or coherent dedispersion fold-modes. The parfile must be compatible with TEMPO1 prediction mode.
  • vegas.fold_bins controls the number of pulse phase bins used for either incoherent or coherent dedispersion fold- or cal-modes. Enough bins should be used to fully resolve fine profile structure. Typical values are 256 in incoherent dedispersion modes and 2048 in coherent dedispersion fold- or cal- modes.
  • vegas.fold_dumptime controls the length of a sub-integration in either incoherent or coherent dedispersion fold- or cal-modes. The value is specified in seconds, with 10 s being typical. It must be shorter than the total scan length.
  • vegas.subband is always 1for pulsar observing

Experienced observers will recognize that these keywords are very similar to those used by GUPPI. This is by design. Note that the guppi.datadisk keyword has no analog in VPM.

Example Configurations

The following scripts illustrate some common VPM configurations. The first example configures a single VPM bank for incoherent dedispersion search-mode.

config_vpm_single= """
obstype = 'Pulsar'
# 'receiver' can be any GBT receiver except MUSTANG.  Here, we use Rcvr1_2, 
# aka L-Band
receiver = 'Rcvr1_2'
restfreq = 1500.0
dopplertrackfreq = 1500.0 # Equal to the signle value of restfreq
nwin = 1
pol = 'Linear'
backend = 'VEGAS'
bandwidth = 800.0
# tint is highly flexible but subject to data rate limits. The true tint 
# will be rounded to the nearest value of acc_len * nchan / bw 
# where acc_len is an integer that controls the hardware 
# accumulation length
tint = 40.96e-6
deltafreq = 0.0
# For 'swmode', choose 'tp' for calibration, 'tp_nocal' for pulsar 
# observation
swmode = 'tp_nocal' 
swtype = 'none'
swper = 0.04
swfreq = 0
# For 'noisecal' choose 'lo' for calibration, 'off' for pulsar observation
noisecal = 'off' 
vlow = 0.0
vhigh = 0.0
vframe = 'topo'
vdef = 'Radio'
# The following keywords are VEGAS specific
# 'vegas.obsmode' can be search, cal, fold, coherent_search, 
# coherent_cal, or coherent_fold
vegas.obsmode = 'search' 
# 'vegas.polnmode' Can be full_stokes or total_intensity for search mode. 
# All other modes require full_stokes.
vegas.polnmode = 'total_intensity'
# 'vegas.numchan' can be any power of 2 between 128 and 4096
vegas.numchan = 2048
# 'vegas.scale' is configuration specific.  Ask your project friend for
# suggestions.
vegas.scale = 10000
vegas.outbits = 8
# These parameters are only used in cal, fold, coherent_cal, or 
# coherent_fold modes
vegas.fold_bins = 256
vegas.fold_dumptime = 10.0
vegas.fold_parfile = '/home/gpu/tzpar/B1937+21.par'
# 'vegas.dm' only used in coherent_search mode
vegas.dm = 0.0
"""

The next configuration uses multiple banks to cover a wider bandwidth.

config_vpm_multi= """
obstype = 'Pulsar'
# 'receiver' can be any GBT receiver except MUSTANG.  Here, we use Rcvr4_6, 
# aka C-Band
receiver = 'Rcvr4_6'
# Use the restfreq dictionary format to configure multiple banks
restfreq = [{'bank': 'A', 'restfreq': 4312.5}, 
          {'bank': 'B', 'restfreq': 5437.5}, 
          {'bank': 'C', 'restfreq': 6562.5}, 
          {'bank': 'D', 'restfreq': 7687.5}] ] 
dopplertrackfreq = 6000.0 # Required even without doppler tracking, equal to the center of the observing band
nwin = 5 # Must match number of entries in restfreq dictionary
pol = 'Linear'
backend  = 'VEGAS'
# 'bandwidth' is per spectrometer bank.  In this case the total bandwidth 
# is larger.
bandwidth = 1500.0 
# tint is highly flexible but subject to data rate limits. The true tint 
# will be rounded to the nearest value acc_len * nchan / bw 
# where acc_len is an integer that controls the hardware 
# accumulation length
tint = 40.96e-6
deltafreq = 0.0
# For 'swmode', choose 'tp' for calibration, 'tp_nocal' for pulsar 
# observation
swmode = 'tp_nocal'
swtype = 'none'
swper  = 0.04
swfreq = 0
# For 'noisecal' choose 'lo' for calibration, 'off' for pulsar observation
noisecal = 'off' 
# observation
vlow = 0.0
vhigh = 0.0
vframe = 'topo'
vdef = 'Radio'
# The following keywords are VEGAS specific
vegas.obsmode = 'search' # search, cal, fold
# 'vegas.polnmode' Can be full_stokes or total_intensity for search mode. 
# All other modes require full_stokes.
vegas.polnmode = 'total_intensity'
# 'vegas.numchan' can be any power of 2 between 128 and 4096
vegas.numchan = 2048 
vegas.scale = 10000
vegas.outbits = 8
# These parameters are only used in cal, fold
vegas.fold_bins = 256
vegas.fold_dumptime = 10.0
vegas.fold_parfile = '/home/gpu/tzpar/B1937+21.par'
"""

Note the use of the dictionary format to manually specify the center frequencies of each bank in the above multi-bank configuration. A simple, comma-separated list of values can also be used. The nwin parameter must match the number of rest frequencies, i.e. the number of banks being used. dopplertrackfreq must also be specified when using the dictionary format, even though pulsar observers will not typically use Doppler tracking (i.e., vframe is set to topo).
Dual Backend Operation With GUPPI

GUPPI has been retired. Dual backend operation with VEGAS and GUPPI is no longer supported.

Example Scheduling Blocks

Scheduling blocks are described in detail in the GBT Observer's Guide. Here we describe only the most typical steps for pulsar observers. These are:
  1. Load an Astrid catalog using the Catalog command.
  2. Define a configuration block as described above.
  3. Configure the GBT using the Configure command.
  4. Slew to a source using the Slew command.
  5. Update the pointing and focus corrections using an AutoPeakFocus. Note that this is essential to do if observing with C-Band or higher frequency receivers to ensure good efficiency. If observing with S-Band and lower frequency receivers, it is not as important, since the default pointing and focus models are already very good, and most pulsar observers choose to avoid the overhead time. However, it never hurts to start with peak and focus scans. Always remember to reconfigure after an AutoPeakFocus , otherwise you won't be set up for pulsar observing.
  6. Balance the IF system using the Balance command.
  7. Take data via one of several observing directives, such as Track or OnOff.

The following example scheduling block demonstrates a simple polarization calibration and pulsar observation. Note that we assume that the configuration blocks are already defined.

# Load one of the built-in Astrid catalogs
msps = Catalog(pulsars_bright_MSPs_GBT)

# Define some variables to be used elsewhere in the script
source = "B1937+21"
scan_length = 605.0

# ResetConfig should be used at the start of a session or when configuring
# with a different IF setup (see below)
ResetConfig()

# Slew to the source of interest
Slew(source)

# Update pointing and focus corrections (optional at S-Band and below)
# We'll also slew back to the main source when done.
AutoPeakFocus()
Slew(source)

# Always remember to reconfigure after an AutoPeakFocus!

# Configure for the calibration scan.  We assume the configuration block
# has already been defined.
Configure(config_vpm_cal)

# Balance the IF system
Balance()

# This is a reminder to check the bandpass levels or folded profiles during the cal scan
# Bandpass can be checked by visiting www.gb.nrao.edu/vpm/vpm_monitor
# Folded profiles can be checked in coherent dedispersion modes by visiting www.gb.nrao.edu/vpm
Break("Remember to check bandpass levels (incoherent DD) or folded profiles (coherent DD) during cal scan")

# Take a 65 second calibration scan
Track(source, None, 65.0)

# Now configure for the pulsar scan
Configure(config_vpm_psr)

# And take the main scan.  Note that we do *not* balance again
Track(source, None, scan_length)

There are a couple of things to take note of in this example.
  1. We do not issue a second Balance command after the polarization calibration scan, but instead immediately reconfigure and take our main pulsar scan. If we did rebalance, the conversion factor between counts and antenna temperature/flux density could change and our calibration scan would not be valid for the pulsar scan.
  2. We add 5 seconds to the scan length in cal- and fold-mode scans to ensure that the last sub-integration is always written to disk.

If you want to take drift-scan data, you can use the current encoder position as your "source" but still issue a Track command---the telescope will not actually track, but will remain at the position specified by the encoder.

# Use the current Encoder position for a drift scan observation
source = GetCurrentLocation("Encoder")

# ResetConfig should be used at the start of a session or when configuring
# with a different IF setup (see below)
ResetConfig()

# Configure and balance
Configure(config_vpm_search)
Balance()

# This is a reminder to check the bandpass levels or folded profiles during the scan
# Bandpass can be checked by visiting www.gb.nrao.edu/vpm/vpm_monitor
# Folded profiles can be checked in coherent dedispersion modes by visiting www.gb.nrao.edu/vpm
Break("Remember to check bandpass levels (incoherent DD) or folded profiles (coherent DD fold) during scan")

# And take a 1-hour drift scan
Track(source, None, 3600.0)

If your science goal requires absolute flux calibration, you will probably want to perform an on/off scan sequence on a standard calibrator source.

# Load one of the built-in Astrid catalogs
fluxcal = Catalog(fluxcal)

# Define some variables to be used elsewhere in the script
source = "3C43"

# ResetConfig should be used at the start of a session or when configuring
# with a different IF setup (see below)
ResetConfig()

# Slew to the source of interest
Slew(source)

# Configure for the calibration scan.  We assume the configuration block
# has already been defined.
Configure(config_vpm_cal)

# Balance the IF system
Balance()

# This is a reminder to check the bandpass levels or folded profiles during the fluxcal scan
# Bandpass can be checked by visiting www.gb.nrao.edu/vpm/vpm_monitor
# Folded profiles can be checked in coherent dedispersion modes by visiting www.gb.nrao.edu/vpm
Break("Remember to check bandpass levels (incoherent DD) or folded profiles (coherent DD) during scan")

# Take a on/off scan.  Each scan will last 65 seconds, and our off
# position scan will be 1 degree away in right ascensiom and declination from our
# on-source position
OnOff(source, Offset("J2000", 1.0, 1.0, cosv=False), 65.0)

The GBT Observer's Guide has lots of other useful observing tricks. Note that since Astrid is written in python, one can write scripts that iterate over sources and automate a lot of the observing setup. Contact your project friend if you'd like help with more advanced scripting.

VPM Observing Tools

Once you start observing you will want to check the quality of your data and make sure that things run smoothly. A number of tools have been designed to facilitate this, many of which are similar to those used for GUPPI.

The VEGAS CLEO Screen

Unlike GUPPI, VEGAS has its own CLEO application that can be used for spectral line and pulsar observing modes (see the GBT Observer's Guide for more information on CLEO). There are two ways to launch the VEGAS CLEO application:
  1. From the main CLEO launcher, go to Backends and select VEGAS.
  2. Type cleo vegas from any command prompt.

Figure 1 shows an example of the VEGAS CLEO screen when in high bandwidth pulsar mode. The upper panels display information about setup on individual banks. The most relevant parameters for pulsar observers are the mode and integration time. The bottom panels show the state of the VEGAS managers on each bank.

When using incoherent dedispersion, anywhere from one to eight banks may be active, depending on how the system was configured. In this case, it is completely normal for inactive banks to be configured for a different mode (possibly a spectral line mode) and/or to be in an off state. In high bandwidth coherent dedispersion modes only the FPGA on Bank A is active, but all the managers and HPCs will be used and configured in the same way. However, the power monitors on other banks will notbe in use (because they are tied to the inactive FPGAs), and may not be near the target value of -20 dB (see below).

VPM CLEO.pngThe VEGAS CLEO screen when operating in pulsar modes. In this case VPM is configured for coherent dedispersion, so all eight banks are active and configured in the same way. However, only the power monitor for Bank A will be in use. Note the VEGAS Power Monitor button on the right-hand side.

Note that in low bandwidth modes, not all banks may be active. This is normal behavior. In general, Bank A will always be active as the switching signal master, but other banks (example C and D) may be the only banks recording data. See the section on Available VPM Modes for more information.

The VEGAS Data Monitor

The VEGAS data monitor is used to check the input power levels for each bank and replaces the guppi_adc_hist tool used for GUPPI. There are two ways to launch the data monitor:
  1. From the VEGAS CLEO application, click on the VEGAS Power Monitor... button (see Figure 1).
  2. Type vegasdmfrom any command prompt.

Figure 2 shows the data monitor. The top panel shows the input power level in chart recorder form for both polarization channels.The target power level is -20 ± 1.5 dB.The plot is auto-scaling, so if the power levels change (e.g., during balancing) the plot may change abruptly. Note that there are separate tabs at the top of the application for each bank, though only active banks will update. The ``All measpwr'' tab shows the chart recorder for each bank. The bottom two panels show a histogram of 8-bit values from each ADC, one for each polarization channel. These should have zero mean and a FWHM of approximately 30 counts once the system is balanced.

VPM DM.pngThe VEGAS Data Monitor screen. Data for Bank A is selected in this example, but all eight banks are active. The chart recorder shows proper input values of approximately -20 dB. The histograms of 8-bit ADC output values are also in an acceptable range, with a FWHM of approximately 30 counts.

Note that the active banks are the same as described in the previous section for low bandwidth modes.

The vpmStatus Tool

VPM makes use of shared memory to pass configuration parameters between the managers and data acquisition programs. To check the status shared memory type vpmStatus at the command prompt while logged into one of the VEGAS HPCs . These HPCs are namedvegas-hpc11 for Bank A, vegas-hpc12 for Bank B, etc. Shared memory will only be properly configured on banks that are in use.

Note that as of Aug 26, 2021, the VEGAS HPC names have changed. vegas-hpc1 through vegas-hpc8 should not be used. Instead, use vegas-hpc11 through vegas-hpc18.

vpmStatus plays the same role as guppi_status.

The vpmHPCStatus Tool

When using a multi-bank incoherent dedispersion mode or coherent dedispersion mode it is useful to check the status of all the active banks at once. This is done by typing vpmHPCStatus at the command prompt of a computer on the GBO network (note: must be a RHEL7 machine). This tool displays the center frequency, status of various processing threads (network communication and dedispersion), the current data block index, and a fractional running total of any dropped packets. It also displays the last few lines from the manager logs.

Note that inactive banks may have values like ``Unk'' (for unknown). This may occur if those banks are configured for spectral line observing. Inactive banks also will not update during data taking.This is normal behavior. You need only pay attention to the status of banks currently in-use.

vpmHPCStatus plays the same role as guppi_gpu_status. Figure 3 shows an example status screen.

vpmHPCStatus.pngThe vpmHPCStatus screen. VPM is configured for coherent dedispersion at L-band in this example.

vpmHPCStatus LBW.png The vpmHPCStatus screen. VPM is configured for coherent dedispersion at at 820 MHz with 200 MHz of bandwidth in this example.

The VPM Data Display Webpage

Data from each HPC that is collected in coherent dedispersion fold- or cal-modes is displayed on a public webpage: www.gb.nrao.edu/vpm. The page refreshes every few seconds and should reflect the most recently written scan in close to real-time. The source name and modification time are displayed at the top of the page. The first column shows observing frequency vs pulse phase summed over the entire data file. The middle column shows frequency vs pulse phase for the most recent sub-integration. The last column shows observing time vs pulse phase summed over all frequencies.Note that long scans will be broken into multiple output files, and when a new file is opened the S/N may seem to suddenly drop.This is expected and the S/N should recover as more data is written to that file. Also note that under certain browsers (e.g. Chrome) the page not always automatically refresh. If VPM seems to be running but the plots are not updating, first try clearing your browser's cache and then reopening the page. If it still is not updating ask the GBT operator to make sure that the VPM coherent dedispersion autoplotting script is still running.

Note that in low bandwidth modes, not all banks may be active. A text box will appear next to those banks that are not configured to record data.

This page plays the same role as www.gb.nrao.edu/guppi

VPM webpage LBW.pngThe VPM data monitoring webpage. In this case, VEGAS is configured for coherent dedispersion with 200 MHz of bandwidth at a center frequency of 820 MHz. Only two banks are active.

The VPM Monitor Webpage

When operating in incoherent dedispersion mode, bandpass plots are displayed on a public webpage: www.gb.nrao.edu/vpm/vpm_monitor. The page refreshes every few seconds and so should be close to real-time. Note that there is a separate panel for each bank, but only active banks will display data. The red curve shows the mean and the blue curves show the minimum and maximum values for the current data block. The average value should be around 30-40 counts and can be adjusted using the vegas.scale parameter. The relationship is linear for incoherent dedispersion modes. This page can also be used to monitor the RFI environment.

If you wish, you can run the same tool manually for more current data. To do this, type vpmMonitor at the command prompt while logged into one of the VEGAS HPCs. VPM must be taking data at the time. Use of the webpage is preferred.

These tools play the same role aswww.gb.nrao.edu/guppi/guppi_monitor and guppi_monitor.

Monitoring the VEGAS Manager Output

Output from the VPM data acquisition programs (as well as the spectral line programs) is captured by the VEGAS managers and written to log files. These log files can be found in/home/gbt/etc/log/vegas-hpcN where N is the bank number, e.g. vegas-hpc11 for Bank A. You can access these files from any GBO computer. A new log is started each time the VEGAS managers are started, so type ls -tr in the appropriate directory to find the name of the most recent log. Once you have this, you can follow the output by typing tail -f <logName>, where you replace <logName>with the appropriate file name.

Users typically will not have to check the logs unless they are trying to diagnose a problem. These log files play the same role as/tmp/guppi\_daq\_server.log, but they record output for all scans, both in incoherent and coherent dedispersion mode.

Accessing Your Data

VPM data are written directly to the lustre file system, and can be accessed from any of the machines listed as lustre clients atwww.gb.nrao.edu/pubcomputing/public.shtml(e.g. euclid or thales).

In coherent dedispersion modes data are written to

/lustre/gbtdata/<projectID>/VEGAS\_CODD/<bankID>

where <projectID> is your GBT project code with the session number in Astrid appended, e.g. AGBT18A_100_01, and<bankID>is the one-letter bank name (A--H).

i n incoherent dedispersion modes data are written to

/lustre/gbtdata/<projectID>/VEGAS/<bankID>

File names follow the forms:

vegas_<MJD>_<secUTC>_<sourceName>_<scanNumber>_<fileNumber>.fits(fold- and search-modes)

vegas_<MJD>_<secUTC>_<sourceName>_cal_<scanNumber>_<fileNumber>.fits (cal-mode)

where <MJD> is the modified Julian date of the observation, <secUTC> is the number of seconds after midnight UTC at the start of the scan, <sourceName> is the source name as identified from the Antenna manager, <scanNumber> is the scan number within the current Astrid session, and<fileNumber> is the file number within the current scan (long scans are broken across multiple files to avoid any one file from being very large).<secUTC> is a zero-padded five-digit integer and and <fileNumber> are zero-padded four-digit integers. Example file names are

vegas_58150_05400_B1937+21_0001_ca_0001.fits

vegas_58150_05490_B1937+21_0002_0001.fits

This format differs slightly from GUPPI, which does not have the<secUT> element. This has been added to avoid corner cases where GUPPI file names may not be unique.

Data are recorded in the PSRFITS standard, which can be processed by all common pulsar data analysis packages (e.g. PRESTO, PSRCHIVE, and DSPSR). Data in all modes are recorded in the /lustre/gbtdatafile store.

Fold- and cal-mode data will be archived per typical GBO data archiving policies. Due to large data volumes, search-mode data will not be included in the long-term archive.Please make arrangements to move large data sets off of the lustre file system as quickly as possible.Data can be transferred over internet (preferred) or shipped on hard disks. Please contact your project friend if you need help managing data.

Timing Offsets

Each VPM mode has a different backend timing delay. To determine the tiing offset for your observing mode use /home/pulsar_rhel7/bin/vpmTimingOffsets.py

This delay accounts for delays arising from the polyphase filterbanks employed on the ROACH2's. Because GUPPI and VEGAS have slightly different signal paths there are some additional offsets between the two backends. Empirically these are less than 1 microsecond.

Note that overlap delays in coherent dedispersion search mode are already applied to the data via a PSRFITS keyword. This was not the case with GUPPI.

Putting it All Together

In summary, a typical VPM observing session will consist of the following steps.
  1. Create scheduling blocks well in advance of being scheduled. Contact your project friend if you have questions.
  2. At the beginning of your observing session:
    1. Launch the CLEO VEGAS and VEGAS Data Monitor applications.
    2. Launch the vpmHPCStatus and/or vpmStatus tools, as appropriate.
    3. Log in to a lustre client and prepare to navigate to your data output directory (the directory will only be made once data start being recorded).
    4. Navigate to www.gb.nrao.edu/vpm to monitor coherent dedispersion fold- and cal-mode observations and www.gb.nrao.edu/vpm/vpm_monitor to check the bandpass for incoherent dedispersion observations.
  3. Once VEGAS has configured, check that the observing mode and various parameters are set properly using the VEGAS CLEO application and the vpmStatus and/or vpmHPCStatus tools.
  4. Once VEGAS has balanced, check the input power and ADC output using the Data Monitor.
  5. Once you have started recording data, check your fold- or cal-mode scans using the online viewers or by accessing data directly on disk. You should also check the bandpass using the VPM monitor webpage or the vpmMonitor tool.
  6. Once you have started your main science scans, keep an eye on the output data and the data-taking status using the status monitors.
  7. Start processing large data sets as soon as possible after your sessions ends.

Tips and Tricks

  • Before writing scheduling blocks from scratch, ask your project friend if there are any already available from other projects that might suit your needs. This minimizes the possibility of an incorrect set-up or scheduling block.
  • If you are searching for pulsars or observing a new source, consider observing a well known pulsar as a test source at the start of your session to make sure that things are working properly. A cal-mode scan can also be used.
  • If vpmStatus and/or vpmHPCStatus show unexpected values, the system seems to be having trouble balancing, or you experience other issues, ask the operator to cycle the VEGAS managers off/on, or do so yourself if you know how. This is usually sufficient to resolve any odd states that could arise out of a partial or incorrect configuration. If this fails, ask the operator to fully restart (stop/start) the VEGAS managers. If this still doesn't work, ask the operator to contact the on-duty support scientist.
  • The GBT noise diodes are stable over short-to-medium time scales, and a number of continuum flux calibration scans are available for common observing set-ups (this is especially true of 820 MHz and L-band NANOGrav set-ups because NANOGrav observes flux calibrators at least once a month). If you're project requires flux calibration, consider contacting your project friend to see if appropriate calibration data already exist.
  • If you are observing multiple sources with relatively short scan lengths, and the operator needs to take control for a wind-stow or snow-dump, ask if you can let the current scan finish and then use Pause to let the operator take control. Once control is released back to you, you can simply un-pause and pick up where you left off. But if the operator needs to take control immediately, abort your scan and let them take over.

Important Note on Calibration

  • When calibrating coherent search mode data using coherent calibration scans, the resulting fluxes must be multiplied by a factor of exactly 20 to account for a scaling factor that is applied during online processing.

Use of dopplertrackfreq Keyword

The Doppler tracking frequency impacts how the first LO is tuned. This is true even if Doppler tracking is not actually used (which is the case for pulsar observing). The dopplertrackfreq keyword does not always need to be specified. If it is not specified, the Config Tool will simply set it equal to the first value specified for restfreq. For most pulsar observations, only a single restfreq is used, so we have not generally been in the habit of explicitly specifying a value for dopplertrackfreq.

However, for VEGAS observations using multiple banks to cover a wide bandwidth, we recommend explicitly specifying a value of dopplertrackfreq that is equal to the center of the observing band.

The problem is that Config Tool was intentionally designed to remember and preserve it's state from one configuration to the next unless a keyword is explicitly assigned a new value, or the configuration is manually reset using the ResetConfig command. Unfortunately, this behavior runs counter to what many observers expect, even experienced GBT observers.

When an observer manually specifies a value of dopplertrackfreq, this value will persist, even into the next observing session, unless a new value is specified or a ResetConfig is performed. When this happens it can cause an error in calculating which sideband sense VEGAS receives -- in nearly all situations it should be lower sideband, meaning that the highest frequency is in the lowest channel. When dopplertrackfreq is incorrect, it can cause the sideband to be incorrectly labeled as upper. This reverses the frequency labeling in VEGAS. For incoherent dedispersion the labels can be corrected after the fact without any impact on data quality, but for coherent dedispersion the wrong dedispersion filter will be applied online, corrupting the data.

This only occurs for certain configuration sequences, namely when switching from a pulsar mode that specifies dopplertrackfreq to one that doesn't (it would also happen if switching from to a spectral line mode that specifies dopplertrackfreq to one that doesn't). Switching from a pulsar to a spectral line mode (or vice versa) will reset things so that this isn't an issue.

There are two ways to avoid this problem:

Option 1:

  • Reset the GBT configuration at the start of your observing session. It is easiest to do this by simply adding this one line to a stand-alone Astrid scheduling block and submitting it at the start of your session.

    ResetConfig()

    That's it! Most projects will only have to do this once at the start of a session, however, if you are using multiple receivers and/or center observing frequencies with different values of the "dopplertrackfreq" keyword during a session, you should also run this ResetConfig () command before you submit a script with a different configuration.

Option 2:

  • Modify your configuration strings to always explicitly specify a value for dopplertrackfreq. This keyword specifies the Doppler tracking frequency. Even though pulsar observers don't use Doppler tracking, it still impacts how the IF system is set up. The value of dopplertrackfreq should be equal to the center frequency of your overall observing band. If you are only using a single value for the restfreq keyword, then use the same value for dopplertrackfreq. If you are using multiple VEGAS banks to cover a wider bandwidth by specifying multiple values for restfreq, the value of dopplertrackfreq would be equal to the center of the overall observing band.

If you adopt Option 1 then Option 2 isn't necessary, and vice versa. Of course, there is no harm in adopting both.

Transitioning From GUPPI to VPM

Experienced pulsar observers will recognize that GUPPI and VPM observing are very similar, especially the parameters used in scheduling blocks. The following table summarizes the similarities and some differences between GUPPI and VPM.
  • Astrid: Most "guppi." parameters can be replaced with "vegas.". The exceptions are guppi.datadisk, which has no VPM equivalent.
  • File names: VPM output file names include a new element, the number of seconds after midnight UTC.
    vegas_<MJD>_<secUTC>_<sourceName>_<scanNumber>_<fileNumber>.fits
    vegas_<MJD>_<secUTC>_<sourceName>_cal_<scanNumber>_<fileNumber>.fits

Table 2 can be used a cheat-sheet for navigating between some common GUPPI and VPM tasks.

Quick Reference for Trainsitioning from GUPPI to VPM
GUPPI Tool or Procedure VEGAS Tool or Procedure Notes
guppi_adc_hist VEGAS Data Monitor Data monitor updates continuously; No need to pause a scheduling block to check ADC levels.
guppi_status vpmStatus Must be run from the appropriate VEGAS HPC (e.g. vegas-hpc11).
guppi_gpu_status vpmHPCStatus Can be run from any computer.
guppi_monitor vpmMonitor Web interface is preferred; Must be run from the appropriate VEGAS HPC (e.g. vegas-hpc11)
guppi_offsets vpmTimingOffsets.py Used to find mode-dependent timing offsets.
www.gb.nrao.edu/guppi www.gb.nrao.edu/vpm Firefox is recommended (Google Chrome does not always update properly)
www.gb.nrao.edu/guppi/guppi_monitor www.gb.nrao.edu/vpm/vpm_monitor Firefox is recommended (Google Chrome does not always update properly)
/data1/<userName>/<projectID>/<date>
/data2/<userName>/<projectID>/<date>
/lustre/gbtdata/<projectID>/VEGAS/<bankID> Output directory for incoherent dedispersion modes.
/data/gpu/partial/<gpuNum>/ /lustre/gbtdata/<projectID>/VEGAS_CODD/<bankID> Output directory for coherent dedispersion modes.
Topic attachments
I Attachment Action Size Date WhoSorted ascending Comment
VPM_CLEO.pngpng VPM_CLEO.png manage 42 K 2018-02-20 - 13:40 RyanLynch VPM CLEO Screen
VPM_DM.pngpng VPM_DM.png manage 66 K 2018-02-20 - 13:40 RyanLynch VEGAS Data Monitor
VPM_webpage_LBW.pngpng VPM_webpage_LBW.png manage 98 K 2019-07-03 - 09:59 RyanLynch VPM webpage in LBW mode
vpmHPCStatus.pngpng vpmHPCStatus.png manage 116 K 2018-02-20 - 13:41 RyanLynch vpmHPCStatus Screen
vpmHPCStatus_LBW.pngpng vpmHPCStatus_LBW.png manage 94 K 2019-07-03 - 09:56 RyanLynch vpmHPCStatus Screen in LBW mode
Topic revision: r27 - 2023-09-07, BrenneGregory
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding NRAO Public Wiki? Send feedback