Next: IDA---A FITS Table Browser and Editor
Previous: Browsing Images in World Coordinate Space with SAOimage
Table of Contents --- Search ---
PS reprint
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
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).
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.
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.
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>
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
This work is supported by NASA's Applied Information Systems Research Program.
Boden, A. 1996, this volume