Skip to end of metadata
Go to start of metadata

CSGrid offers a set of scheduling and SGA allocation policies based on HTC Condor's Classified Advertisements (webpage). If one of these policies is chosen, CSGrid creates advertisements for SGAs and Commands according to the syntax and semantic described below.

Example of SGA Advertisement in CSGrid:

SGA Advertisement Example
[
	Requirements = true;
	Rank = int(4-other.priority);
	cpuLoad = 0.15;
	numProcessors = 4;
	name = "SGA1";
	platform = "MacOSX";
	ramMemory = 5000;
	swapMemory = 2000;
	freeRAMMemory = 3000;
	freeSwapMem = 2000;
	resources = {"matlab", "java", "openmp" };
]

Example of Command Advertisement in CSGrid:

Command Advertisement Example
[
	Rank = int(other.freeRAMMemory);
	id = "DFVGDX@admin";
	priority = 2;
	supportedPlatforms = {"Linux35_64", "Windows8", "MacOSX"};
	Requirements = member(other.platform, self.supportedPlatforms) and && other.freeRAMMemory>2000 && other.numProcessors>2 && member("matlab", other.resources);
]

Because of the matchmaking mechanism used by ClassAds, all advertisements must contain Requirements and Rank properties, where the former must be evaluated as a boolean value and the latter, an integer value.

SGA Advertisements follow the semantics below:

  • Requirements: boolean
  • Rank: integer
  • cpuLoad: floating point number
  • name: string
  • platform: string
  • ramMemory: integer
  • swapMemory: integer
  • freeRAMMemory: integer
  • freeSwapMem: integer
  • resources: list of string

Command Advertisements follow the semantics below:

  • Rank: integer
  • id: String
  • priority: integer
  • supportedPlatforms: list of string
  • Requirements: boolean

All these properties are mandatory so that the policies work properly: if there's a missing property or a property has a bad type value, there will be no positive match with the erratic advertisement. This means that an incorrect Command advertisement will block the scheduling of the command it's associated to, as no SGA will match it. If there was an error in an SGA advertisement, no commands would be eligible to run in it, but as CSGrid does not support advertisement overwriting for SGAs, this is unlikely to happen, unless there's some kind of miscommunication between the SGA and that caused SGA information to be corrupted.

Command advertisement can be overwritten by the Command owner, before submission when using OpenDREAMS API. If you wish to overwrite it, you must provide a valid advertisement string like the one presented above to the key ClassAdDesc in JobTemplate's extraProperty map attribute.

Note that there's an "other" macro in both advertisements: in SGA advertisements, other stands for the Command advertisement and vice versa. For futher explanation on how the matchmaking works and features provided by ClassAds, please visit their webpage.

ClassAds webpage: https://research.cs.wisc.edu/htcondor/classad/classad.html

  • No labels