ewiger / gc3pie

Automatically exported from code.google.com/p/gc3pie
0 stars 0 forks source link

Need a way to specify what applications a computational resource supports #8

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
The current brokering algorithm does not take into account the
applications installed on a resource; i.e., you can submit a Rosetta
job and see it land on `ocikbpra`, where there is no Rosetta
installed. 

There is *no way* the broker could know, because the information about
supported applications is just not present in the `Resource` object. 

For ARC resources, this is mitigated by the RTE mechanism:
if a job is submitted to a "collective" ARC resource (e.g., SMSCG), the _ARC_
broker will take RTEs into account when selecting the actual execution
cluster; if a job is submitted to a "single" ARC resource (e.g.,
`idgc3grid01` via the ARC GM), then RTEs will at least trigger an
early failure. 

I suggest we take a tag-based approach for all resources:

1. Each `[resource/***]` configuration stanza _can_ have a `supports=`
   line: the value associated to the `supports` key is parsed as a
   comma-separated list of text tags.  Example::

    [resource/idgc3grid01]
    supports = APPS/CHEM/GAMESS-2009, APPS/BIO/ROSETTA-3.1

2. `Resource`/`LRMS` objects implement a `supports()` method, that is
   given a list of (string) tags and returns a boolean, indicating
   whether the given resource supports *all* the given tags.

3. If no `supports` key is specified for a resource, then the behavior
   is dependent on the resource type:

   * ARC resources will support tags corresponding to RTEs that can be
     found in the GIIS/GRIS

   * cluster resources (SGE, etc.) will support *no* tags (indeed,
     they should be marked as invalid and dropped, since we do not
     know which applications are installed).

4. Since tags are just strings, a convention is needed as to how these
   strings map to real applications.  In order to minimize
   (re)mapping, we should (re)use the ARC convention used in SMSCG:

   || Tag                       || Application                       ||
   || `APPS/CHEM/GAMESS`        || Some (unspecified) GAMESS version ||
   || `APPS/CHEM/GAMESS-2009`   || GAMESS from the 2009 sources, any release ||
   || `APPS/CHEM/GAMESS-2010R1` || GAMESS, release 1 of the 2010 sources ||
   || `APPS/BIO/ROSETTA`        || Some (unspecified) version of Rosetta ||
   || `APPS/BIO/ROSETTA-3.1`    || Rosetta, version 3.1              ||

Original issue reported on code.google.com by riccardo.murri@gmail.com on 9 Aug 2010 at 1:23

GoogleCodeExporter commented 9 years ago

Original comment by sergio.m...@gmail.com on 12 Jan 2011 at 10:40

GoogleCodeExporter commented 9 years ago

Original comment by riccardo.murri@gmail.com on 16 Jun 2011 at 3:15

GoogleCodeExporter commented 9 years ago

Original comment by riccardo.murri@gmail.com on 10 Jul 2012 at 11:14

GoogleCodeExporter commented 9 years ago

Original comment by riccardo.murri@gmail.com on 17 Aug 2012 at 11:46