Legion: A Worldwide Virtual Computer
Home General Documentation Software Testbeds Et Cetera Map/Search
Frequently Asked Questions (FAQ)

To see an answer to each question, click on the blue button. If you need more information, please send e-mail to legion-help@cs.virginia.edu.

What is Legion? What does it do?
How does Legion work? Is it an operating system?
Is it a programming language?
Is it a message-passing standard?
What platforms does Legion run on?
Can I use Legion from my Windows PC?
How many computers can Legion run on?
Will Legion slow down my system?
Can I customize Legion to fit my system's needs?
How do I make my resources available to other Legion users?
Will other Legion users have access to my programs
Will I have to change my system's security?
What do I need to install Legion?
What kinds of applications and programs will run on Legion? Do I have to change my application to run it on Legion?
What is the difference between Legion and Globus?
What is the difference between Legion and Globe?
What is the difference between Legion and CORBA?
What is the difference between Legion and Jini?
What kind of documentation is available?
Do I have to parallelize my application in order to get benefits from using Legion?
I'm not in the US or Canada. Can I download Legion?
How do I get more help?

What is Legion? What does it do?

Legion is middleware; it connects networks, workstations, supercomputers, and other computer resources together into a system that can encompass different architectures, operating systems, and physical locations. There is no central "big brother" that oversees and controls each Legion resource: instead, each resource is an independent element. Legion provides a coherent framework in which these elements can be combined into a metasystem. You can draw on these combined resources to parallelize complex problems and run programs more efficiently without worrying about different languages, conflicting platforms, or hardware failure. Legion seamlessly schedules and distributes your processes on available and appropriate hosts, then returns the results. You have the illusion of working on a single, virtual machine.

Legion aims to take advantage of the growing bandwidth of wide- and local-area networks without compromising network security and functionality and without asking you to handle the complex arrangements between incompatible platforms and architectures.

How many computers can Legion run on?

A primary Legion feature is its scalability: it is designed to handle trillions of objects over enormous distances and in a widely variegated computing environment via a scalable software architecture. Legion uses a totally distributed system that easily encompasses disparate elements rather than a rigid centralized structure. This means that you have access to a potentially huge wealth of shared resources.

Will other Legion users have access to my resources?

Not unless you choose to make them available. Legion keeps security decisions in the hands of the resource owners as much as possible. You can decide what, if any, security and identity checks are appropriate to protect your system against malicious or unauthorized use.

Will I have to change my system's security?

No. We have no intention of compromising or altering existing security systems. We believe that no one security policy can hope to fit all possible needs, so we have included mechanisms for system administrators to protect their resources as they see fit.

Can I customize Legion to fit my system's needs?

Yes. There are some core components and libraries that are necessary, but system administrators, users, and developers are free to customize Legion and choose which implementations best suit individual needs. Legion has extensible, replaceable components that will permit it to evolve over time to accommodate new and perhaps unexpected requirements of future users: we have designed Legion to be flexible enough to work with unpredicted resources and unpredicted users.

How does Legion work? Is it an operating system?

Legion does not replace your operating system, but acts as a middle layer between it and other Legion resources. Legion consists of libraries, source code, and executable binary files that run in user space in existing operating systems. Legion is designed to work on a variety of architectures and to run applications on multiple platforms.

Is it a message-passing standard?

No, although you can run message-passing standards such as MPI. Legion has its own asynchronous message-passing system, and we expect developers to map other asynchronous message-passing systems to future Legion implementations.

Is it a programming language?

No, although Legion is designed to support applications written in a variety of languages. The current release supports C++, Mentat Programming Language (an extension of C++), and Fortran (using Basic Fortran Support) applications. We will be adding other languages to future releases. It also provides abstractions and services such as context space, MPI, and PVM to programmers and users.

What is the difference between Legion and Globus?

