page 1  (20 pages)
2to next section

Nexus User's Guide

Ian Foster? John Garnetty James Pattony Steven Tuecke?

Version 3.0
July 31, 1995

Abstract

This document describes the command line arguments and other features that are common to any program that incorporates the Nexus runtime library. It is divided into sections describing the execution, debugging, tuning, and profiling of such programs. It is not intended as a compiler writer's guide, and does not include any information on the Nexus interface or other internal details.

1 Introduction

Nexus is a runtime library designed primarily as a compiler target for langages supporting task-parallel and mixed data- and task-parallel execution. The Nexus interface and Nexus design are described elsewhere [1, 2]; here, we provide the information needed to execute programs that use Nexus services.

First, we introduce a few basic terms and concepts which are used in this document. We term a compiler that targets the Nexus runtime system a Nexus compiler, and an executable built with such a compiler a Nexus executable. When part of a running computation, the code within a Nexus executable is contained by a context. Contexts may be created on any computational resource that Nexus supports: a networked workstation or a processor on a parallel supercomputer, for example. Such a resource, or virtual processor, is termed a node. Execution of code within a context is performed by a thread of control. Nexus is designed as a multithreaded library, thus, it can, and usually will, have multiple threads executing within a context. Contexts within the Nexus computation communicate using remote service requests.
Table 1 lists the computers and operating systems on which Nexus is currently implemented.

2 Executing a Nexus Application

Nexus is designed to operate on a wide variety of architectures, operating systems, and communications media. To facilitate this, Nexus is built around a modular architecture, using startup modules to create contexts and protocol modules to communicate between

?Mathematics and Computer Science Division, Argonne National Laboratory, Argonne, IL 60439. yDept of Computer Science, California Institute of Technology, Pasadena, CA 91125.