Legion: A Worldwide Virtual Computer
Home General Documentation Software Testbeds Et Cetera Map/Search

1.8 Release Notes -- 6/20/01
The notable changes are:

  • We've changed the software's directory structure. This change is relevant to developers and system administrators, but not to users. It does not affect any tools or context space. Please note that you may need to update paths in makefiles or change library paths. The complete Legion package now consists of five packages:

    1. Core: This is the basic Legion package and the minimum for running a Legion system. It lets you start up and shut down Legion, work in context space, run Legion security, etc.
    2. Software development kit (SDK): This contains development-oriented tools and libraries, such as the stub generator, Legion Grid library, LegionArray library, etc.
    3. High-performance computing (HPC): The HPC module lets you run your programs in Legion. It contains PVM and MPI tools, the two-dimensional FileObject interfaces, JobProxy and JobQueue objects, batch queue class and host object, and legion_run and legion_run_multi.
    4. Extra: This adds functionality to the basic Legion package. It contains the round robin scheduler, simple k-copy class (SKCC), process control daemon host objects, etc. It is not necessary, but it gives you more control over your objects.
    5. Applications: The Apps package also extends the basic Legion package.

    When first starting a new system, you will need to initialize the HPC, Extra, and Applications packages with the legion_init_HPC, legion_init_Extra, and legion_init_Apps command-line tools.

  • This restructuring has meant that you now need to download and install Open SSL on your own. Legion uses public key cryptography based on the RSA 2.0 algorithm, as implemented by OpenSSL. You will need to download OpenSSL 0.9.5 or higher from http://www.openssl.org. You'll need to untar, configure, and compile it. Be sure that you set your $OPENSSL_INC and $OPENSSL_LIB variables to the correct directory. Suggested values are:

    (ksh or sh users)

    export OPENSSL_INC=<OpenSSL installation directory>/include
    export OPENSSL_LIB=<OpenSSL installation directory>/lib

    (csh users)

    setenv OPENSSL_INC <OpenSSL installation directory>/include
    setenv OPENSSL_LIB <OpenSSL installation directory>/lib
  • You can use the JobQueue, with the legion_nq, legion_manage_job, and legion_manage_queue command-line tools, to start and monitor remote jobs.
  • You can edit information about your user profile and security settings with legion_configure_profile. You can modify the implicit parameter set for your current session with legion_modify_parameters.
  • Two new command-line tools, legion_skcc_set_class_vaults and legion_skcc_set_defaults, let you set defaults for SKCC classes.
  • The list of supported platforms has changed. We don't have a working binary for the SGI Workstations/IRIX 6.5 n64 build although we're working on it. We are dropping support for the x86/FreeBSD 4.2 platform, although we will consider adding it back in if someone needs it. We may be adding a T3E platform in the future. We are also not currently supporting Windows platforms. If you need any of these platforms, please contact us at legion@virginia.edu.

1.7 Release Notes -- 10/27/00
The notable changes are:

  • We've added simple K-copy classes (SKCC). This allows certain Legion objects to use backup vaults to replicate their persistent state, in case their primary vault crashes or is unavailable when an object needs to reactivate. This makes it easier to tolerate host failures. There are four new commands associated with SKCC: legion_set_backup_vaults, legion_synch_vaults, legion_set_worm, and legion_unset_worm.
  • We are now using OpenSSL to implement the RSA algorithm. Since the RSAREF patent has expired, we can now export Legion abroad with full encryption.
  • The 1.7 release now includes a set of GUIs for Windows 2000 machines. These GUIs are collectively known as the Worldwide File Server (WWFS). The WWFS is a discrete set of applications that you download and install on your Windows machine. It connects your machine to an existing Legion net (such as NPACI-net) and lets you work in your context space. The WWFS binary package includes four GUIs to let you work in Legion context space and an FTP daemon, which uses standard ftp protocols to transfer files between context space and any ftp client (Legin credentials and full security are always managed by the daemon). The binary package is available from Applied MetaComputing.

  • For NPACI-net users, we've added a web-portal for running Amber on our Legion web browser. The portal works on both IE 4 and Netscape Communicator, but for best results we'd suggest you use IE.
  • We've improved legion_run and legion_run_multi. We have added a probe objects, which allows you to check your runs while they are executing and move files to and from the executing remote host(s). You can also start your jobs in blocking or nonblocking mode. For more information, please see the updated legion_run and legion_run_multi FAQs.
  • We've added a new MPI tool, legion_mpi_probe. This tool allows you to check your MPI runs.

  • You can now use wildcards with legion_ls, legion_cp, and legion_rm. For example, you could ask to remove all context names beginning with "Foo" by entering:
    $ legion_rm Foo\*
    Note that you need to escape the "*" character.
  • We've added the ability to temporarily lock down individual objects or all of a class's objects. This makes it easier to shut down a Legion system or perform class and system maintenance or upgrades. The legion_deactivate_object and legion_deactivate_instances commands have a new -stay_down flag, which causes the object or instances to inactive after it being successfully deactivated. It can only be reactivated by legion_allow_activation.
  • We've reworked the binding agents, to improve system caching. We've also chagned the default configuration so that each host now has its own local binding agent (either on or nearby the host). Objects that are started on a host with its own binding agent will automatically use that binding agent. You can also choose to use a specific binding agent during a login session. Once you've logged in, run the legion_set_binding_agent tool to set or unset a binding agent for the session.

    Binding agents and the Legion library have been improved to cache more information. Caching now includes object interfaces, context names, and contents. Context information caching is only allowed for objects that export a "context_contents_cacheble('YES')"attribute.

    Upon login, we now cache some high-use objects' bindings and high-use contexts' LOIDs. These binding may become stale, so we have added a new tool, legion_refresh_local_cache, to refresh them on request. We advise refreshing your cache if you notice a consistent delay of around thirty seconds before and after commands respond.

  • Finally, we've improved the I/O library and updated the communication system (with a UDP communication-layer sliding window protocol) so that version 1.7 is remarkable faster, more scalable, and more flexible.