Legion and Globus are both distributed high-performance metacomputing systems that aim to find ways to make metacomputing easier, faster, and more accessible to programmers and users. Since both are addressing the same problem, there are some similar design features. There is, however, an important and fundamental system-level difference in architecture and design principles. Globus can be characterized as a "sum of services" architecture, while Legion is an integrated architecture.

Globus uses sets of pre-existing components that are grouped into composite toolkits. For example, there are services for scheduling, authentication, and remote job spawning. As designers add a new piece of functionality to Globus, they design an interface for that piece. There is no underlying common architecture. In contrast, Legion builds its higher level structure on top of a single unified object model. When designers wish to add new parts they need only plug their new objects into the common programming interface so that they can communicate with the already established object model. Think of it like Lego toys: as long as a piece has the Lego socket it can be connected to any other Lego piece. Similarly, all Legion services use a common model so that new services can easily connect to and build on existing services. This synergy is a key Legion strength. Great care has been taken in the design of the object model to allow a high degree of flexibility and scalability.

The difference between the two approaches will become increasingly important in the future as new and unforeseen metacomputing applications are developed and designers wish to add them to existing systems. We feel that, as designers try to juggle several different interfaces and disparate systems, this will become more and more complex in Globus. Legion's unified object model will allow new applications to easily interact with all parts of the existing system.

What is the difference between Legion and Globe?

Globe is a research project at Vrije University, Netherlands, looking at the construction of large-scale wide area distributed systems. Like Legion, it is an object-oriented middleware program that runs on top of your machine/network's existing operating system and uses a single uniform object model and architecture. But where Legion objects are considered "active" Globe objects are considered to be "passive." That is, Globe objects are assumed to be physically distributed over many resources in the system. Legion objects can be physically distributed over multiple physical resources, but are expected to physically reside in a single address space. These conflicting views of objects result in different mechanisms for object communication: Globe loads part of the object (called a local object) into the caller's address space but Legion sends a message of a specified format from the caller to the callee.

Another difference is Legion's core object types: our core objects have interfaces that are designed to provide abstractions for a wide variety of implementations.

What is the difference between Legion and CORBA?

The Common Object Request Broker Architecture (CORBA) standard, developed by the Object Management Group, defines an object-oriented model for accessing distributed objects. Like Legion, CORBA supports describing interfaces to active, distributed objects via an Interface Description Language (IDL) and linking the IDL to implementation code that can be written in any of the supported languages. Compiled object implementations use the Object Request Broker (ORB), analogous to Legion's run-time system, to perform remote method invocations. Legion provides many of the key services of the ORB.

Despite these similarities, the different goals of the two systems have led to different features. Legion is designed for high-performance applications and CORBA is more commonly used for business applications, such as providing remote database access for clients. This difference manifests itself at all levels in the systems: for example, Legion provides a macro-dataflow method execution model suitable for parallel programs where CORBA provides a simpler remote-procedure-call method execution model better suited to client-server style applications. Legion was designed to provide extensibility for multi-organizational situations.

What is the difference between Legion and Jini?

Jini is a recently announced Sun software system designed to easily connect any computing device (whether PC, cell phone, or laptop) to a larger network, using Java to distribute processes among the devices connected to the network. Jini allows users to simply plug the devices into the network without having to initialize or restart any part of the system. The device announces and describes itself to the network, so that its resources (memory, display, applications, etc.) can be utilized as necessary by the network.

However, Jini is not middleware and it is not concerned with the underlying communication processes involved in distributed computing. Jini allows devices to communicate on a common network, but it does not handle the actual communications or transferal of data. It is a simple publish/subscribe architecture, and does not concern itself with issues such as fault tolerance, access control, authentication, parallel computing, etc.

What platforms does Legion run on?

The current release of Legion runs on:
  • Sun Workstation/Solaris 5.x (solaris)
  • SGI/IRIX 5.x or 6.5 n32 build (sgi_n32)
  • SGI/IRIX 5.x or 6.5 n64 build (sgi_n64)
  • x86/Red Hat Linux 5.x (linux)
  • DEC Alpha/Red Hat Linux 5.x (alpha_linux)
  • DEC Alpha/OSFI v4 (alpha_DEC)
  • IBM RS6000/AIX 4.2.1 or 4.3 (rs6000)
  • HPUX 11.x (hppa_hpux)
  • CRAY UNICOS (as a virtual host only)

