The primary function of the ALMA science pipeline is to automatically calibrate and image ALMA interferometry data and store the reduced data in the ALMA science archive. The ALMA pipeline system will provide the processing heuristics, in the form of Python scripts, and the software infrastructure required to execute the pipeline in the ALMA computing environment. The data reduction modules will be provided by the AIPS++ group. The ALMA prototype pipeline project is a joint ALMA Computing IPT / NRAO Interferometry Software Division initiative to develop a Python based pipeline processing capability for ALMA using the ALMA Common Software (ACS) framework and AIPS++ data processing modules.
Figure 1 shows the logical view of the ALMA science pipeline. The ALMA scheduler issues a pipeline processing request. The heuristics lookup module selects the appropriate pipeline application script. The pipeline application script is queued for execution by the pipeline executor. The pipeline application script retrieves the required input data from the ALMA archive, calls the AIPS++ components to do the actual processing, and writes the pipeline results to the ALMA archive. When processing is complete the pipeline executor issues a pipeline processing complete event to the ALMA scheduler. The pipeline control module and GUI provide mechanisms whereby the pipeline operator may intervene in pipeline execution. The CORBA based ACS system manages communications between components of the pipeline, and provides basic lifecycle management, event notification, logging, and error handling services.
Figure 2 shows the physical view of the ALMA science prototype pipeline. The interfaces to the ALMA scheduler and archive are not part of the prototype pipeline project and have been omitted from the figure. The heuristics lookup, pipeline executor, pipeline control, and pipeline application modules from Figure 1 will be implemented in Python. The pipeline application modules may be executed as Python commands (Python CLI) or wrapped as ACS components and run inside an ACS Python container (Python script as servant). The two AIPS++ C++ modules may be executed as Python commands (the Python CLI) or called from within Python pipeline application scripts. The pipeline control GUI will be written in Java (Java GUI). ACS will manage communications between the pipeline objects and provide basic services and tools (e.g. Object Explorer). The prototype pipeline architecture is open and will support importing visualization tools and data reduction components from other systems in the future.
The primary goal of the ALMA prototype pipeline project is to develop a Python based pipeline processing capability for ALMA using ACS to execute AIPS++ data processing components. A simple VLA 8 GHz GRB survey data pipeline will be used to drive the prototype pipeline development effort, help focus AIPS++ component development, and demonstrate pipeline processing capability. The final prototype pipeline will be scripted in Python using AIPS++ C++ components. The project development plan is divided into three phases A, B, C. The goals and current status of each phase are summarized below.
The prototype pipeline project is on track to meet its primary goal of providing a Python based pipeline processing capability for ALMA. The prototype pipeline design already satisfies the first three requirements outlined in section 2. The processing efficiency issue is being successfully addressed by the AIPS++ group. A secondary goal of the prototype pipeline project is to evaluate ACS for use as a future analysis framework. This effort will address longer term issues of portability, scalability, resource allocation, and compatibility with the off-line system.
More information about the ALMA ACS, pipeline, and offline systems (AIPS++) can be found at the ALMA TWiki site at:
We are grateful to T. Cornwell for proposing the migration of AIPS++ to ACS and developing the migration plan. We would also like to acknowledge the hard work of the protopipeline team members Dongshan Guo, Darrell Schiebel, Raymond Rusk, Wes Young. Finally we thank the ALMA ACS team and Dave Fugate in particular for rapid development of the ACS Python capabilities.