Interactive access to the NIST SP2


Introduction

The current SP configuration allows users to interactively access the front-end machine (danube) and a small test pool of four nodes (grand17-grand20). This interactive pool should be used to facilitate debugging, or to study performance with interactive analysis tools. To execute large parallel jobs using the SP2 nodes, users must submit their jobs through a batch system, which partitions the machine into node pools and controls access to these pools so that jobs are single-threaded.

Using the interactive nodes is much like using a workstation cluster. You begin by logging onto one of the interactive nodes (grand17, grand18, grand19 or grand20) and then setting up the parallel environment you wish to use. ORNL PVM, IBM's PVMe and IBM's POE(MPL) are all available on the interactive nodes. ORNL PVM may be of particular interest for use with various third-party performance tracing tools, such as XPVM, which are not compatible with PVMe.

Managing message passing programming sessions

An interesting problem is posed by the existence of two separate and incompatible libaries both sharing the name PVM (ORNL PVM, and IBM PVMe). Without proper care, it becomes quite difficult to manage directories, makefiles, etc. so that PVM and PVMe programs can coexist, and you as a user can switch between one environment and the other without substantial effort. Care is also required to ensure that the interactive environment does not interfere with any batch processing you may have on queue.

These problems can be addressed on the NIST SP2 with two strategies:

Debugging PVM(e) programs

PVM(e) provides simple facility for spawning processes under a standard debugger. If the pvmfspawn call provides "PVMDEBUG" as the second argument (or "PvmTaskDebug" for spawns in C programs), an xterm window running the spawned process under a debugger will be generated for each spawned process. This is not by any means a "graceful" debugging environment, but can be used to get a "quick-and-dirty" view of the processes. To invoke the debugger (for PVM or PVMe programs), first compile your programs with the -g compiler option, and set up your PVM(e) environment by issuing "startpvm" or "startpvme" following by starting the daemon. Then, instead of simply executing your main programs, type

debug < main_program >

Debug has been aliased to a system supported script which check that your DISPLAY variable is set and that the appropriate debugger scripts are available to PVM(e). The debug script is based on the serial dbx debugger; for help on available dbx commands, type "man dbx" on danube.

Tutorial examples

The directory /usr/local/doc/interact contains two short tutorials on interactive use of the PVM, PVMe, and MPL environments, and demonstrates how to switch from one environment to another. The tutorial directory includes the following: