example_dedispersion_plan.ymlΒΆ

# To create a dedispersion_plan yaml file, use 'pirate_frb show_dedisperser -v'.
# 
# The dedispersion_plan yaml file is used internally by pirate, and is also one of three
# metadata files sent from pirate to the grouper. (Most fields are only useful internally,
# and won't be needed in the grouper.)

dtype: float16                 # Data type for dedispersion computations
nfreq: 28160                   # Total number of frequency channels across all zones
nt_in: 2048                    # Number of time samples per input chunk
toplevel_rank: 16              # Tree rank specified in toplevel config
num_downsampling_levels: 4     # Number of downsampling levels
beams_per_gpu: 60              # Number of beams processed per GPU
beams_per_batch: 2             # Number of beams per batch
num_active_batches: 2          # Number of active batches
stage1_dd_rank: [8, 7, 7, 7]   # Active dedispersion rank of each stage1 tree
stage1_amb_rank: [8, 8, 8, 8]  # Ambient rank of each stage1 tree (= number of coarse freq channels)
ntrees: 10                     # Number of output trees (== length of the 'trees' sequence below)

# As explained in notes/tree_dedispersion.tex, the dedisperser consists of multiple "trees"
# corresponding to pairs (ds_level, delta_rank). Here, ds_level is the input downsampling that
# is applied before dedispersion, which controls the DM-range of the tree. If delta_rank > 0,
# then the tree has an "early trigger" and searches a subset of the frequency range (the value
# of delta_rank is the "earliness").
# 
# The details of the trees are nontrivial -- see notes/tree_dedispersion.tex for info/plots.