1.6.6 Release Notes -- 8/4/00
The notable changes are:

  • You can use wildcards with legion_mpi_run's -in/-IN and -out/-OUT flags to name groups of files to be used as input and output files. The following wildcards can be used with -in/-out and -IN/-OUT:
    *match 0 or more characters
    ?match any one character
    [-]match any character listed between the brackets (use these to specify a range of characters)
    \treat the character as a literal
    For example, if you wanted to identify done.1, done.2, done.3 ... done.9 as your inputs, you could use square brackets to identify them as a group:
    $ legion_mpi_run -n 2 -IN done.[0-9] /mpi/programs/mpiFoo

    You can use wildcards on the command line or in an option file. They can only be used with file names, however, not with directories.

  • The legion_native_mpi_run command now has a -debug flag.
  • A new command, legion_make_hostlist, lets you create a host list for legion_mpi_run.

1.6.5 Release Notes -- 6/13/00
This release contains bug fixes and updates for 1.6.4, most notably:

  • We have added three new commands for subcollections. A subcollection is a collection that is attached to a parent collection. The parent collection can query a subcollection for resource data. These commands are legion_add_sub_collection, legion_remove_sub_collection, and legion_list_sub_collections.
  • You can adjust a collection's polling frequency by setting the collection_update_frequency_secs attribute on the collection object (use legion_update_attributes). The default is currently 300 seconds.
  • There are several changes to the legion_run_multi command. The specification file now takes -in/out/constant flags as well as -IN/OUT/CONSTANT. It also uses pattern specification holders. Please see the man page for further information. One change that is not mentioned in the man page: the format for specifying files for the CONSTANT variable in legion_run_multi has changed. The old format was:
    CONSTANT <file path>

    The new format is:

    CONSTANT <file name> <file path>

    For example,

    CONSTANT foo /home/my_files/foo_file

    Note that the <file name> does not need to match the <file path>: in this case, the program will copy the contents of /home/my_files/foo_file to a local file and assign it the name foo.

  • The legion_link command has a -FC flag. This flag allows you to specify a Fortran compiler.

1.6.4 Release Notes -- 3/21/00
This release contains several bug fixes and improvements. Primary points are:

  • The legion_create_user command has new flags that allow you to specify a new user id's password from the command line and to specify the new user's home context space. The <user id> parameter is also now a full path, which can be given as a relative or absolute path.

  • We have added new flags to the legion_mpi_run command. The new flags, -in/-out/-stdin/-stdout/-stderr, -IN/-OUT/-STDIN/-STDOUT/-STDERR, and -a/-A, give you more control over input and output data for your mpi program. They resemble the legion_run flags.

  • There is a new -f flag for legion_add_host_account. This allows you to set up a mapping file that lists all of your Unix-Legion account mappings for that PCD host.

  • There are new keywords available for legion_run_multi: you can now specify stdout/stderr/stdin for local file space.

  • When starting a PCD host object, once you have started the PCD host object and (if necessary) the accompanying vault, you must change the following file permissions on the node that is actually running the PCD host.
    • $LEGION_OPR should be set to 755
    • $LEGION_OPR/LegionClass.config* should be set to 644
    • $LEGION_OPR/BootstrapVaultOPR should be set to 777 (If your bootstrap host is a PCD host)
    • $LEGION_OPR/<vault_name>.OPA should be set to 777 (If the bootstrap host is not a PCD host)
    These changes should be made by the Legion administrator.

  • A fully implemented object migration.

  • The TCP version of Legion communication layer.

  • Added intelligent switching between using UDP and TCP communication based on message size and destination.

  • Improved robustness of HostObject being making it more tolerant to implementation cache failures.

