katgpucbf.xbgpu.main module

Module to launch the XB-Engine.

This module parses all command line arguments required to configure the XB-Engine and creates an XBEngine object. The XBEngine object then manages everything required to run the XB-Engine.

Todo

  • Checks need to be put in place to ensure the command line parameters are correct:

    • Is the port number valid, is the IP address a multicast address, is the array size >0, etc.

katgpucbf.xbgpu.main.main() None[source]

Run the XB-engine.

katgpucbf.xbgpu.main.make_engine(context: ~katsdpsigproc.abc.AbstractContext, vkgdr_handle: <MagicMock id='140228911845920'>, args: ~argparse.Namespace) tuple[XBEngine, Monitor][source]

Make an XBEngine object, given a GPU context.

Parameters:
  • context – The GPU context in which the XBEngine will operate.

  • vkgdr_handle – Handle to vkgdr for the same device as context.

  • args – Parsed arguments returned from parse_args().

katgpucbf.xbgpu.main.parse_args(arglist: Sequence[str] | None = None) Namespace[source]

Parse all command line parameters for the XB-Engine and ensure that they are valid.

katgpucbf.xbgpu.main.parse_beam(value: str) BOutput[source]

Parse a string with beam configuration data.

The string has a comma-separated list of key=value pairs. See BOutput for the valid keys and types. The following keys are required:

  • name

  • dst

  • pol

katgpucbf.xbgpu.main.parse_corrprod(value: str) XOutput[source]

Parse a string with correlation product configuration data.

The string has comma-separated list of key=value pairs. See XOutput for the valid keys and types. The following keys are required:

  • name

  • dst

  • heap_accumulation_threshold

async katgpucbf.xbgpu.main.start_engine(args: Namespace, tg: TaskGroup, exit_stack: AsyncExitStack, locals_: MutableMapping[str, object]) XBEngine[source]

Create and launch the XB-Engine.

Attach the ibverbs sender transport to the XBEngine object and then tell the object to launch all its internal asyncio functions.