Central Processor Manager

The Central Processor Manager is the local monitoring and control agent for the Central Processor sub-system. Its role is two-fold:

  1. It interfaces to the ASKAP Telescope Operating System (TOS), the telescope monitoring and control sub-system

  2. It is responsible for orchestrating the components of the Central Processor in both data acquisition and processing

At the moment the Central Processor Manager only controls the acquisition phase; that is, it only controls the ingest pipeline.

The Central Processor (CP) Manager interfaces with the following software components:

  • Ingest Pipeline - The CP manager controls the startup of the ingest pipeline. It also has the ability to abort the ingest pipeline, however under typical operation it does not “stop” the ingest pipeline, it stops when the metadata flowing from the Telescope Operating System’s Executive component indicates an observation has concluded.

  • Facility Configuration Manager - The facility configuration manager (FCM) hosts system configuration information, such as antenna positions and some Ingest Pipeline configuration. The CP manager retrieves this information and uses it to configure the ingest pipeline.

Execution

The Central Processor Manager is a standalone Java program. Assuming the CLASSPATH environment variable contains the cpmanager.jar and the required dependencies it can be started like so:

java askap.cp.manager.CpManager -c cpmanager.in -l cpmanager.log_cfg

Command Line Parameters

The CP manager accepts the following command line parameters:

Long Form

Short Form

Required

Description

–config

-c

Yes

After this parameter the file containing the program configuration must be provided.

–log-config

-l

No

After this optional parameter a Log4J configuration file is specified. If this option is not set a default logger is used.

Configuration Parameters

The program requires a configuration file be provided on the command line. This section describes the valid parameters. In addition to the CP manager specific parameters, any parameters that begin with ice_properties are passed directly to the ICE Communicator during initialisation.

Parameter

Type

Default

Description

ice.servicename

string

None

The service name (i.e. Ice object identity) for the CP manager service interface.

ice.adaptername

string

None

The object adapter identity

monitoring.enabled

boolean

false

Controls the availability of the Ice monitoring provider interface. If enabled an Ice interface permits tools such as user interfaces and the monitoring archiver to collect monitoring data from the service.

monitoring.ice.servicename

string

None

If monitoring is enabled, this parameter must be specified. This parameter provides the name of the monitoring service interface that will be registered in the Ice locator service. An example would be “CentralProcessoMonitoringService”.

monitoring.ice.adaptername

string

None

If monitoring is enabled, this parameter must be specified. This parameter provides the name of the adapter on which the monitoring service proxy object will be hosted. This adapeter must be configured in the Ice properties section (see example below).

fcm.ice.identity

string

None

The Ice object identity of the Facility Configuration Manager (FCM). This should be qualified with an adapter name if the FCM object is not registered as a “well known object”.

dataservice.ice.identity

string

None

The Ice object identity of the Telescope Operating System (TOS) Dataservice. This should be qualified with an adapter name if the TOS Dataservice is not registeed as w “well known object.”

ingest.workdir

string

None

The working directory for the ingest pipeline instance. Within this directory a sub-directory will be created (one for each scheduling block executed) for any output files such as observation logs and datasets.

ingest.command

string

None

The command required to execute the ingest pipeline.

ingest.args

string

None

The command line arguments to be passed to the ingest pipeline.

Below are the required ICE parameters:

Parameter

Type

Default

Description

ice_properties.Ice.Default.Locator

string

None

Identifies the Ice Locator. This will be of the form: IceGrid/Locator:tcp -h <hostname> -p 4061

ice_properties.CentralProcessorAdapter.Endpoints

string

None

Configures the adapter endpoint that will host the actual manager service. Typically this will be: tcp

ice_properties.CentralProcessorAdapter.AdapterId

string

None

This is the name of the adapter as it is registered in the Ice locator service. This will typically be: CentralProcessorAdapter

ice_properties.CentralProcessorMonitoringAdapter.Endpoints

string

None

Configures the adapter endpoint that will host the monitoring provider interface. Typically this will be: tcp

ice_properties.CentralProcessorMonitoringAdapter.AdapterId

string

None

This is the name of the adapter (for the monitoring provider interface) as it will be registered in the Ice locator service. This will typically be: CentralProcessorMonitoringAdapter

Example

########################## Ice Properties ##############################

# Registry location
ice_properties.Ice.Default.Locator                  = IceGrid/Locator:tcp -h aktos01 -p 4061

# Primary object adapter
ice_properties.CentralProcessorAdapter.Endpoints    = tcp
ice_properties.CentralProcessorAdapter.AdapterId    = CentralProcessorAdapter

# Monitoring object adapter
ice_properties.CentralProcessorMonitorAdapter.Endpoints    = tcp
ice_properties.CentralProcessorMonitorAdapter.AdapterId    = CentralProcessorMonitorAdapter

# Other misc parameters
ice_properties.Ice.MessageSizeMax                   = 131072
ice_properties.Ice.ThreadPool.Server.Size           = 4
ice_properties.Ice.ThreadPool.Server.SizeMax        = 16

################## CP Manager Specific Properties ######################

# Object identity and proxy to use for the CP manager ICE object
ice.servicename                 = CentralProcessorService
ice.adaptername                 = CentralProcessorAdapter

# Monitoring provider configuration
monitoring.enabled              = true
monitoring.ice.servicename      = CentralProcessorMonitorService
monitoring.ice.adaptername      = CentralProcessorMonitorAdapter

# FCM config
fcm.ice.identity                = FCMService@FCMAdapter

# Scheduling block service
dataservice.ice.identity        = SchedulingBlockService@DataServiceAdapter

# Ingest working directory
ingest.workdir                  = /astro/datasets

# Ingest pipeline command and arguments
ingest.command                  = /askap/cp/cpingest.sh
ingest.args                     = -s -c cpingest.in -l /askap/cp/config/cpingest.log_cfg