/Gold

The Gold Allocation manager

Primary LanguagePerlOtherNOASSERTION

NAME/VERSION

  @PACKAGE_NAME@ @PACKAGE_VERSION@

IN BRIEF

  Gold is an open source accounting system that tracks and manages resource
  usage on High Performance Computers. It acts much like a bank in which
  resource credits are deposited into accounts with access controls designating
  which users, projects and machines may access the account. As jobs complete
  or as resources are utilized, accounts are charged and resource usage
  recorded. Gold supports familiar operations such as deposits, withdrawals,
  transfers and refunds. It provides balance and usage feedback to users,
  managers, and system administrators.

  Since accounting needs vary widely from organization to organization, Gold
  has been designed to be extremely flexible, featuring customizable accounting
  and supporting a variety of accounting models. Attention has been given to
  scalability, security, and fault tolerance. Gold facilitates resource sharing
  between organizations or within a Grid by providing distributed accounting
  while preserving local site autonomy.

  Gold was originally developed at Pacific Northwest National Laboratory (PNNL)
  under the Scalable Systems Software (SSS) SciDAC project. It is now being
  actively maintained and enhanced by Adaptive Computing.

STATUS

  This is a general release of Gold; the second release from Adaptive Computing.

DESCRIPTION

  In order for an organization to efficiently use its high performance
  computers, it must be able to allocate resources to the users and projects
  that need them most in a manner that is fair and according to mission
  objectives. Tracking the historical resource usage allows for insightful
  capacity planning and in making decisions on how to best mete out these
  resources. It allows the funding sources that have invested heavily in a
  supercomputing resource a means to show that it is being utilized efficiently.
  Additionally, accounting and allocation management are critical to being able
  to take advantage of the tremendous utilization gains afforded by
  meta-scheduling.

  The Gold Accounting and Allocation Manager tracks and manages job and resource
  usage. Much like a bank, an allocation manager associates a cost to computing
  resources and allows resource credits to be allocated to users and projects
  and meted out in a fair and judicious manner. As jobs complete or as resources
  are utilized, projects are dynamically charged and resource usage recorded.

  Gold was originally developed at PNNL as open source software under the
  Scalable Systems Software (SSS) SciDAC project. A standard communication
  protocol has been designed to facilitate communication between resource
  management and accounting components and to allow component substitution.
  A flexible GUI exists to simplify use and the management of project and
  accounting data.

FEATURES

  · Rather than post-processing resource usage records on a periodic basis to
  rectify project balances, acounts are updated immediately at job completion.

  · A reservation is placed against the account for the estimated number of
  resource credits before the job runs, followed by an appropriate charge at
  the moment the job completes, thereby preventing projects from using more
  resources than were allocated to them.

  · A uniquely flexible account design allows resource credits to be allocated
  to specific projects, users and machines.

  · Resource credits may be restricted for use within a designated time period
  allowing sites to implement a use-it-or-lose-it policy to prevent year-end
  resource exhaustion and establishing a project cycle.

  · The system can track and charge for composite resource usage (memory, disk,
  CPU, etc) and custom charge multipliers can be applied (Quality of Service,
  Node Type, Time of Day, etc).

  · Users and resource brokers can determine ahead of time the cost of using
  resources via a guaranteed quote mechanism.

  · Accounts feature an optional credit limit allowing support for both debit
  and credit models. This feature can also be used to enable overdraft
  protection for specific accounts.

  · Accounts may be nested creating an account hierarchy. This allows for the
  delegation of management responsibilities, the establishment of automatic
  rules for the distribution of downstream resource credits, and the option of
  making higher level credits available to lower level accounts.

  · Gold supports a powerful querying and update mechanism that facilitates
  flexible reporting and streamlines administrative tasks.

  · Gold allows the establishment of default projects, machines and users.
  Additionally Gold can allow user, machines and projects to be automatically
  created the first time they are seen by the resource management system.
  These features allow job submitters to use the system without even knowing it.

  · Gold provides fine-grained (instance-level) Role Based Access Control for
  all operations.

  · Sites can create or modify record types on the fly enabling them to meet
  their custom accounting needs. Dynamic object creation allows sites to
  customize the types of accounting data they collect without modifying the
  code. This capability turns this system into a generalized information
  service. This capability is extremely powerful and can be used to manage
  all varieties of custom data.

  · Gold implements a journaling mechanism that preserves the indefinite
  historical state of all objects and records. This powerful mechanism allows
  historical bank statements to be generated, provides an undo/redo capability
  and allows commands to be run as if it were any arbitrary time in the past.

  · A traceback mechanism can allow all parties of a transaction (resource
  requestor and provider) to have a first-hand record of the resource
  utilization and to have a say as to whether or not the job should be permitted
  to run, based on their independent policies and priorities. A job will only
  run if all parties are agreeable to the idea that the target resources can be
  used in the manner and amount requested. Support for traceback debits will
  facilitate the establishment of trust and exchange relationships between
  administrative domains.

  · The system was designed from the outset with goals of scalability, fault
  tolerance, security, portability and ease of use in mind. 

  · A web-based graphical user interface can be used to simplify use of Gold's
  powerful features.

  · Being open source allows for site self-sufficiency, customizability and
  promotes community development and interoperability.

