Changes between Version 6 and Version 7 of AppCoprocessor


Ignore:
Timestamp:
Mar 12, 2008, 11:45:20 AM (14 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AppCoprocessor

    v6 v7  
    2424</coprocs>
    2525}}}
    26  1. An app_version record (in the server DB) has a character string field '''class'''.
    27  1. The scheduler is linked with a project-supplied function
     26
     27An app_version record (in the server DB) has a character string field '''class'''.
     28
     29The scheduler is linked with a project-supplied function
    2830{{{
    29 bool analyze_app(HOST&, char* class, double& flops);
     31bool analyze_app(HOST&, char* class, HOST_USAGE&);
     32
     33struct HOST_USAGE {
     34   COPROCS coprocs;   // coprocessors used by the app (name and count)
     35   double ncpus;      // #CPUs used by app (may be fractional)
     36   double flops;      // estimated FLOPS
     37   char opaque[256];  // passed to the app in init_data.xml
     38};
    3039}}}
    31 This function:
    32  * returns true if the coprocessor resources (COPROC&) are sufficient for the app version
    33  * fills in the num_used fields of the elements of COPROC, indicating how many instances of each coprocessor will be used
    34  * returns (in flops) the estimated FLOPS (used to estimate job completion time)
     40This function returns true if the host's resources are sufficient for the app version.
     41If true, it populates the HOST_USAGE structure.
    3542
    36  1. The scheduler will be modified so that, when sending a job to a host, it finds the compatible app_version for which flops is greatest.
    37  1. The scheduler reply will include, for each app version, the list of coprocessors that it will use, and the estimated FLOPS.
    38  1. The client will be modified so that it keeps track of coprocessor allocation, i.e. how many instances of each are free. It only runs an app if enough instances are available, and it decrements the counts accordingly.
    39  1. The client will be modified to use app_version.flops in estimating job completion times.
     43When deciding whether to send a job to a host,
     44the scheduler examines all latest-version app_versions for the platform,
     45and selects the one for which flops is greatest.
     46
     47The scheduler reply includes, for each app version, an XML encoding of HOST_USAGE.
     48
     49The client keeps track of coprocessor allocation, i.e. how many instances of each are free.
     50It only runs an app if enough instances are available.
     51
     52The client uses app_version.usage.flops to estimate job completion times.
    4053
    4154== Questions ==