trees:

  - tree_index: 0
    ndm_out: 4096               # Number of output (dedispersed) DM channels
    nt_out: 128                 # Number of output time samples
    dm_min: 0                   # Minimum DM (pc/cm^3)
    dm_max: 1480.9072871051153  # Maximum DM (pc/cm^3)
    trigger_frequency: 300      # Early-trigger frequency (MHz)
    ds_level: 0                 # 1 ms samples, DM range [0, 1480.91]
    delta_rank: 0               # non-early trigger at 300 MHz, max delay 65.536 seconds
    max_width: 16               # 16 ms
    dm_downsampling: 16
    time_downsampling: 16
    wt_dm_downsampling: 64
    wt_time_downsampling: 64

    # At tree_index=0, 25 frequency subband(s) are searched:
    # 
    #   pf_level=0: [948.7,1500.0], [750.0,948.7], [639.6,750.0], [566.9,639.6], [514.5,566.9]
    #   pf_level=1: [750.0,1500.0], [639.6,948.7], [566.9,750.0], [514.5,639.6], [474.3,566.9],
    #               [442.3,514.5], [416.0,474.3], [393.9,442.3], [375.0,416.0]
    #   pf_level=2: [566.9,1500.0], [474.3,750.0], [416.0,566.9], [375.0,474.3], [344.1,416.0],
    #               [319.8,375.0], [300.0,344.1]
    #   pf_level=3: [416.0,1500.0], [344.1,566.9], [300.0,416.0]
    #   pf_level=4: [300.0,1500.0]

    frequency_subband_counts: [5, 9, 7, 3, 1]

  - tree_index: 1
    ndm_out: 1024                          # Number of output (dedispersed) DM channels
    nt_out: 64                             # Number of output time samples
    dm_min: 1480.9072871051153             # Minimum DM (pc/cm^3)
    dm_max: 2961.8145742102306             # Maximum DM (pc/cm^3)
    trigger_frequency: 416.02514716892182  # Early-trigger frequency (MHz)
    ds_level: 1                            # 2 ms samples, DM range [1480.91, 2961.81]
    delta_rank: 1                          # early trigger at 416.025 MHz, max delay 65.536 seconds
    max_width: 16                          # 32 ms
    dm_downsampling: 16                    # 32 before downsampling
    time_downsampling: 16                  # 32 before downsampling
    wt_dm_downsampling: 64                 # 128 before downsampling
    wt_time_downsampling: 64               # 128 before downsampling

    # At tree_index=1, 20 frequency subband(s) are searched:
    # 
    #   pf_level=1: [948.7,1500.0], [832.1,1133.9], [750.0,948.7], [688.2,832.1], [639.6,750.0],
    #               [600.0,688.2], [566.9,639.6], [538.8,600.0], [514.5,566.9]
    #   pf_level=2: [750.0,1500.0], [639.6,948.7], [566.9,750.0], [514.5,639.6], [474.3,566.9],
    #               [442.3,514.5], [416.0,474.3]
    #   pf_level=3: [566.9,1500.0], [474.3,750.0], [416.0,566.9]
    #   pf_level=4: [416.0,1500.0]

    frequency_subband_counts: [0, 9, 7, 3, 1]

  - tree_index: 2
    ndm_out: 2048               # Number of output (dedispersed) DM channels
    nt_out: 64                  # Number of output time samples
    dm_min: 1480.9072871051153  # Minimum DM (pc/cm^3)
    dm_max: 2961.8145742102306  # Maximum DM (pc/cm^3)
    trigger_frequency: 300      # Early-trigger frequency (MHz)
    ds_level: 1                 # 2 ms samples, DM range [1480.91, 2961.81]
    delta_rank: 0               # non-early trigger at 300 MHz, max delay 131.072 seconds
    max_width: 16               # 32 ms
    dm_downsampling: 16         # 32 before downsampling
    time_downsampling: 16       # 32 before downsampling
    wt_dm_downsampling: 64      # 128 before downsampling
    wt_time_downsampling: 64    # 128 before downsampling

    # At tree_index=2, 25 frequency subband(s) are searched:
    # 
    #   pf_level=0: [948.7,1500.0], [750.0,948.7], [639.6,750.0], [566.9,639.6], [514.5,566.9]
    #   pf_level=1: [750.0,1500.0], [639.6,948.7], [566.9,750.0], [514.5,639.6], [474.3,566.9],
    #               [442.3,514.5], [416.0,474.3], [393.9,442.3], [375.0,416.0]
    #   pf_level=2: [566.9,1500.0], [474.3,750.0], [416.0,566.9], [375.0,474.3], [344.1,416.0],
    #               [319.8,375.0], [300.0,344.1]
    #   pf_level=3: [416.0,1500.0], [344.1,566.9], [300.0,416.0]
    #   pf_level=4: [300.0,1500.0]

    frequency_subband_counts: [5, 9, 7, 3, 1]

  - tree_index: 3
    ndm_out: 1024                         # Number of output (dedispersed) DM channels
    nt_out: 64                            # Number of output time samples
    dm_min: 2961.8145742102306            # Minimum DM (pc/cm^3)
    dm_max: 5923.6291484204612            # Maximum DM (pc/cm^3)
    trigger_frequency: 566.9467095138408  # Early-trigger frequency (MHz)
    ds_level: 2                           # 4 ms samples, DM range [2961.81, 5923.63]
    delta_rank: 2                         # early trigger at 566.947 MHz, max delay 65.536 seconds
    max_width: 16                         # 64 ms
    dm_downsampling: 8                    # 32 before downsampling
    time_downsampling: 8                  # 32 before downsampling
    wt_dm_downsampling: 64                # 256 before downsampling
    wt_time_downsampling: 64              # 256 before downsampling

    # At tree_index=3, 11 frequency subband(s) are searched:
    # 
    #   pf_level=1: [948.7,1500.0], [832.1,1133.9], [750.0,948.7], [688.2,832.1], [639.6,750.0],
    #               [600.0,688.2], [566.9,639.6]
    #   pf_level=2: [750.0,1500.0], [639.6,948.7], [566.9,750.0]
    #   pf_level=3: [566.9,1500.0]

    frequency_subband_counts: [0, 7, 3, 1]

  - tree_index: 4
    ndm_out: 1024                          # Number of output (dedispersed) DM channels
    nt_out: 32                             # Number of output time samples
    dm_min: 2961.8145742102306             # Minimum DM (pc/cm^3)
    dm_max: 5923.6291484204612             # Maximum DM (pc/cm^3)
    trigger_frequency: 416.02514716892182  # Early-trigger frequency (MHz)
    ds_level: 2                            # 4 ms samples, DM range [2961.81, 5923.63]
    delta_rank: 1                          # early trigger at 416.025 MHz, max delay 131.072 seconds
    max_width: 16                          # 64 ms
    dm_downsampling: 16                    # 64 before downsampling
    time_downsampling: 16                  # 64 before downsampling
    wt_dm_downsampling: 64                 # 256 before downsampling
    wt_time_downsampling: 64               # 256 before downsampling

    # At tree_index=4, 20 frequency subband(s) are searched:
    # 
    #   pf_level=1: [948.7,1500.0], [832.1,1133.9], [750.0,948.7], [688.2,832.1], [639.6,750.0],
    #               [600.0,688.2], [566.9,639.6], [538.8,600.0], [514.5,566.9]
    #   pf_level=2: [750.0,1500.0], [639.6,948.7], [566.9,750.0], [514.5,639.6], [474.3,566.9],
    #               [442.3,514.5], [416.0,474.3]
    #   pf_level=3: [566.9,1500.0], [474.3,750.0], [416.0,566.9]
    #   pf_level=4: [416.0,1500.0]

    frequency_subband_counts: [0, 9, 7, 3, 1]

  - tree_index: 5
    ndm_out: 2048               # Number of output (dedispersed) DM channels
    nt_out: 32                  # Number of output time samples
    dm_min: 2961.8145742102306  # Minimum DM (pc/cm^3)
    dm_max: 5923.6291484204612  # Maximum DM (pc/cm^3)
    trigger_frequency: 300      # Early-trigger frequency (MHz)
    ds_level: 2                 # 4 ms samples, DM range [2961.81, 5923.63]
    delta_rank: 0               # non-early trigger at 300 MHz, max delay 262.144 seconds
    max_width: 16               # 64 ms
    dm_downsampling: 16         # 64 before downsampling
    time_downsampling: 16       # 64 before downsampling
    wt_dm_downsampling: 64      # 256 before downsampling
    wt_time_downsampling: 64    # 256 before downsampling

    # At tree_index=5, 25 frequency subband(s) are searched:
    # 
    #   pf_level=0: [948.7,1500.0], [750.0,948.7], [639.6,750.0], [566.9,639.6], [514.5,566.9]
    #   pf_level=1: [750.0,1500.0], [639.6,948.7], [566.9,750.0], [514.5,639.6], [474.3,566.9],
    #               [442.3,514.5], [416.0,474.3], [393.9,442.3], [375.0,416.0]
    #   pf_level=2: [566.9,1500.0], [474.3,750.0], [416.0,566.9], [375.0,474.3], [344.1,416.0],
    #               [319.8,375.0], [300.0,344.1]
    #   pf_level=3: [416.0,1500.0], [344.1,566.9], [300.0,416.0]
    #   pf_level=4: [300.0,1500.0]

    frequency_subband_counts: [5, 9, 7, 3, 1]

  - tree_index: 6
    ndm_out: 512                # Number of output (dedispersed) DM channels
    nt_out: 32                  # Number of output time samples
    dm_min: 5923.6291484204612  # Minimum DM (pc/cm^3)
    dm_max: 11847.258296840922  # Maximum DM (pc/cm^3)
    trigger_frequency: 750      # Early-trigger frequency (MHz)
    ds_level: 3                 # 8 ms samples, DM range [5923.63, 11847.3]
    delta_rank: 3               # early trigger at 750 MHz, max delay 65.536 seconds
    max_width: 16               # 128 ms
    dm_downsampling: 8          # 64 before downsampling
    time_downsampling: 8        # 64 before downsampling
    wt_dm_downsampling: 64      # 512 before downsampling
    wt_time_downsampling: 64    # 512 before downsampling

    # At tree_index=6, 4 frequency subband(s) are searched:
    # 
    #   pf_level=2: [948.7,1500.0], [832.1,1133.9], [750.0,948.7]
    #   pf_level=3: [750.0,1500.0]

    frequency_subband_counts: [0, 0, 3, 1]

  - tree_index: 7
    ndm_out: 1024                         # Number of output (dedispersed) DM channels
    nt_out: 32                            # Number of output time samples
    dm_min: 5923.6291484204612            # Minimum DM (pc/cm^3)
    dm_max: 11847.258296840922            # Maximum DM (pc/cm^3)
    trigger_frequency: 566.9467095138408  # Early-trigger frequency (MHz)
    ds_level: 3                           # 8 ms samples, DM range [5923.63, 11847.3]
    delta_rank: 2                         # early trigger at 566.947 MHz, max delay 131.072 seconds
    max_width: 16                         # 128 ms
    dm_downsampling: 8                    # 64 before downsampling
    time_downsampling: 8                  # 64 before downsampling
    wt_dm_downsampling: 64                # 512 before downsampling
    wt_time_downsampling: 64              # 512 before downsampling

    # At tree_index=7, 11 frequency subband(s) are searched:
    # 
    #   pf_level=1: [948.7,1500.0], [832.1,1133.9], [750.0,948.7], [688.2,832.1], [639.6,750.0],
    #               [600.0,688.2], [566.9,639.6]
    #   pf_level=2: [750.0,1500.0], [639.6,948.7], [566.9,750.0]
    #   pf_level=3: [566.9,1500.0]

    frequency_subband_counts: [0, 7, 3, 1]

  - tree_index: 8
    ndm_out: 1024                          # Number of output (dedispersed) DM channels
    nt_out: 16                             # Number of output time samples
    dm_min: 5923.6291484204612             # Minimum DM (pc/cm^3)
    dm_max: 11847.258296840922             # Maximum DM (pc/cm^3)
    trigger_frequency: 416.02514716892182  # Early-trigger frequency (MHz)
    ds_level: 3                            # 8 ms samples, DM range [5923.63, 11847.3]
    delta_rank: 1                          # early trigger at 416.025 MHz, max delay 262.144 seconds
    max_width: 16                          # 128 ms
    dm_downsampling: 16                    # 128 before downsampling
    time_downsampling: 16                  # 128 before downsampling
    wt_dm_downsampling: 64                 # 512 before downsampling
    wt_time_downsampling: 64               # 512 before downsampling

    # At tree_index=8, 20 frequency subband(s) are searched:
    # 
    #   pf_level=1: [948.7,1500.0], [832.1,1133.9], [750.0,948.7], [688.2,832.1], [639.6,750.0],
    #               [600.0,688.2], [566.9,639.6], [538.8,600.0], [514.5,566.9]
    #   pf_level=2: [750.0,1500.0], [639.6,948.7], [566.9,750.0], [514.5,639.6], [474.3,566.9],
    #               [442.3,514.5], [416.0,474.3]
    #   pf_level=3: [566.9,1500.0], [474.3,750.0], [416.0,566.9]
    #   pf_level=4: [416.0,1500.0]

    frequency_subband_counts: [0, 9, 7, 3, 1]

  - tree_index: 9
    ndm_out: 2048               # Number of output (dedispersed) DM channels
    nt_out: 16                  # Number of output time samples
    dm_min: 5923.6291484204612  # Minimum DM (pc/cm^3)
    dm_max: 11847.258296840922  # Maximum DM (pc/cm^3)
    trigger_frequency: 300      # Early-trigger frequency (MHz)
    ds_level: 3                 # 8 ms samples, DM range [5923.63, 11847.3]
    delta_rank: 0               # non-early trigger at 300 MHz, max delay 524.288 seconds
    max_width: 16               # 128 ms
    dm_downsampling: 16         # 128 before downsampling
    time_downsampling: 16       # 128 before downsampling
    wt_dm_downsampling: 64      # 512 before downsampling
    wt_time_downsampling: 64    # 512 before downsampling

    # At tree_index=9, 25 frequency subband(s) are searched:
    # 
    #   pf_level=0: [948.7,1500.0], [750.0,948.7], [639.6,750.0], [566.9,639.6], [514.5,566.9]
    #   pf_level=1: [750.0,1500.0], [639.6,948.7], [566.9,750.0], [514.5,639.6], [474.3,566.9],
    #               [442.3,514.5], [416.0,474.3], [393.9,442.3], [375.0,416.0]
    #   pf_level=2: [566.9,1500.0], [474.3,750.0], [416.0,566.9], [375.0,474.3], [344.1,416.0],
    #               [319.8,375.0], [300.0,344.1]
    #   pf_level=3: [416.0,1500.0], [344.1,566.9], [300.0,416.0]
    #   pf_level=4: [300.0,1500.0]

    frequency_subband_counts: [5, 9, 7, 3, 1]

mega_ringbuf:
  host_zones: 368.39 GiB
  gpu_zones: 22.14 GiB
  h2g bandwidth: 8.966 GB/s  # plus raw data: 0.845 GB/s if 4-bit, 1.690 GB/s if 8-bit
  g2h bandwidth: 7.226 GB/s
  et_h2h bandwidth: 3.480 GB/s
  max_clag: 254
  max_gpu_clag: 5
  min_host_clag: 6
  min_et_clag: 6
  min_et_headroom: 16

dedispersion_outputs: 0.173 GB/s