LICENSE

  Gold has an open source license under copyright of PNNL as expressed in
  LICENSE.

DISTRIBUTION

TESTED CONFIGURATIONS

  To date Gold has been successfully tested in the following environments:

  OS        Version   Architecture  Database Version   Batch Interface
  --------- --------  ------------- -------- --------- ---------------
  RedHat    7.3       i386          Postgres 7.1       Maui
  RedHat    9.0       i386 SMP      Postgres 7.3       Maui
  RedHat    AS2.1     ia64          Postgres 7.4,8.0   LSF
  Fedora    Core 2    Athlon        Postgres 7.4
  Suse      9.0       Athlon i586   Postgres 7.3
  AIX       5.1       RS/6K Power4  Postgres 7.3
  Tru64     4.0d      Alpha         Postgres 7.4
  OS X      7.5.0     Mac Powerpc   Postgres 8.0
  HP-UX     11.0      HP J5600      Postgres 7.3
  IRIX      6.5       SGI O2        Postgres 7.3
  SunOS     5.8       SUN Ultra10   Postgres 7.3
  RedHat    7.3       i386          SQLite   3.0
  RedHat    7.3       i386          MySQL    3.23,4.1

REQUIREMENTS

  You will first need to build, test and install the following prerequisites:
                        
  Software Name and Version           Where to Obtain                  Necessity
  ----------------------------------- -------------------------------- ---------
  Perl 5.8 or higher w/ suidperl      http://www.perl.com/             Required
  a tested Database (Postgres 7.2+)   ftp://ftp.postgresql.org/pub/    Required
  LibXML2 (2.4.25 or higher)          http://www.xmlsoft.org/          Required
  Apache Httpd Server (2.0 or higher) http://httpd.apache.org/         Optional
  OpenSSL (0.9.5a or higher)          http://www.openssl.org/          Optional
  mod_ssl (2.26 or higher)            http://www.modssl.org/           Optional
  Gnu ReadLine (2.0 or higher)        ftp://ftp.gnu.org/gnu/           Optional

  Please reference the hints in INSTALL.

INSTALLATION

  Installation instructions are contained in INSTALL. The high level steps are:

  1)  Prepare to build and install Gold by unpacking the archive and creating
      an appropriate user to manage Gold.

  2)  Install the prerequisites. These include Perl 5.6 (with suidperl), libxml2
      and PostgreSQL 7. Apache Httpd server, OpenSSL and mod_ssl are needed
      if you want to use the web GUI. Gnu readline is optional.

  3)  Perform pre-install configurations by running the "configure" script.

  4)  Compile the program with "make". Also use "make gui" if you intend to
      install the web GUI.

  4)  Install the prerequisite Perl modules with "make deps".

  5)  Install Gold with "make install". Generate a secret key with
      "make auth_key". Install the gui with "make install-gui" if necessary.

  6)  Perform general setup by editing Gold config files and setting
      environment variables.

  7)  Database setup includes insuring postgres allows internet domain sockets,
      authorizing postgres to connect to your host, defining users, creating
      the gold database and initially populating the database.

  8)  Web-Server setup (optional) involves modifying the config file to allow
      SSL connections, creating a certificate keystore, and getting httpd
      started up.

  9)  Startup the gold server daemon (goldd).

  10) Initialize Gold by defining users, projects, accounts, etc as necessary.

TESTING

  There are no built-in tests for Gold at this time. Automated and manual
  testing is conducted at Adaptive Computing Enterprises, Inc.

PROJECT WEB PAGE

  The current project web page is at Adaptive Computing:
  <http://www.clusterresources.com/products/gold>.

DOCUMENTATION

  A Gold User's Guide is available in the docs directory both in pdf and html
  formats. Each of the perl clients have built-in usage and man-page
  documentation accessible via the --help and --man flags. Some documents, such
  as a Requirements document, communication protocol docs, presentations, etc.
  may be found at the Adaptive Computing Gold Project Documentation page at 
  <http://www.clusterresources.com/products/gold/docs/>.
  
COMPATIBILITY

  For semantic purposes let's assume VRMF nomenclature (Version, Release,
  Maintenance level, Fix level), such that Gold 2.7.3.2 represents
  Version 2, Release 7, Maintenance level 3, Fix level 2.
  Gold Release numbers are changed when a change to the database format
  is made, and hence different Gold Releases are not compatible.
  Different Gold Maintenance Levels should however be compatible and may
  coexist and operate on a single database.

CHANGES

  Changes are enumerated in the CHANGES file.

PROBLEM REPORTING

  You may send comments and bug reports to <gold-support@adaptivecomputing.com>.
  Please include as much detail as possible in order to expedite a resolution.
  Be advised that this queue will be handled on a best-effort basis unless a
  support contract is established with Adaptive Computing.

DISTRIBUTION LIST

  A majordomo list has been setup for Gold contributors, administrators and
  users in <gold-users@supercomputing.org>. Anyone may subscribe and then post
  to the list.

AUTHORS

  Gold has been developed by Scott Jackson <scottmo@adaptivecomputing.com> while
  at Pacific Northwest National Laboratory. It continues to be enhanced and
  maintained by Scott Jackson and other staff at Adaptive Computing.