Legion 1.4 Developer Manual

Legion 1.4 Developer Manual

Table of Contents


1.0 About Legion
2.0 The Legion Vision
2.1 Objectives
2.1.1 Site autonomy
2.1.2 Multiple languages, interoperability
2.1.3 High performance via parallelism
2.1.4 Single persistent object space
2.2 Philosophy
2.3 Design Constraints
2.4 A Brief History
2.5 Other Metacomputing Software
2.5.1 DCE
2.5.2 CORBA
2.5.3 Globus
2.5.4 Globe
2.5.5 Other projects
2.5.6 Java
2.6 Support for Multiple Languages
2.6.1 PVM and MPI
2.6.2 Object wrappers.


3.0 Mentat
3.1 The language
3.2 Philosophy
3.3 Classes
3.4 Objects
4.0 Fortran
4.1 Programming interface
4.1.1 Server-side programming
4.1.2 Client-side programming
4.2 Example program: stateful objects
4.3 Example program: stateless objects
4.4 Current limitations
4.5 BFS syntax
5.0 Object interface
5.1 Options
5.2 CORBA IDL Compiler
5.3 Using the Legion-CORBA IDL

The Legion Libraries

High-level libraries: Traditional file interface

6.0 File library interface
6.1 Public methods
6.2 Library functions
6.2.1 Raw I/O library
6.2.2 Buffered I/O Library, C and C++ Interface
6.2.3 Buffered I/O library, Fortran interface
6.2.4 Buffered I/O library, low impact interface
6.2.5 The LegionBuffer I/O interface
6.3 Terminal I/O
6.3.1 Library interface
6.3.2 Command-line tools

Low-level library: The Legion runtime library

7.0 Legion Programming
7.1 LegionLOID
7.2 Basic module and data container: the Legion buffer
7.2.1 Storage
7.2.2 Packer
7.2.3 Encryptor
7.2.4 Compressor
7.2.5 MetaData
7.2.6 Packability
7.3 Legion invocations and messages
7.3.1 Contents of a message
7.3.2 Legion message database
7.3.3 Basic Legion event kinds & handlers
7.3.4 Invocation execution and result return
7.3.5 Legion program graphs
7.4 Reference counting
7.4.1 UVaL_References rule of thumb
7.4.2 Exceptions to the rule of thumb
7.5 Exception propagation model
7.5.1 Standard exception propagation policy
7.5.2 Catching exceptions
7.6 How to use the run-time library
7.7 Modifying the Library
7.7.1 Implementing the configurable protocol stack: events
7.7.2 Interfaces
7.7.3 LegionEventManager
7.7.4 Default Protocol Stack
7.7.5 Adding new functionality to the Legion protocol stack
7.7.6 Active messages
7.7.7 Path expressions
7.7.8 Message passing

Configure resource management

8.0 Resource management
8.1 Philosophy: the need for negotiation and customization
8.2 Legion's approach to resource management
8.2.1 Determining what resources are available
8.2.2 Reserving desired resources
8.2.3 Veto Power
8.3 More about the Scheduler

Legion object model

9.0 Naming conventions
9.1 More about the LOID
9.2 More about context names
9.3 More about object addresses
9.4 Bindings
10.0 Object attributes
11.0 Object states

Binding Process

12.0 An Example
12.1 Determining LOIDs
12.2 The Binding Mechanism
12.2.1 Binding caches
12.2.2 Binding agents
12.3 The Class-Of Mechanism
12.4 The Rebinding Mechanism
12.5 Object Activation
12.5.1 Implementation Objects
12.5.2 Implementation Caches
12.5.3 Running Objects

Core objects

13.0 About the Legion core object model
13.1 About core objects
13.2 Classes and Metaclasses
13.3 Host Objects
13.4 Vault Objects
13.5 Implementation Objects and Caches
13.6 Binding Agents
13.7 Context Objects and Context Spaces
13.8 Core object replacement

Getting help



Directory of Legion 1.4 Manuals

Copyright © 1993-1998 by the Rector and Visitors of the University of Virginia.

All rights reserved.

Permission is granted to copy and distribute this manual so long as this copyright page accompanies any copies. The Legion system software herein described is intended for research and is available free-of-charge for that purpose. Permission is not granted for distributing the Legion system software outside of your site.

In no event shall the University of Virginia be liable to any party for direct, indirect, special, incidental, or consequential damages arising out of the use of the Legion system software and its documentation.

The University of Virginia specifically disclaims any warranties, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. The software provided hereunder is on an "as is" basis, and the University of Virginia has no obligation to provide maintenance, support, updates, enhancements, or modifications.

This work partially supported by DARPA (Navy) contract # N66001-96-C-8527, DOE grant DE-FD02-96ER25290, DOE contract Sandia LD-9391, Northrup-Grumman (for the DoD HPCMOD/PET program), DOE D459000-16-3C and DARPA (GA) SC H607305A


[Home] [General] [Documentation] [Software]
[Testbeds] [Et Cetera] [Searching]