Legion 1.6 Developer Manual

Before you start

1.0 Introduction
1.1 About this manual
1.2 Style conventions
1.3 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

Languages

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.1.1 Class styles
4.1.1.2 Mechanics
4.1.1.3 Compilation
4.1.2 Client-side programming
4.1.2.1 Include Files
4.1.2.2 Method invocation
4.1.2.3 Compilation
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.2.6 Two-dimensional FileObject interfaces
6.2.6.1 Examples
6.2.6.2 Synchronous interface
6.2.6.3 Asynchronous 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 LRef 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

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.2.4 More about the Scheduler
8.2.5 More about the Enactor
8.2.6 More about the Collection

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

References

Index

The Legion Group

Department of Computer Science
University of Virginia
Charlottesville, VA 22903
legion@virginia.edu
http://legion.virginia.edu/

 

[List of 1.6 manuals]
[Home] [General] [Documentation] [Software]
[Testbeds] [Et Cetera] [Searching]

legion@Virginia.edu
http://legion.virginia.edu/