Charge Rates establish how much to charge for usage. There are nine main types of charge rates: Value Based Resources, Name Based Resources, Value Based Usage, Name Based Usage, Value Based Multipliers, Name Based Multipliers, Value Based Fees, Name Based Fees and Multi-dimensional Value Based Resources.
Value Based Resource — Value Based Resource (or Consumable Resource) Charge Rates define how much it costs per unit of time to use a consumable resource like processors, memory, telescope time, generic resources that are charged per time used, etc. These resource metrics must first be multiplied by the usage duration before being added to the total charge. Value Based Resource Charge Rates are of Type "VBR", with the Name being the resource name (such as Processors) and the given Rate (such as 1) being multiplied by the consumed resource value (such as 8). The Instance may be specified as an integer range to match (of the form <int>[-<int>][,<int>[-<int>]]*) or may be left blank to be taken as the default.
Name Based Resource — Name Based Resource Charge Rates define how much it costs per unit of time to use a named resource like license, etc. The cost for the named resource must first be multiplied by the usage duration before being added to the total charge. Name Based resource name (such as License), the Instance being the resource value (such as matlab), and having the given Rate (such as 5). The Instance may be left blank so as to be taken as the default when none of the charge rate instances match the specified usage record property value.
Value Based Usage — Value Based Usage Charge Rates define how much to charge for metrics of total resource usage such as cputime, power consumed, generic resources or licenses that are charged flat fees per use, etc. These usage metrics are added to the total charge without being multiplied by the duration. Value Based Usage Charge Rates are of Type "VBU", with the Name being the resource name (such as Power) and the given Rate (such as .001) being multiplied by the consumed resource value (such as 40000). The Instance may be specified as an integer range to match (of the form <int>[-<int>][,<int>[-<int>]]*) or may be left blank to be taken as the default.
Name Based Usage — Name Based Usage Charge Rates define how much it costs to use a named attribute having a flat charge such as feature, etc. These usage metrics are added to the total charge without being multiplied by multiplied by the duration. Name Based Usage Charge Rates are of Type "NBU", with the Name being the resource name (such as Feature), the Instance being the usage value (such as GPU), and having the given flat Rate (such as 200). The Instance may be left blank so as to be taken as the default when none of the charge rate instances match the specified usage record property value.
Value Based Multiplier — Value Based Multiplier Charge Rates are scaled multipliers which apply a multiplicative charge factor based on a numeric scaling factor. These incoming scaling factors are multiplied against the Value-Based Multiplier Rate and then are multiplied against the total of the resource and usage charges. Value Based Multiplier Charge Rates are of Type "VBM", with the Name being the multiplier name (such as Discount) and the given Rate (such as 1) being multiplied with the scaling factor (such as .5) before being multiplied to the total charge. The Instance may be specified as an integer range to match (of the form <int>[-<int>][,<int>[-<int>]]*) or may be left blank to be taken as the default.
Name Based Multiplier — Name Based Multiplier Charge Rates are quality based multipliers which apply a multiplicative charge factor based on a quality of the usage such as quality of service, nodetype, class, user, time of day, etc. These charge multipliers are determined by a hash or lookup table based on the value of the usage attribute. These rates are multiplied against the total of the resource and usage charges. Name Based Multiplier Charge Rates are of Type "NBM", with the Name being the quality name (such as QualityOfService), the Instance being the quality instance (such as Premium), and having the given multiplier Rate (such as 2). The Instance may be left blank so as to be taken as the default when none of the charge rate instances match the specified usage record property value.
Value Based Fee — Value Based Fee Charge Rates define how much to charge for scaled or enumerated fees such as setup fees, shipping charges, etc. which should be added after the multipliers are applied. These fees are added to the total charge. Value Based Fee Charge Rates are of Type "VBF", with the Name being the fee name (such as Shipping) and the given Rate (such as 25) being multiplied by the scaling or counted value (such as 4). The Instance may be specified as an integer range to match (of the form <int>[-<int>][,<int>[-<int>]]*) or may be left blank to be taken as the default.
Name Based Fee — Name Based Fee Charge Rates define how much it costs to use a named attribute having a flat charge such as feature, etc. which should be added after the multipliers are applied. These fees are added to the total charge. Name Based Fee Charge Rates are of Type "NBF", with the Name being the fee name (such as Zone), the Instance being the fee value (such as Asia), and having the given flat Rate (such as 100). The Instance may be left blank so as to be taken as the default when none of the charge rate instances match the specified usage record property value.
Multi-dimensional Value Based Resource — Multi-dimensional Value Based Resource Charge Rates applies a consumable resource cost that varies depending on the value of a separate named job property. These resource metrics will first be multiplied by the usage duration before being added to the total charge. For example, using this capability you can apply different processor rates for different users or machines, or different disk prices for different classes. Multi-dimensional Value Based Resource Charge Rates have the Type being the consumable resource (such as Processors), the Rate being the cost of this resource (such as 1.5), the Name being the name of the controlling usage property (such as User), and the Instance being the value of the controlling usage property (such as frank).
By default, usage charges are calculated according to the following formula: For each Value Based Resource Charge Rate applicable to a given usage, a value-based resource charge is calculated by multiplying the amount of the resource used by the amount of time it was used, multiplied by the charge rate for that resource. For each Name Based Resource Charge Rate applicable to a given usage, a name-based resource charge is calculated by multiplying the charge rate for that named resource by the amount of time it was used. For each Value Based Usage Charge Type applicable to a given usage, a value-based usage charge is calculated by multiplying the amount of the usage by the charge rate for that usage. For each Name Based Usage Charge Type applicable to a given usage, a name-based usage charge is given by the charge rate for that usage. For each Multi-dimensional Value Based Resource Charge Rate applicable to a given usage, a value-based resource charge is calculated by multiplying the amount of the resource used by the amount of time it was used, multiplied by the charge rate for that resource. These value-based, name-based and multi-dimensional value-based resource charges and the value-based and name-based usage charges are added together. Then, for each Value Based Multiplier Charge Rate applicable to the usage, a value-based multiplier is calculated by multiplying the amount of the multiplier by the charge rate for that multiplier. For each Name Based Multiplier Charge Rate applicable to the usage, a name-based multiplier is given by charge rate for that multiplier. The sum of the resource and usage charges is then multiplied by the product of the applicable value-based and name-based multipliers. Next, for each Value Based Fee Charge Type applicable to a given usage, a value-based fee charge is calculated by multiplying the amount of the fee by the charge rate for that fee. For each Name Based Fee Charge Type applicable to a given usage, a name-based fee charge is given by the charge rate for that fee. Finally, these value-based and name-based fee charges are added to the total usage charge.
In short, the formula can be represented by (((((Σ(VBR*value)+Σ(NBR)+Σ(MVBR*value))*duration)+(Σ(VBU*value)+Σ(NBU))) *Π(VBM*value)*Π(NBM))+(Σ(VBF*value)+Σ(NBF))).
To create a new charge rate, use the command gmkrate:
gmkrate -T charge_rate_type -n charge_rate_name [-J charge_rate_instance] [-d description] [-- debug] [-?, --help] [--man] [--quiet] [-v, --verbose] [-V, --version] {[-z] charge_rate_amount}
![]() |
Additional detail for this command can be found in the man page by issuing gmkrate --man at the command line. |
$ gmkrate -T VBR -n Memory -z 0.001 Successfully created 1 charge rate
$ gmkrate -T NBR -n License -J Matlab -z 5 Successfully created 1 charge rate
$ gmkrate -T VBU -n Power -z 0.001 Successfully created 1 charge rate
$ gmkrate -T VBU -n CpuTime -z 1 Successfully created 1 charge rate
$ gmkrate -T NBU -n Feature -J GPU -z 200 Successfully created 1 charge rate
$ gmkrate -T VBM -n Discount -z 1 Successfully created 1 charge rate
$ gmkrate -T NBM -n QualityOfService -J Premium -z 2 Successfully created 1 charge rate
$ gmkrate -T NBM -n QualityOfService -J BottomFeeder -z 0.5 Successfully created 1 charge rate
$ gmkrate -T NBM -n QualityOfService -z 1 Successfully created 1 charge rate
$ gmkrate -T VBF -n Shipping -z 25 Successfully created 1 charge rate
$ gmkrate -T NBF -n Zone -J Asia -z 200 Successfully created 1 charge rate
$ gmkrate -T Disk -n User -J dave -z 0.2 Successfully created 1 charge rate
$ gmkrate -T Disk -n User -J michael -z 0.5 Successfully created 1 charge rate
$ $ gmkrate -T VBR -n Processors -J 1-4 -z 2 Successfully created 1 charge rate
$ gmkrate -T VBR -n Processors -J 5-8 -z 1.5 Successfully created 1 charge rate
$ gmkrate -T VBR -n Processors -z 1 Successfully created 1 charge rate
(Undefined variable: MyVariables.!CopyrightInfo!)