1.6.3 Release Notes -- 1/13/00
This is an upgrade of 1.6, and contains several bug fixes. The primary fixes are listed below.

  • There are several MPI-related changes:
    • In a secure net, the legion_mpi_register command now puts a new MPI application's context name into the /home/<user_name>/mpi context instead of /mpi EXCEPT when the command is run by admin or a guest user (i.e., a user who isn't logged in). In an insecure net the new application's context name will continue to be placed in /mpi.
    • The legion_mpi_run command's -p flag (which names a context to hold PIDs) is more flexible. Previously, only currently existing contexts could be used. The flag will now create a new context to hold PIDs.
    • The MPI libraries have been renamed: previously they used the form libmpi.a or -lmpi and now they use the form libLegionMPI.a or -lLegionMPI.
  • There are also several small changes to the command-line utilities. All commands now have a -debug and -help flag. A new command, legion_set_vault, migrates a Legion object to a specific vault.

1.6.2 Release Notes -- 11/1/99
This is an upgrade of 1.6, and contains several bug fixes. The primary fixes are listed below.

  • MPI is now integrated with vector create. This involved added two new options to the legion_mpi_run option, -hf and -HF.
  • We've added two new command-line tools: legion_mkdir and legion_cd. These two commands perform exactly the same functions as legion_context_create and legion_set_context, respectively.
  • The legion_ping tool now has a -timeout flag, which allows you to set a timeout period for pinging a Legion object.
  • The Legion libraries (libLegion1 and libLegion2) now use version numbers.
  • The performance of passing messages in secure Legion systems has been greatly improved.

1.6 Release Notes -- 8/27/99

  • We have added two new platforms to the 1.6 release: a beta release of Windows NT 4.0 and a FreeBSD 3.0 for x86 machines.
  • We have also added tools for building virtual hosts. This allows you to run programs on unsupported machines, such as a Cray T3E.
  • The 1.6 release has tools to help debug and analyze Legion applications (legion_record and legion_replay).
  • We've added the support for operating in environments that require Kerberos authentication.
  • We have added the legion_export_dir tool, which lets you link a local directory to your context space.
  • We have also added a checkpointing library for SPMD-style (Single Program Multiple Data) applications to deal with MPI application failure.
  • The legion_check_system tool has two new flags which will report errors in command-line or context objects and then destroy the erring objects.
  • We have updated the legion_run_multi tool, so that you can use keywords to specify an input/output file's location.

1.5.15 Release Notes -- 5/26/99
This is an upgrade of 1.5, and contains several bug fixes. The primary fixes are listed below.

  • Host objects: We've put in a bug fix in the host object restart code, so that host objects will restart more reliably. This is especially relevant for multi-host systems, although it will apply to all Legion systems.
  • MPI: 1.5.15 has MPI-2 conversion functions for C and Fortran interoperability. It also has a bug fix for MPI_pack().
  • Security: We've put in a bug fix for the legion_init_security command-line utility. It should now run much more reliably.

1.5 Release Notes -- 4/30/99
Version 1.5 includes an updated GUI, several new command-line tools, improved resource management, and the ability to connect Legion systems together to form larger, multi-domained systems. We have also added a batch queue host object for running Legion on local queueing systems and a process control daemon (PCD) host object for better control over process ownership. To improve parallel application performance we've added two-dimensional file interfaces.

1.2 Release Notes -- 7/7/98
Version 1.2 offers support for remote execution of arbitrary programs, from either the command line or from the GUI, using the new legion_run command. This includes the ability to run serial programs with multiple input files and mulitple executions, with the legion_flogger command. We have also improved the GUI, which can be run from the command line or from Windows95.

1.0 Release Notes -- 2/9/98
The February 9, 1998 release contains bug fixes of the previous release (December 16, 1997). No new features have been added.

Last modified: Wed Jun 20 11:30:29 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.