wiki:OrgGrid

Version 41 (modified by teleyinex, 16 years ago) (diff)

--

An organizational grid management system for BOINC

TOC?

Introduction

OGM (TODO: pick a better name) is a system for grid computing on organizational resources, using BOINC.

OGM is designed for situations where some entities that own computers (Suppliers) have decided to let another entities (the Allocator) decide how their computer time is to be divided among a set of BOINC projects. With OGM, Suppliers are able to control the usage of their computers (for example, the hours during which it does BOINC computation). However, they have no control over which BOINC projects their computers contribute to; the Allocator makes that decision.

The BOINC projects to which computing power is given need not be related to either Suppliers or Allocator; they might be public projects like Climateprediction.net or Rosetta@home.

OGM is also designed for situations where the Suppliers' computers are in a public place, or are used by people not trusted by the Supplier; the users have no control over BOINC on the computer.

For example, Suppliers might be different departments in a university, each of which owns a set of desktop and laboratory PCs, and the Allocator might be a campus-wide committee that divides the resources among BOINC projects internal to the university. Or the Suppliers might be different companies, who have agreed to volunteer their PC resources to a philanthropic organization that divides them among public BOINC projects.

OGM is implemented using BOINC's Account Manager mechanism. The Allocator runs the OGM software on a server. The Suppliers run the BOINC client on their computers, and attach each client to the Allocator's account manager. The BOINC client on the computer periodically communicates with the OGM, which instructs it which projects to attach to, and the resource share for each attachment.

OGM entities

OGM defines the following entities:

  • Supplier
  • Pool: a set of computers belonging to the same supplier. Preferences can be set independently for different pools.
  • Computer: a computer attached to the OGM; each one belongs to a particular Pool.
  • User: an account on the OGM (usually corresponding to a person).
  • Project: a BOINC project to which computing power is being supplied by the OGM.

OGM Users

OGM defines the following User roles:

  1. Supplier Admin: this user can:
    • See the statistics of computers in his Pools
    • Change the BOINC preferences for his pools (e.g., time of day limits, disk/RAM usage, etc.).
  2. Allocator Admin: this user can:
    • Create, edit, delete projects.
    • Set the resource share parameter for each Project.
  3. Root: this user can do any task:
    • Create, delete, edit OGM users.
    • Do the tasks of a Supplier Admin
    • Do the tasks of an Allocator Admin

Resource allocation

In the current design, each of the OGM's Projects has a single "resource share" parameter. Every Computer is attached to all Projects, using these resource shares.

These resources shares may be dynamically adjusted by Allocator Admins. For example, if a Project has a short-term need for lots of computing, its resource share could be temporarily elevated, and later reduced to compensate.

In a future version of OGM, it would be possible to extend this model so that different resources shares are used on different Pools or Suppliers, for example so that Projects whose applications require particular hardware (e.g., large RAM) would be preferentially run on computers meeting those requirements.

Accounts and credit

Pools are defined by OGM accounts; the computers in a pool are attached to the same account.

The OGM has a single account on each Project, all with the same email address (i.e., there is not a separate account for each Supplier or Pool). This means that the OGM appears as a single user on each Project's "top users" list, and as a single user on aggregate statistics sites.

Thus, in order to allow Supplier Admins to view credit statistics for their Pools,

the OGM must obtain per-host credit statistics from all the Projects using RPCs; it can then group these however it wants.

Implementation

OGM has two main components: the server and the BOINC client. The tool employs the Account Manager protocol for all the communications.

host

  • id int(11)
  • poolid int(11)
  • supplier varchar(255)
  • CPID varchar(255)
  • host_cpid varchar(255)
  • venue varchar(254)
  • p_ncpus int(11)
  • p_vendor varchar(255)
  • p_model varchar(255)
  • p_fpops float
  • p_iops float
  • os_name varchar(255)
  • os_version varchar(255)

pools

  • id INTEGER, KEY
  • name STRING
  • department STRING
  • prefs This field copes with all the BOINC preferences for one computer

host

  • id INTEGER, KEY
  • poolid INTEGER, INDEX
  • features This field copes with all the PC features (RAM, CPU, HD, etc.)

projects

  • id INTEGER, KEY
  • name STRING
  • url STRING
  • signature STRING
  • share SMALLINT (between 0 and 100)

Attachments (4)

Download all attachments as: .zip