Changes between Version 36 and Version 37 of OrgGrid


Ignore:
Timestamp:
Jul 16, 2008, 3:40:23 PM (16 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OrgGrid

    v36 v37  
    22[[TOC]]
    33== Introduction ==
     4
    45OGM (TODO: pick a better name) is a system for grid computing on organizational resources, using BOINC.
    56
    6 BOINC is designed to rely on user decisions because they are the owners of the computer resources. However, there are situations where the users are not the owners of the PCs, for example the PCs of an institution like an University. In this case, the computers are controlled by the institution, so the institution decides in which tasks can be used those computers. In this new scenario BOINC lacks a tool to harness remotely all the BOINC enabled computers without the intervention of the user. For this reason, we are developing a tool called OGM.
     7OGM is designed for situations where some entities that own computers ('''Suppliers''')
     8have decided to let another entities (the '''Allocator''')
     9decide how their computer time is to be divided among a set of BOINC projects.
     10With OGM, Suppliers are able to control the usage of their computers
     11(for example, the hours during which it does BOINC computation).
     12However, they have no control over which BOINC projects their computers contribute to;
     13the Allocator makes that decision.
    714
    8 OGM is a tool which basically works in the same way as the Account Managers do. The main difference is that OGM is institutional oriented instead of user oriented. Hence, the OGM employs the Account Manager protocol, and uses a Master Slave architecture. To support this software, all the clients will have to install a BOINC client and attach it to the OGM server. Once the clients have contacted the OGM server, the clients will receive all the BOINC projects that they have to process.
     15The BOINC projects to which computing power is given need not be related
     16to either Suppliers or Allocator;
     17they might be public projects like ClimatePrediction.net or Rosetta@home.
    918
    10 As now the institution has the power of deciding which projects they are going to support with its resources, the institution could receive petitions for using those BOINC resources. For this reason, the institution will have a committee. This committee will decide which BOINC projects are interesting for the institution. Based on this decision, the institution will donate its BOINC enabled PCs to the chosen projects.
     19OGM is also designed for situations where the Suppliers' computers
     20are in a public place, or are used by people not trusted by the Supplier;
     21the users have no control over BOINC on the computer.
    1122
    12 == OGM Components ==
    13 OGM has two main components: the hardware and the administrators. Therefore, for OGM, from the point of view of hardware components, an institution has the following items:
    14  * '''Computer'''. This is the ''basic'' item of OGM. A computer here is named as a "BOINC working node". ''The institution must have at least one computer''.
    15  * '''Pool'''. A Pool is a set of ''zero or more computers'' that share something in common. For example, all the computers are located in the same laboratory. ''The institution must have at least one pool of computers''.
    16  * '''Department'''. A Department is a set of ''one or more Pools'' of computers that share something in common. For example, all the pools belongs to the math research group of the institution. ''An institution must have at least one Department''.
     23For example, Suppliers might be different departments in a university,
     24each of which owns a set of desktop and laboratory PCs,
     25and the Allocator might be a campus-wide committee
     26that divides the resources among BOINC projects internal to the university.
     27Or the Suppliers might be different companies,
     28who have agreed to volunteer their PC resources to a philanthropic
     29organization that divides them among public BOINC projects.
    1730
    18 For OGM, from the point of view of managers, an institution has the following persons:
    19  * '''IT Manager'''. An IT Manager ''always belongs to one Department''. For this reason, the IT Manager can only administer the pools that belong to his department.
    20  * '''Project Manager'''. A Project Manager is in charge of choosing and attaching the BOINC projects that will run on the institution BOINC computers.
     31OGM is implemented using BOINC's [AccountManagement Account Manager] mechanism.
     32The Allocator runs the OGM software on a server.
     33The Suppliers run the BOINC client on their computers,
     34and attach each client to the Allocator's account manager.
     35The BOINC client on the computer periodically communicates with the OGM,
     36which instructs it which projects to attach to,
     37and the resource share for each attachment.
    2138
    22 A visual summary of the explained components is in the following figure:
     39== OGM entities ==
    2340
    24 [[Image(institution.png, nolink)]]
     41OGM defines the following entities:
     42 * '''Supplier'''
     43 * '''Pool''': a set of computers belonging to the same supplier.  Preferences can be set independently for different pools.
     44 * '''Computer''': a computer attached to the OGM; each one belongs to a particular Pool.
     45 * '''User''': an account on the OGM (usually corresponding to a person).
     46 * '''Project''': a BOINC project to which computing power is being supplied by the OGM.
    2547
    2648== OGM Users ==
    27 OGM employs roles to distinguish between the different OGM users:
    28  1. '''The IT Manager role'''. This user can:
    29    * See the statistics of his pools of computers: CPU, RAM, HD, etc.
    30    * Change the BOINC preferences for the pools of his institution:
    31      * Time policy: Between which hours BOINC can use the PC resources. For example, the pool of computers A (which represents all the computers of laboratory 1) can work with BOINC from 9:00 am to 21:00 pm.
    32      * CPU use. The percentage of allowed CPU that BOINC can use.
    33      * RAM use. The percentage of allowed RAM that BOINC can use.
    34      * HD use. The percentage of allowed HD that BOINC can use.
    35      * ??? what else?
    36  1. '''The Project Manager role'''. This user is in charge of:
    37    * Creating, Editing, Deleting BOINC projects.
    38    * Defining the Resource Share parameter for each BOINC project.
    39  1. '''The root role'''. This user can do any task, is the ''super user'':
    40    * Admin (create, delete, edit) OGM users.
    41    * Do the tasks of an IT Manager.
    42    * Do the tasks of a Project Manager.
     49OGM defines the following User roles:
     50 1. '''Supplier Admin''': this user can:
     51   * See the statistics of computers in his Pools
     52   * Change the BOINC preferences for his pools (e.g., time of day limits, disk/RAM usage, etc.).
     53 1. '''Allocator Admin''': this user can:
     54   * Create, edit, delete projects.
     55   * Set the Resource Share parameter for each Project.
     56 1. '''Root''': this user can do any task:
     57   * Create, delete, edit OGM users.
     58   * Do the tasks of a Supplier Admin
     59   * Do the tasks of an Allocator Admin
    4360
    44 == OGM Projects ==
    45 An OGM Project is a BOINC project. This tool can have ''zero or more BOINC projects''. Each project will be attached to all the pools. However, the OGM software can establish a priority policy based on the BOINC resource share parameter.
     61== Resource allocation ==
    4662
    47 The following image shows how the BOINC projects are attached to all the pools of the departments within an Institution. The image shows an example of one institution with one department, having three pools (A, B, C). There are four different BOINC projects (purple, yellow, green, blue), all of them attached to all pools. The figure also shows different configurations for the Resource Share parameter.
     63In the current design, each of the OGM's Projects has a single "resource share" parameter.
     64Every Computer is attached to all Projects, using these resource shares.
    4865
    49 [[Image(projects.png, nolink)]]
     66These resources shares may be dynamically adjusted by Allocator Admins.
     67For example, if a Project has a short-term need for lots of computing,
     68its resource share could be temporarily elevated, and later reduced to compensate.
    5069
    51 The default behavior for the Resource Sharing parameter is to divide equally the amount of time between all the attached projects. In a future, it will be interesting to implement an scheduler which attach projects to pools of computers based on:
    52  * Hardware specifications:
    53   * CPU
    54   * RAM
    55   * HD
    56   * Time table
    57   * ??? what else?
    58  * Time dead-lines.
    59  * Host churn.
    60  * ??? what else?
     70In a future version of OGM, it would be possible to extend this model so that
     71different resources shares are used on different Pools or Suppliers, for example
     72so that Projects whose applications require particular hardware (e.g., large RAM)
     73would be preferentially run on computers meeting those requirements.
    6174
    6275
    63 From here to Implementation we have the original version.
     76== Accounts and credit ===
    6477
     78Pools are defined by OGM accounts;
     79the computers in a pool are attached to the same account.
    6580
    66 OGM assumes the following organizational structure:
    67  * There is a set of "resource pools" (groups of computers).  Each resource pool is owned by an organizational unit (e.g. a research group, a university department, a division of a company, etc.).
    68  * There is a set of BOINC projects that are allowed to use these resources.  These projects are operated by organizations (some of which may also manage resource pools).  The projects may get resources from sources other than the OGM (e.g., from the public).
    69  * The set of organizations has agreed to cooperate in the sharing of computer resources.  They all trust an organization (the OGM) to manage this sharing.
     81The OGM has a single account on each Project, all with the same email address
     82(i.e., there is not a separate account for each Supplier or Pool).
     83This means that the OGM appears as a single user on each Project's "top users" list,
     84and as a single user on aggregate statistics sites.
    7085
    71 Based on requests and constraints from resource providers and consumers,
    72 the OGM decides which projects to attach to which computers,
    73 and what resource share should be assigned.
    74 
    75 [[Image(ogm.png, nolink)]]
    76 
    77 
    78 
    79 OGM is implemented using BOINC's [AccountManagement Account Manager] mechanism.
    80 The computers in a particular resource pool are attached to a single OGM account.
    81 The BOINC client on the computer periodically communicates
    82 with the OGM, which instructs it which projects to attach to,
    83 and the resource share for each attachment.
    84 
    85 OGM provides different interfaces to different people.
    86 All the interfaces are web-based.
    87 
    88 For the OGM manager, the interfaces include:
    89 
    90  * Create and delete accounts for resource managers and project managers.
    91  * Decide what fraction of total resources is assigned to each project.
    92  * ??? what else?
    93 
    94 For resource managers, the interfaces include:
    95  
    96  * View list of computers in the pool.
    97  * Edit BOINC preferences for computers in the pool.
    98  * View set of projects currently using the pool.
    99  * ??? what else?
    100 
    101 For project managers, the interfaces include:
    102 
    103  * ??? what else?
     86Thus, in order to allow Supplier Admins to view credit statistics for their Pools,
     87the OGM must obtain per-host credit statistics from all the Projects using RPCs;
     88it can then group these however it wants.
    10489
    10590== Implementation ==
     
    135120 * url STRING
    136121 * signature STRING
    137  * share FLOAT (between 0.0 and 1.0)
     122 * share FLOAT (between 0.0 and 1.0):1