Next: IDA---A FITS Table Browser and Editor
Previous: Browsing Images in World Coordinate Space with SAOimage
Table of Contents --- Search --- PS reprint


Astronomical Data Analysis Software and Systems V
ASP Conference Series, Vol. 101, 1996
George H. Jacoby and Jeannette Barnes, eds.

Implementation of an Optical Prescription Retrieval Code Using PVM (Parallel Virtual Machine) in a Mixed Architecture Network

J. Mo, F. Romelfanger, R. J. Hanisch

Space Telescope Science Institute,1 3700 San Martin Drive, Baltimore, MD 21218

1Operated by AURA, Inc., for NASA

D. Redding, S. Sirlin, A. Boden

Jet Propulsion Laboratory, California Institute of Technology, 4800 Oak Grove Drive, Pasadena, CA 91109

Abstract:

The PVM (Parallel Virtual Machine) concurrent computing system allows applications programs to utilize UNIX workstations on a network as a single, concurrent computational resource. We are using PVM at STScI with Sun workstations running SunOS 4.1.3, Solaris 2.3, and Solaris 2.5, including multi-processors. A parallel computing application for Hubble optical prescription retrieval has been developed at the Jet Propulsion Laboratory and configured for use at STScI. We describe our experience in installing and configuring PVM and show performance comparisons between the PVM and non-PVM versions of the application.

1. Introduction

The PVM software system (Geist 1994, 1995) has been used in many computational applications and for solving large-scale problems in science, industry, and business since its initial release in 1991. PVM allows a network of heterogeneous UNIX computers to be used as a single large parallel machine. The individual computers may be shared with local memory multiprocessors, vector supercomputers, specialized graphics engines, or scalar workstations.

The PVM system has been installed at STScI, and the PVM version of the HST prescription retrieval software developed at JPL (Redding, Lee, & Sirlin 1994; Redding et al. 1995) is running on the STScI local network. The prescription retrieval code is used to process HST WF/PC-II focus diversity images in order to improve our point spread function (PSF) modeling capabilities. We use a prescription-based PSF generation code to support image restoration with spatially-variant PSFs (see Boden et al. 1995; Boden 1996).

2. PVM System Configuration

PVM is comprised of a daemon (pvmd3) and a library of PVM interface routines (libpvm3.a). The daemon starts up PVM and constructs a virtual machine. User programs written in C, C++, or Fortran access PVM through libpvm3.a. PVM uses two environment variables (PVM_ROOT and PVM_ARCH) to assign an architecture name to each virtual machine to distinguish between machines that run different executables. The PVM console allows the user to start, query, and modify the virtual machine.

The STScI configuration of PVM is shown in Table 1. Shared libraries are built under Solaris 2 with the PVM setup (pvmd3), with one version of the libraries for MP systems and one for non-MP systems.


Table 1: PVM_ARCH supported on STScI network.

  

3. Application of PVM to HST Optical Prescription Retrieval

Prescription retrieval is an ``image inversion'' parameter estimation approach where a computer model of the optical system is used to generate images that are matched iteratively with the data. The modeling image is made by JPL's COMP (Controlled Optics Modeling Package). The iterative optimization is computed using the Stanford optimization package NPSOL. We use PVM in ``master-slave'' mode, and no communication is required amongst the slave tasks. Execution in master-slave mode involves three phases: initialization of the process group, computation, and collection of results and display of output.

In our case, the WF/PC-II focus diversity data set (four images) is split by the master program by spawning processes (one image per process). The image data are sent to slaves by the master program.

4. PVM Performance on STScI Local Net

The following example gives the virtual machine configuration in the case of four hosts at STScI.

pvm> conf
4 hosts, 1 data format
                    HOST     DTID     ARCH   SPEED
          ozzy.stsci.edu    40000    SUNMP    1000
                    hoth    80000    SUNMP    1000
                 lithops    c0000 SUN4SOL2    1000
                    iris   100000     SUN4    1000
pvm>

PVM is initiated on host ozzy (MP, S690). The other three virtual machines, hoth (MP,SS20), lithops (SS20), and iris (SS10) were added as the PVM nodes. The PVM_ARCH of these two MPs can be either SUNMP or SUN4SOL2.

In a workstation environment, there is usually one task and one PVM daemon (pvmd) on each host. To use PVM on a multi-processor system, however, one PVM daemon supports all the tasks running on the nodes of the MP system. In the example shown below, the MP host ozzy is the only PVM host. Four slaves having the same program name are distinguished by four different task IDs (TID). The tasks (processes) are listed by the PVM console command ps:

pvm> ps
                    HOST      TID   FLAG 0x COMMAND
          ozzy.stsci.edu    40002       4/c -           
          ozzy.stsci.edu    40007     6/c,f msvsim      
          ozzy.stsci.edu    40008     6/c,f msvsim      
          ozzy.stsci.edu    40009     6/c,f msvsim      
          ozzy.stsci.edu    4000a     6/c,f msvsim
pvm>

5. Discussion and Results

Experiments have been made by running the prescription retrieval application to fit the same data set with identically initial parameters. The cumulative execution times of the runs are summarized in Table 2. The four virtual machines involved in running PVM are SS10, SS20, and 2 MPs with different PVM_ARCH. The results indicate that PVM can speed-up the computational applications significantly, even it runs on only one host (also see Figure 1).


Table 2: Cumulative Execution Time (PVM and non-PVM).

  

Figure 1 shows the per-processor statistics for running PVM (left panel) and non-PVM (right panel) prescription retrieval code on the multi-processor ozzy. The figure shows the fraction of user time (usr) and idle time (idl) for each processor.

 
Figure 1: Per-processor statistics. Left: PVM (left). Right: non-PVM.
Figure 1: (left) PS 28 Kb, Figure 1: (right) PS 28 Kb

Acknowledgments:

This work is supported by NASA's Applied Information Systems Research Program.

References:

Boden, A., Redding, D., Mo, J., Hanisch, R., & White, R. 1995, BAAS, 27, 924

Boden, A. 1996, this volume


Next: IDA---A FITS Table Browser and Editor
Previous: Browsing Images in World Coordinate Space with SAOimage
Table of Contents --- Search --- PS reprint
Wed Jul 3 07:58:48 MST 1996