Can I use Legion from my PC that runs Windows?

We are not currently supporting a Windows platform. This may change in the future, but in the meantime you can contact us at legion@virginia.edu if you need a Windows platform.

Will Legion slow down my system?

No more than any other software program, unless you allow other users to run programs on your machines. You can control this, however, by setting limits on which users can use a particular resource, when they can use it, and how they use it.

What do I need to install Legion?

Legion is currently distributed in binaries packages for several different platforms. You will need about 250-300 MB of free disk space at least 256 MB virtual memory (we suggest 512 MB, if possible) on your bootstrap node. You must have /bin/ksh installed (a number of Legion scripts look for ksh). Depending on your platform and package, you may need a set of GNU tools (all available free of charge from www.gnu.org) to unzip and untar your binary.

What kind of documentation is available?

There are four Legion manuals available on this web site (password protected), in PostScript, PDF, and HTML formats. The Basic User Manual explains the basic elements of Legion and is intended for beginner users working on a running system; the System Administrator Manual discusses downloading, starting, and running a Legion system; the Developer Manual provides information for Legion developers; and the Reference Manual covers materials not covered in the other manuals. A quick guide to the Legion commands is also available in PostScript and PDF. In the future we will provide HTML versions of these documents on the web site.

There are several on-line tutorials to help with key issues. The current Legion release package includes man pages for all Legion commands.

What kinds of applications and programs will run on Legion? Do I have to change my application to run it on Legion?

Legion is designed to support a wide variety of applications and programs, and we expect that developers will add new possibilities. Legion also allows allows users to run remotely executed programs from the Legion command line, taking advantage of Legion's distributed resources. The user's workload can be spread out on several processors, improving job turn-around time and performance. Users can execute multiple instances of a single program or execute several different programs in parallel.

The current release of Legion offers Basic Fortran Support (BFS), which provides a set of Legion directives that can be embedded in Fortran code in the form of pseudo-comment lines. The Mentat Programming Language (MPL) is an extension of C++ and is designed to help parallelize applications. Applications using PVM can use the Legion core PVM interface to use Legion features in a PVM environment. PVM programs can be registered and run with special Legion tools.

Legion also has a core MPI interface, which lets MPI users take advantage of Legion features. All MPI features are supported in Legion MPI. There are special Legion tools for registering and running MPI programs.

Some examples of parallel and sequential applications that run on Legion can be found on the Centurion (Legion's testbed) homepage.

Do I have to parallelize my application in order to get benefits from using Legion?

No. You can run sequential programs, too. Parameter space studies are the most likely to benefit, since Legion allows you to run multiple copies of a program in parallel on multiple hosts.

I'm not in the US or Canada. Can I download Legion?

Yes, but you will have to obtain the RSA library separately. Currently US law requires that non-US/Canadian residents download Legion without RSA. You will need to find a non-US ftp site and download the library from there: we can't provide a URL, but you should be able to find one.

How do I get more help?

Send an e-mail to legion-help@cs.virginia.edu, or write us at the address below. You can also send us a fax at 434-982-2214.

Legion Research Group
Department of Computer Science
Olsson Hall
University of Virginia
Charlottesville, VA 22903


Last modified: Wed Jun 20 11:28:31 2001

 

[Home] [General] [Documentation] [Software]
[Testbeds] [Et Cetera] [Map/Search]

This work partially supported by DOE grant DE-FG02-96ER25290, Logicon (for the DoD HPCMOD/PET program) DAHC 94-96-C-0008, DOE D459000-16-3C, DARPA (GA) SC H607305A, NSF-NGS EIA-9974968, NSF-NPACI ASC-96-10920, and a grant from NASA-IPG.

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